)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":31357,"name":"LEDUC Florian","display_name":"Florian LEDUC","email":"florian.leduc@socgen.com","username":"leducflorian","status":"Société Générale"},"change_message_id":"93adc6a7594e6f6d32dece2c2f1837f7c6ef5522","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"081ae4ec_48ef784f","updated":"2025-11-17 10:41:02.000000000","message":"Perfectly in phase with this enhancement.","commit_id":"6026a0304b5400ee5512865d36ece2a67ea6b1a4"}],"specs/2026.1/approved/glance/parallel-store-imports.rst":[{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"df9232974ef4a8fd3c7eaf78bf3da7258c5bcc45","unresolved":true,"context_lines":[{"line_number":28,"context_line":"When importing an image to multiple stores using the image"},{"line_number":29,"context_line":"import workflow, the current implementation processes stores sequentially."},{"line_number":30,"context_line":"For example, if importing an image to stores A, B, C, D, and E,"},{"line_number":31,"context_line":"the workflow will:"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"1. Import to store A (wait for completion)"},{"line_number":34,"context_line":"2. Import to store B (wait for completion)"}],"source_content_type":"text/x-rst","patch_set":3,"id":"6a50cb0b_a907ee7e","line":31,"range":{"start_line":31,"start_character":17,"end_line":31,"end_character":18},"updated":"2026-01-07 16:13:10.000000000","message":"will be*","commit_id":"3db27f9fd8450687a70d1c38d68771181fb59386"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"df9232974ef4a8fd3c7eaf78bf3da7258c5bcc45","unresolved":true,"context_lines":[{"line_number":71,"context_line":"   to 3, the stores will be processed in 3 batches:"},{"line_number":72,"context_line":"   - Batch 1: stores 1, 2, 3 (executed in parallel)"},{"line_number":73,"context_line":"   - Batch 2: stores 4, 5, 6 (executed in parallel)"},{"line_number":74,"context_line":"   - Batch 3: store 7 (executed alone)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"   In this case batches will be executed sequentially, but image will be"},{"line_number":77,"context_line":"   imported to stores in each batch will executed in parallel."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3417ddb4_8265d722","line":74,"range":{"start_line":74,"start_character":32,"end_line":74,"end_character":37},"updated":"2026-01-07 16:13:10.000000000","message":"So if stores 1 and 4 are slow compared to stores 2, 3, 5 and 6, this is still going to take a lot of time: batch 1 \u0026 2 will take a long time to finish, even though stores 2, 3, 5 and 6 will be done uploading quickly. Ideally we\u0027d have 3 threads in a pool, and as soon as a store is done with the import, its thread can be reused.\n\nBut I guess this is good enough for a first implementation, and not many users will actually be configuring a lot of different stores.","commit_id":"3db27f9fd8450687a70d1c38d68771181fb59386"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"065a1b18fcce61f2ea67953eed46bf427f07472e","unresolved":true,"context_lines":[{"line_number":71,"context_line":"   to 3, the stores will be processed in 3 batches:"},{"line_number":72,"context_line":"   - Batch 1: stores 1, 2, 3 (executed in parallel)"},{"line_number":73,"context_line":"   - Batch 2: stores 4, 5, 6 (executed in parallel)"},{"line_number":74,"context_line":"   - Batch 3: store 7 (executed alone)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"   In this case batches will be executed sequentially, but image will be"},{"line_number":77,"context_line":"   imported to stores in each batch will executed in parallel."}],"source_content_type":"text/x-rst","patch_set":3,"id":"36925224_30ca2966","line":74,"range":{"start_line":74,"start_character":32,"end_line":74,"end_character":37},"in_reply_to":"3417ddb4_8265d722","updated":"2026-05-11 02:12:31.000000000","message":"Also, I don\u0027t understand why the batches would not be as follows:\n\nBatch 1: stores 1,2\nBatch 2: stores 3,4\nBatch 3: stores 5,6,7","commit_id":"3db27f9fd8450687a70d1c38d68771181fb59386"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"df9232974ef4a8fd3c7eaf78bf3da7258c5bcc45","unresolved":true,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"With parallel execution (assuming 3 parallel stores):"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"total_time ≈ max(time_store_a, time_store_b, time_store_c) + "},{"line_number":151,"context_line":"            max(time_store_d, time_store_e) + ..."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"The actual improvement depends on:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"d4c237e6_9de30041","line":150,"range":{"start_line":150,"start_character":59,"end_line":150,"end_character":60},"updated":"2026-01-07 16:13:10.000000000","message":"There is a space at the end of the line","commit_id":"3db27f9fd8450687a70d1c38d68771181fb59386"}]}
