)]}'
{"id":"openstack%2Fswift~916702","triplet_id":"openstack%2Fswift~master~I50d99fdab6a06bc27d1903961f1a84c0da340cc8","project":"openstack/swift","branch":"master","topic":"vacuum_before_rsync","attention_set":{"7233":{"account":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"last_update":"2024-04-23 06:05:00.000000000","reason":"A robot voted negatively on a label"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I50d99fdab6a06bc27d1903961f1a84c0da340cc8","subject":"WIP: Add a vacuum before db replication","status":"NEW","created":"2024-04-23 04:43:12.000000000","updated":"2024-04-23 06:05:00.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":2,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"f215ca99575545f333e03c873d1336494caf9e70","_number":916702,"virtual_id_number":916702,"owner":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":-1,"date":"2024-04-23 06:05:00.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":-1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2024-04-23 05:56:20.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2024-04-23 06:05:00.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"16c88c955e4e9b4e4c91c50434c34e2e60436cc5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2024-04-23 04:43:12.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"7623cce26a820ffa3bcc286be109fabe2ccaecb5","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-04-23 05:56:20.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6c955a3df04540c3891c8041c5e17955\n\n- swift-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/ccb422f091e44b85ba23a213fc0ccad8 : SUCCESS in 1h 06m 22s\n- swift-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/59d3480b0c954796a5997e153d4f7de3 : SUCCESS in 14m 45s\n- swift-tox-func-encryption-py38-arm64 https://zuul.opendev.org/t/openstack/build/31127dc6aa1b4e098af020ed0b32b46e : SUCCESS in 1h 11m 19s\n- swift-tox-func-py38-arm64 https://zuul.opendev.org/t/openstack/build/3d9be365c94a433fa32512eecbc33015 : SUCCESS in 19m 48s","accounts_in_message":[],"_revision_number":1},{"id":"f215ca99575545f333e03c873d1336494caf9e70","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-04-23 06:05:00.000000000","message":"Patch Set 1: Verified-1\n\n(2 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\nhttps://zuul.opendev.org/t/openstack/buildset/1de8c5762b954a95ba504914fb4b8e55\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/409dfbfe3a4146738c821cc9bb95f9f4 : SUCCESS in 6m 59s\n- grenade https://zuul.opendev.org/t/openstack/build/88d43df959514cbf98b36a6b726b9e07 : SUCCESS in 1h 03m 13s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/6fe93b7ced784a18a9ee1b7f794cc8e3 : SUCCESS in 39m 04s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/e20c0c1f9f5049389d20a625ad1c91b7 : SUCCESS in 1h 00m 02s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/f9ec0d468ea54216aad72aca62d65b4c : SUCCESS in 20m 29s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/baea26200c954ad08ff7833b2a178fe5 : SUCCESS in 16m 19s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d14fe8d41a934a1cb3b245d3bd0d3e5c : SUCCESS in 19m 15s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/b9cc844a2d46418bb7f070872dcd941f : SUCCESS in 10m 42s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/0c7b454398ef40f19db5b861175088f4 : SUCCESS in 5m 35s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/a242db60193140bc81e5d051615d30c7 : SUCCESS in 14m 02s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/e65e66fc1aee4ce694da24704a4cef24 : SUCCESS in 18m 04s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/9b0015df23d54adda5e864abf5d72772 : SUCCESS in 19m 00s\n- swift-tox-py311 https://zuul.opendev.org/t/openstack/build/0755bdb577ff4213b63bd7e51d849f40 : SUCCESS in 18m 42s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/ea339430e66e4864871a27fd45c3af37 : SUCCESS in 17m 04s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/62287e6535e448599e007d19fa6a9bfe : SUCCESS in 18m 33s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/6c10c456b48144d982e1b7e381559834 : SUCCESS in 19m 13s\n- swift-tox-func-py38 https://zuul.opendev.org/t/openstack/build/ae6c79e12b644a21aa4e5e2e3996e64e : SUCCESS in 16m 38s\n- swift-tox-func-encryption-py38 https://zuul.opendev.org/t/openstack/build/387e9735a7b64ff4af2f44c087f71fb7 : SUCCESS in 17m 10s\n- swift-tox-func-ec-py38 https://zuul.opendev.org/t/openstack/build/43fe2dcf1ecc4d2dbf34603b8cf5f3cc : SUCCESS in 16m 28s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/27253c3a48bb43dab0581f0d36fac9dc : SUCCESS in 8m 10s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/e8fd096924ef44bc85b2e73a3b08e8f1 : SUCCESS in 18m 53s (non-voting)\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/25b9a6ff84e4474190a06a38bfd5a83c : SUCCESS in 6m 42s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/d6ee53f504df40658a9db322791f4858 : SUCCESS in 59m 57s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/973fe0c2fa954c9680528b68976c8f9c : SUCCESS in 39m 11s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/38a5248a64ac49859b5c866c55f7a752 : SUCCESS in 51m 51s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/8e3cd5bdc73b4614a481b17a62348822 : SUCCESS in 14m 06s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/beac2d44c3cf47649ab3391945c58aee : FAILURE in 5m 25s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/b182c3bc6edd433db8b2adbfdadc61b2 : SUCCESS in 20m 31s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/d92d5347d4364a058985ccb915dc1d52 : SUCCESS in 39m 31s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"be9499804dad6538b98b3ebd7b64ba7cf0663a55","revisions":{"be9499804dad6538b98b3ebd7b64ba7cf0663a55":{"kind":"REWORK","_number":1,"created":"2024-04-23 04:43:12.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/02/916702/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/02/916702/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/02/916702/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/02/916702/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/02/916702/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/02/916702/1"}}},"commit":{"parents":[{"commit":"6387949a540e871e19062de8131503a8ac2ceef7","subject":"lower-constraints: update to mock 3.0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6387949a540e871e19062de8131503a8ac2ceef7"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2024-04-23 04:26:31.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2024-04-23 04:26:31.000000000","tz":600},"subject":"WIP: Add a vacuum before db replication","message":"WIP: Add a vacuum before db replication\n\nSQLite database can become more sparse as we remove rows. That pattern\nthat swift uses, which is to always add new rows and eventually clean up\nold ones means we\u0027re quite susceptible. When we go and shard we\nbasically do a vaccum. BUT root containers are also susceptible because\nthe shard_range table is constantly added to for stat accounting\npurposes.\n\nLooking at one of our larger prod root containers the db size went from\n570M to 13M once vacuumed manually.\n\nThis patch isn\u0027t quite ready. As there are 2 vacuum options.\n\n  VACUUM - This rewrites the file then copies over the old version.\n  VACCUM INTO - This writes a new file to a named location.\n\nThe possible advantage of the second is it might not need to take a full\nwrite lock on the original file. We then can send the vacuumed copy,\nwhich we can then delete. This might be less intruisive, but we don\u0027t\nget the benefit of the local DB getting vacuumed, only the new remote\nDB. And the copy could be slightly out of date. But usync will solve\nthis on the next replication cycle.\n\nThe advantages of vacuuming the DB before we send it via rsync when we\nreplicate which does 3 things:\n\n  1. rewrites the file, defragmenting it and reducing the size.\n  2. Making it smaller means less data over the network.\n  3. Means during a swift cluster lifecycle, account and container DBs\n     at least vacuum as dbs rebalance around the cluster.\n\nIt is this often enough?\n\nThis patch needs tests and a direction. It kind of supports both Vacuum\nand vacuum into (maybe we don\u0027t need both of these).\nPushing it to aid discussion and in hopes to aid discussion.\n\nAn additional feature might be to figure out a way of determining how\n\"sparse\" the file is only vacuum when needed.\n\nCloses-Bug: #1691648\nChange-Id: I50d99fdab6a06bc27d1903961f1a84c0da340cc8\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/be9499804dad6538b98b3ebd7b64ba7cf0663a55"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/be9499804dad6538b98b3ebd7b64ba7cf0663a55"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
