)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"304e80651433e55ee43412efe58f8143b8c8144f","unresolved":true,"context_lines":[{"line_number":9,"context_line":"Legecy v1 rings will have dev_id_bytes of 2, and there really isn\u0027t any"},{"line_number":10,"context_line":"benefit in having rings with dev_id_bytes of 1. Sure save some space for"},{"line_number":11,"context_line":"clusters with \u003c 256 devices. But 2 byte dev_ids have worked fine for"},{"line_number":12,"context_line":"years."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Further, this makes rollout and rollback much simpler"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"a712be32_496e04d7","line":12,"updated":"2025-02-28 03:41:32.000000000","message":"100% this!","commit_id":"c5da94af3f66b3d247e7dd4201aaeec020b3557f"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"304e80651433e55ee43412efe58f8143b8c8144f","unresolved":true,"context_lines":[{"line_number":11,"context_line":"clusters with \u003c 256 devices. But 2 byte dev_ids have worked fine for"},{"line_number":12,"context_line":"years."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Further, this makes rollout and rollback much simpler"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I97717fedbed5be9add4b77cfadd09997d9d630e8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1fe36281_a258245c","line":14,"updated":"2025-02-28 03:41:32.000000000","message":"I *love* that for us!!!","commit_id":"c5da94af3f66b3d247e7dd4201aaeec020b3557f"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"304e80651433e55ee43412efe58f8143b8c8144f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"07b6b2c9_9c3b3162","updated":"2025-02-28 03:41:32.000000000","message":"If zuul is happy I say we squash it!","commit_id":"c5da94af3f66b3d247e7dd4201aaeec020b3557f"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"c45de6ebed95b725a99a699a7470971a1cfbb687","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1cfc5523_b7f7448e","updated":"2025-02-28 06:18:59.000000000","message":"recheck","commit_id":"c5da94af3f66b3d247e7dd4201aaeec020b3557f"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"5438909fa0882870850d31cde55864161a048de3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8706c6ed_49855bdc","updated":"2025-02-28 19:13:14.000000000","message":"recheck","commit_id":"c5da94af3f66b3d247e7dd4201aaeec020b3557f"}],"doc/source/overview_ring_format.rst":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"304e80651433e55ee43412efe58f8143b8c8144f","unresolved":true,"context_lines":[{"line_number":208,"context_line":""},{"line_number":209,"context_line":"* ``part_shift``"},{"line_number":210,"context_line":"* ``dev_id_bytes`` specifies the number of bytes used for each ``\u003cdev\u003e`` in the"},{"line_number":211,"context_line":"  replica-to-part-to-device table; will be one of 2, 4, or 8"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"Additionally, there are several optional keys which may be present:"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"84f0fed3_a04ab5dd","line":211,"updated":"2025-02-28 03:41:32.000000000","message":"IIUC it will be 2 or 4 and never 8","commit_id":"c5da94af3f66b3d247e7dd4201aaeec020b3557f"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"8b549466689087b0a0c09b386cf3c9d25c912a4c","unresolved":true,"context_lines":[{"line_number":208,"context_line":""},{"line_number":209,"context_line":"* ``part_shift``"},{"line_number":210,"context_line":"* ``dev_id_bytes`` specifies the number of bytes used for each ``\u003cdev\u003e`` in the"},{"line_number":211,"context_line":"  replica-to-part-to-device table; will be one of 2, 4, or 8"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"Additionally, there are several optional keys which may be present:"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"2249113d_2e97ae97","line":211,"in_reply_to":"84f0fed3_a04ab5dd","updated":"2025-02-28 04:00:27.000000000","message":"ha, well we have 8 commented out in the mapping :P","commit_id":"c5da94af3f66b3d247e7dd4201aaeec020b3557f"}],"swift/common/ring/builder.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"304e80651433e55ee43412efe58f8143b8c8144f","unresolved":true,"context_lines":[{"line_number":1825,"context_line":"        # _replica2part2dev as 2 bytes minimum. This makes it easier for"},{"line_number":1826,"context_line":"        # pre-v2 swift code to still use small builders (like a SAIO)."},{"line_number":1827,"context_line":"        if self.dev_id_bytes \u003c 2:"},{"line_number":1828,"context_line":"            self.set_dev_id_bytes(2)"},{"line_number":1829,"context_line":"        try:"},{"line_number":1830,"context_line":"            with open(builder_file, \u0027wb\u0027) as f:"},{"line_number":1831,"context_line":"                pickle.dump(self.to_dict(), f, protocol\u003d2)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3313990a_84da7fd1","side":"PARENT","line":1828,"updated":"2025-02-28 03:41:32.000000000","message":"this seemed like such a weird hack, and didn\u0027t even \"work\" when you had no devices/replicat2part2dev yet - I like us writing down the truth and then writing down the array.","commit_id":"1e0fb4dde53d336040f0bd07c683a521b2056197"}],"swift/common/ring/utils.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"304e80651433e55ee43412efe58f8143b8c8144f","unresolved":true,"context_lines":[{"line_number":34,"context_line":"    # custom array (de)serialization methods until someone actually complains."},{"line_number":35,"context_line":"    4: \u0027I\u0027,"},{"line_number":36,"context_line":"    # This just seems excessive; besides, array.array() only takes it on py33+"},{"line_number":37,"context_line":"    # 8: \u0027Q\u0027,"},{"line_number":38,"context_line":"}"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1c6300bc_7971e34a","line":37,"updated":"2025-02-28 03:41:32.000000000","message":"so... the code was already dynamic enough that it would pick the dev_id_bytes from the keys in this map?  And builders and rings both use it?  To get rid of the \"1-byte code\" we only have to remove this key?  That\u0027s quite impressive.\n\nAlso comparing the \"code\" change (i.e. 2-chars and hack) to the *test* change (a bunch of stuff removed) - this seems like HUGE win in reducing complexity to NOT have to support 1-byte builder and ring arrays!?\n\nIt\u0027s always seems cheap to add a little more code - the hard part is maintaining it.  Every bit/byte/character of complexity must be ruthlessly cut.","commit_id":"c5da94af3f66b3d247e7dd4201aaeec020b3557f"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"8b549466689087b0a0c09b386cf3c9d25c912a4c","unresolved":true,"context_lines":[{"line_number":34,"context_line":"    # custom array (de)serialization methods until someone actually complains."},{"line_number":35,"context_line":"    4: \u0027I\u0027,"},{"line_number":36,"context_line":"    # This just seems excessive; besides, array.array() only takes it on py33+"},{"line_number":37,"context_line":"    # 8: \u0027Q\u0027,"},{"line_number":38,"context_line":"}"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"2deb9dfa_7db9bfa9","line":37,"in_reply_to":"1c6300bc_7971e34a","updated":"2025-02-28 04:00:27.000000000","message":"Well that Tim is a very clever guy!","commit_id":"c5da94af3f66b3d247e7dd4201aaeec020b3557f"}]}
