)]}'
{"id":"openstack%2Fswift~872595","triplet_id":"openstack%2Fswift~master~I8929d18f98aac32aaa4c777d4134d992afb89d7a","project":"openstack/swift","branch":"master","topic":"flat-ring-v2","attention_set":{"1179":{"account":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"last_update":"2023-02-16 21:31:59.000000000","reason":"A robot voted negatively on a label"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I8929d18f98aac32aaa4c777d4134d992afb89d7a","subject":"ring: Introduce a v2 ring format","status":"NEW","created":"2023-02-02 19:03:16.000000000","updated":"2023-02-16 21:48:41.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":3,"unresolved_comment_count":1,"has_review_started":true,"meta_rev_id":"70b51e606e842f842fe7bb04911a01706fd06f10","_number":872595,"virtual_id_number":872595,"owner":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"tag":"autogenerated:zuul:check","value":-1,"date":"2023-02-16 21:31:59.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":-2,"max":2},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"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":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_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":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2023-02-02 19:03:16.000000000","updated_by":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"reviewer":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"state":"CC"},{"updated":"2023-02-02 20:04:58.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":"1256b64387d4e9ab5848dcde283fc93c07a25804","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2023-02-02 19:03:16.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"8a4e6e6d7ecd07084c6e42489095f78a017cedd6","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2023-02-02 19:04:24.000000000","message":"Patch Set 1: Workflow-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"1a8636ddd72f67fa8c6b082776350e882281196e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2023-02-02 20:04:58.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/d82607bf60b047a38ed9c814eee24673\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/495e572dd94a48a788965daec64a1a55 : SUCCESS in 9m 42s\n- grenade https://zuul.opendev.org/t/openstack/build/4ceb302b11e6448797a2f6dd53af1e61 : SUCCESS in 48m 49s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/0b3f83e76c6049bb9b3f5bd3e07d8d1d : SUCCESS in 38m 51s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/861c6d638ab9429eba104ad8a7b1784e : SUCCESS in 52m 25s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/5bcf1c3402f4414b82bece327c070a8b : SUCCESS in 14m 58s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/88a2bee4e9a949d68a394bf7fd73bee2 : SUCCESS in 17m 11s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/45797b59678e45e685c27fbec2281927 : SUCCESS in 16m 43s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/9c0041c2da5d4b858ed6752e92055b2f : SUCCESS in 7m 34s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/578b8f84195549dcbd83e1cb7676aa27 : SUCCESS in 5m 02s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/fcd4448792c94fdcabef699c304576ac : FAILURE in 15m 33s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/e4ffbb906ec9447ca954855622bd47cc : FAILURE in 15m 19s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/44f3956def2a4607be0d70d3c3bbe2a4 : FAILURE in 15m 24s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/47d8c4cd50cc4471a332b3435a9d1d6d : FAILURE in 15m 10s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/06eb27ed3fba4049bed83ddb2b90cdde : SUCCESS in 16m 52s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/b87fc7d58bf64bf4bf281e99a7cd6498 : SUCCESS in 13m 17s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/dc49a45ee0634e759d2c90819f12e934 : SUCCESS in 17m 02s\n- swift-tox-func-py38 https://zuul.opendev.org/t/openstack/build/b5a4547df8c64fd69364f40df8a7ad13 : SUCCESS in 13m 16s\n- swift-tox-func-encryption-py38 https://zuul.opendev.org/t/openstack/build/6278caafca0c462bb3f9d6297fbfdfed : SUCCESS in 13m 47s\n- swift-tox-func-ec-py38 https://zuul.opendev.org/t/openstack/build/c61665ce9dce4e22856a5e4495d8e03a : SUCCESS in 15m 58s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/03273e2a64664513a95ad4d1c774a949 : SUCCESS in 7m 20s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/25df9cdd6e9841008c8f24eca1ba67e3 : SUCCESS in 12m 59s (non-voting)\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/19b2cd1593654dc4953bf6f27e5e2765 : SUCCESS in 6m 59s\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/b81a7295588d435cbdcf82f210ddc9d4 : SUCCESS in 51m 40s\n- swift-probetests-centos-8-stream https://zuul.opendev.org/t/openstack/build/cc271006375342afa3e4df01abf61be2 : SUCCESS in 46m 55s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/d807460f2d464f7ba3e0267dbc4bd40c : SUCCESS in 45m 35s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/fb200221f3b5427885412c9a78a29375 : SUCCESS in 34m 47s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/e8b15815ad2346eaa69dda2fcb6d7a6c : FAILURE in 14m 32s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7404fc350175434f9b9709bce5e0dac0 : FAILURE in 4m 12s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/db4c4bdde9de453cbbab7915e098996f : SUCCESS in 18m 45s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/094a2c83ae7e4a28a3b1b39ac13c0101 : SUCCESS in 38m 50s","accounts_in_message":[],"_revision_number":1},{"id":"b0b622e2a9137f6c8f0ac1ff661e45201e230c1a","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2023-02-02 20:23:42.000000000","message":"Patch Set 1:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ad952ad546894f06abb2dfb0fd9352c9\n\n- swift-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/a390d53248a64881b1349a822d5d8c01 : FAILURE in 16m 04s\n- swift-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/e98c8deb95be48deac055f6733143bad : FAILURE in 14m 47s\n- swift-tox-func-encryption-py38-arm64 https://zuul.opendev.org/t/openstack/build/237cea88973c40e4a584647116e138f6 : SUCCESS in 19m 52s\n- swift-tox-func-py38-arm64 https://zuul.opendev.org/t/openstack/build/4d6e1744dbec43a3b6b473491b8b9555 : SUCCESS in 1h 18m 22s","accounts_in_message":[],"_revision_number":1},{"id":"e80c73d7d62f5c9238e6adbfd2208e1c29444c30","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2023-02-16 20:15:39.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"b166bc0003cfe2e58ee99ce9f895e2754672c6d0","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2023-02-16 20:17:41.000000000","message":"Patch Set 2:\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"42d8dce1126bdc2dd1709991566fefe2e7ce6eff","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2023-02-16 21:31:59.000000000","message":"Patch Set 2: 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/1d57b96bddb54f1cac400991a723aefd\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1bebc4df2e3f4c85a6cdb8f1314bedb5 : SUCCESS in 8m 45s\n- grenade https://zuul.opendev.org/t/openstack/build/624e98fd1056493b89339e549415bdff : SUCCESS in 56m 29s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/fe812ee51c79405fac5ff96259da2ad4 : SUCCESS in 53m 26s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/69837349c55f46359f583c3a5979f5e9 : SUCCESS in 53m 31s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/380f2c17499f4347b884092bd9a704eb : SUCCESS in 17m 25s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/fb7ab335dcfd4b5a80bade691c0b32ff : SUCCESS in 16m 18s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4705578b4d7345bf819e9a3d01a2806c : SUCCESS in 18m 06s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/a1e391a2aff84cc7a802d74a34067021 : SUCCESS in 9m 25s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/93ef024f0fca4fb1b35b1175690e5ebf : SUCCESS in 6m 55s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/3b99c6fcb5594bfa93a00352a0c93969 : FAILURE in 31m 23s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/ce219023554e4d4688b1e157d990593f : FAILURE in 27m 37s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/2c7bdba2dfc146b286a6b13ff1cedf7a : FAILURE in 14m 32s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/6c3cf8039dc54e5497b53dbfeacb113a : FAILURE in 15m 32s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/432500d0af154da282d41dae23c3f06a : SUCCESS in 15m 14s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/3592d605f03d4bacb5987cc7fa13d1a3 : SUCCESS in 17m 19s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/aa75d69ac74241e081e12808cfd74031 : SUCCESS in 17m 50s\n- swift-tox-func-py38 https://zuul.opendev.org/t/openstack/build/bed3f00f0483452698ba5e7ad58f0783 : SUCCESS in 14m 18s\n- swift-tox-func-encryption-py38 https://zuul.opendev.org/t/openstack/build/2201a915f52c4d4ea87827f16d34e6ca : SUCCESS in 17m 51s\n- swift-tox-func-ec-py38 https://zuul.opendev.org/t/openstack/build/171c0c3ffdb348a8a243a2a5345cc1b8 : SUCCESS in 20m 19s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/de3ee483aa0541288f417bfd4f3ec1bd : SUCCESS in 6m 30s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/d81ba89f21424f44b1da9ab7bf36e299 : SUCCESS in 15m 02s (non-voting)\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/cb9e28fc04854495a89e5b28d460a936 : SUCCESS in 8m 30s\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/28298a4e598d485e97df38c7edb2a213 : SUCCESS in 59m 11s\n- swift-probetests-centos-8-stream https://zuul.opendev.org/t/openstack/build/ff3f0d198dcd4eaaa25c2f455285e901 : SUCCESS in 1h 00m 06s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/4ed7dc74784244b9ba6ddb6af0cd2b7f : SUCCESS in 55m 48s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/8bba5b62d7fa492bb41644ce3e2ddbdd : SUCCESS in 52m 09s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/17544f5efea5479d8f65061871deaeb3 : FAILURE in 16m 26s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9d11fb56d87c4ca4a95dc5b4507f41db : FAILURE in 4m 14s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/8f2aa66075914a27873e1695f9dca3be : SUCCESS in 21m 18s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/84f4de288481419ba26712394dd07c56 : SUCCESS in 51m 01s","accounts_in_message":[],"_revision_number":2},{"id":"70b51e606e842f842fe7bb04911a01706fd06f10","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2023-02-16 21:48:41.000000000","message":"Patch Set 2:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4d5e22537d6b4418b97f1626cfba2fd8\n\n- swift-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/b28d05c2435e4d83924f5dfd8e2898f8 : FAILURE in 16m 17s\n- swift-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/89d635dd53364d3098c48ecf49d037b3 : FAILURE in 13m 49s\n- swift-tox-func-encryption-py38-arm64 https://zuul.opendev.org/t/openstack/build/492a12ec1d6c44a28ceb696a4738753f : TIMED_OUT in 1h 31m 04s\n- swift-tox-func-py38-arm64 https://zuul.opendev.org/t/openstack/build/cd7c01fe848648b7babd68b93bceb9a3 : SUCCESS in 23m 08s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"7e4ac43d703f93a82ae4568c762f637fa23eef48","revisions":{"c9890fb087384080ebadeeca74ce6ac6235445bb":{"kind":"REWORK","_number":1,"created":"2023-02-02 19:03:16.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/95/872595/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/95/872595/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/95/872595/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/95/872595/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/95/872595/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/95/872595/1"}}},"commit":{"parents":[{"commit":"247c17b60cbf398c49c44f81252184a564d73eca","subject":"Merge \"Sharding: No stat updates before CLEAVED state\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/247c17b60cbf398c49c44f81252184a564d73eca"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2021-09-02 17:12:54.000000000","tz":-420},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2023-02-02 19:03:05.000000000","tz":-360},"subject":"ring: Introduce a v2 ring format","message":"ring: Introduce a v2 ring format\n\n* New required metadata: dev_id_bytes -- the number of bytes each device\n  ID occupies. While this commit does not start writing values other\n  than 2, it *can* read values of 1, 2, or 4.\n* New length-encoding for fields in on-disk structure. This ensures we\n  know where to stop reading the replica2part2dev table even when there\n  is a fractional replica count. The length is always a 64-bit value,\n  including the one used for the JSON metadata length.\n* Removed the replica_count metadata item. This is no longer necessary,\n  as it can be calculated from the part_shift, dev_id_bytes, and\n  replica2part2dev length.\n* Removed the byteorder metadata item. Ring data should always be\n  written down with network (big endian) order.\n\nThere\u0027s a bunch of moving pieces here:\n\n- Add a new RingWriter class.\n\n  Stick it in a new swift.common.ring.io module. You *can* use it like\n  the old gzip file, but you can also define named sections which can\n  be referenced later on read. Section names may be arbitrary strings,\n  but the \"swift/\" prefix is reserved for upstream use. Sections must\n  contain a single length-value encoded BLOB. If sections are used, an\n  additional BLOB is written at the end containing a JSON section-index,\n  followed by an uncompressed offset for the index.\n\n  Move RingReader to ring/io.py, too.\n\n- Drop MD5 tracking in RingReader. It was brittle at best anyway, and\n  nothing uses it. YAGNI\n\n  Drive-by: Fix size/raw_size attributes when loading only metadata.\n\n- Add the ability to seek within RingReaders, though you need to know\n  what you\u0027re doing and only seek to flush points.\n\n- Let RingData and RingBuilder objects change how wide their\n  replica2part2dev_id arrays are. Add a dev_id_bytes key to serialized\n  ring metadata.\n\nSee: https://etherpad.opendev.org/p/swift-ring-v2-serialization\n\nChange-Id: I8929d18f98aac32aaa4c777d4134d992afb89d7a\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c9890fb087384080ebadeeca74ce6ac6235445bb"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c9890fb087384080ebadeeca74ce6ac6235445bb"}]},"branch":"refs/heads/master"},"7e4ac43d703f93a82ae4568c762f637fa23eef48":{"kind":"REWORK","_number":2,"created":"2023-02-16 20:15:39.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/95/872595/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/95/872595/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/95/872595/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/95/872595/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/95/872595/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/95/872595/2"}}},"commit":{"parents":[{"commit":"247c17b60cbf398c49c44f81252184a564d73eca","subject":"Merge \"Sharding: No stat updates before CLEAVED state\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/247c17b60cbf398c49c44f81252184a564d73eca"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2021-09-02 17:12:54.000000000","tz":-420},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2023-02-16 19:57:52.000000000","tz":-360},"subject":"ring: Introduce a v2 ring format","message":"ring: Introduce a v2 ring format\n\n* New required metadata: dev_id_bytes -- the number of bytes each device\n  ID occupies. While this commit does not start writing values other\n  than 2, it *can* read values of 1, 2, or 4.\n* New length-encoding for fields in on-disk structure. This ensures we\n  know where to stop reading the replica2part2dev table even when there\n  is a fractional replica count. The length is always a 64-bit value,\n  including the one used for the JSON metadata length.\n* Removed the replica_count metadata item. This is no longer necessary,\n  as it can be calculated from the part_shift, dev_id_bytes, and\n  replica2part2dev length.\n* Removed the byteorder metadata item. Ring data should always be\n  written down with network (big endian) order.\n\nThere\u0027s a bunch of moving pieces here:\n\n- Add a new RingWriter class.\n\n  Stick it in a new swift.common.ring.io module. You *can* use it like\n  the old gzip file, but you can also define named sections which can\n  be referenced later on read. Section names may be arbitrary strings,\n  but the \"swift/\" prefix is reserved for upstream use. Sections must\n  contain a single length-value encoded BLOB. If sections are used, an\n  additional BLOB is written at the end containing a JSON section-index,\n  followed by an uncompressed offset for the index.\n\n  Move RingReader to ring/io.py, too.\n\n- Drop MD5 tracking in RingReader. It was brittle at best anyway, and\n  nothing uses it. YAGNI\n\n  Drive-by: Fix size/raw_size attributes when loading only metadata.\n\n- Add the ability to seek within RingReaders, though you need to know\n  what you\u0027re doing and only seek to flush points.\n\n- Let RingData and RingBuilder objects change how wide their\n  replica2part2dev_id arrays are. Add a dev_id_bytes key to serialized\n  ring metadata.\n\nSee: https://etherpad.opendev.org/p/swift-ring-v2-serialization\n\nChange-Id: I8929d18f98aac32aaa4c777d4134d992afb89d7a\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7e4ac43d703f93a82ae4568c762f637fa23eef48"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7e4ac43d703f93a82ae4568c762f637fa23eef48"}]},"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":""}}}]}
