)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":18529,"name":"Dongdong Pei","email":"peidongdong121@163.com","username":"dongdongpei"},"change_message_id":"1d961d6fc23e84bb763de0a5548d0a93c45aa452","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Run backup compression on native thread"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Backup data compression is a CPU bound operation that will not yield to"},{"line_number":10,"context_line":"other greethreads, so given enough simultaneous backup operations they"},{"line_number":11,"context_line":"will lead to other threads\u0027 starvation."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This is really problematic for DB connections, since starvation will"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7f515b1d_5ba404ba","line":10,"range":{"start_line":10,"start_character":6,"end_line":10,"end_character":17},"updated":"2017-09-29 11:33:41.000000000","message":"greenthreads","commit_id":"d404b00efecbbc5880b0bcb77663edec50d40557"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"73317e8151caec34e376e12da520a902781181d6","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Run backup compression on native thread"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Backup data compression is a CPU bound operation that will not yield to"},{"line_number":10,"context_line":"other greethreads, so given enough simultaneous backup operations they"},{"line_number":11,"context_line":"will lead to other threads\u0027 starvation."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This is really problematic for DB connections, since starvation will"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7f515b1d_bb25380b","line":10,"range":{"start_line":10,"start_character":6,"end_line":10,"end_character":17},"in_reply_to":"7f515b1d_5ba404ba","updated":"2017-09-29 11:44:08.000000000","message":"Done","commit_id":"d404b00efecbbc5880b0bcb77663edec50d40557"}],"cinder/backup/chunkeddriver.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"075c94edc748c636459d243a0443db3420e3e19f","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        if self.compressor is None:"},{"line_number":348,"context_line":"            return \u0027none\u0027, data"},{"line_number":349,"context_line":"        data_size_bytes \u003d len(data)"},{"line_number":350,"context_line":"        # Execute compression in native thread so it doesn\u0027t preven cooperative"},{"line_number":351,"context_line":"        # greenthread switching."},{"line_number":352,"context_line":"        compressed_data \u003d eventlet.tpool.execute(self.compressor.compress,"},{"line_number":353,"context_line":"                                                 data)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_43d6b2f3","line":350,"range":{"start_line":350,"start_character":61,"end_line":350,"end_character":67},"updated":"2017-09-26 16:09:59.000000000","message":"prevent","commit_id":"aad93dc09f70b06bdc5a652d5e397563d89ec9c3"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1486d8cf251d5fd5be13d2738f799d5a045efa0e","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        if self.compressor is None:"},{"line_number":348,"context_line":"            return \u0027none\u0027, data"},{"line_number":349,"context_line":"        data_size_bytes \u003d len(data)"},{"line_number":350,"context_line":"        # Execute compression in native thread so it doesn\u0027t preven cooperative"},{"line_number":351,"context_line":"        # greenthread switching."},{"line_number":352,"context_line":"        compressed_data \u003d eventlet.tpool.execute(self.compressor.compress,"},{"line_number":353,"context_line":"                                                 data)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_4b6a24ee","line":350,"range":{"start_line":350,"start_character":61,"end_line":350,"end_character":67},"in_reply_to":"7f515b1d_43d6b2f3","updated":"2017-09-27 16:51:17.000000000","message":"Yes, easy enough to fix it now.","commit_id":"aad93dc09f70b06bdc5a652d5e397563d89ec9c3"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"5cde64442daeb158ab18188a8362e1415401410b","unresolved":false,"context_lines":[{"line_number":349,"context_line":"        data_size_bytes \u003d len(data)"},{"line_number":350,"context_line":"        # Execute compression in native thread so it doesn\u0027t prevent"},{"line_number":351,"context_line":"        # cooperative greenthread switching."},{"line_number":352,"context_line":"        compressed_data \u003d eventlet.tpool.execute(self.compressor.compress,"},{"line_number":353,"context_line":"                                                 data)"},{"line_number":354,"context_line":"        comp_size_bytes \u003d len(compressed_data)"},{"line_number":355,"context_line":"        algorithm \u003d CONF.backup_compression_algorithm.lower()"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_eed1de24","line":352,"updated":"2017-09-27 17:08:27.000000000","message":"What happens if there are more simultaneous backups than there are threads in the eventlet thread pool?","commit_id":"d404b00efecbbc5880b0bcb77663edec50d40557"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"ac7bb402f69ef154d9d409c4051b5d440e2c593b","unresolved":false,"context_lines":[{"line_number":349,"context_line":"        data_size_bytes \u003d len(data)"},{"line_number":350,"context_line":"        # Execute compression in native thread so it doesn\u0027t prevent"},{"line_number":351,"context_line":"        # cooperative greenthread switching."},{"line_number":352,"context_line":"        compressed_data \u003d eventlet.tpool.execute(self.compressor.compress,"},{"line_number":353,"context_line":"                                                 data)"},{"line_number":354,"context_line":"        comp_size_bytes \u003d len(compressed_data)"},{"line_number":355,"context_line":"        algorithm \u003d CONF.backup_compression_algorithm.lower()"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_4e93395c","line":352,"in_reply_to":"7f515b1d_8b9c86c0","updated":"2017-09-28 13:00:30.000000000","message":"Makes sense, thanks for explanation.","commit_id":"d404b00efecbbc5880b0bcb77663edec50d40557"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"bd2b2585b5ecceb3fdfe06c7eb236509e305d2e8","unresolved":false,"context_lines":[{"line_number":349,"context_line":"        data_size_bytes \u003d len(data)"},{"line_number":350,"context_line":"        # Execute compression in native thread so it doesn\u0027t prevent"},{"line_number":351,"context_line":"        # cooperative greenthread switching."},{"line_number":352,"context_line":"        compressed_data \u003d eventlet.tpool.execute(self.compressor.compress,"},{"line_number":353,"context_line":"                                                 data)"},{"line_number":354,"context_line":"        comp_size_bytes \u003d len(compressed_data)"},{"line_number":355,"context_line":"        algorithm \u003d CONF.backup_compression_algorithm.lower()"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_8b9c86c0","line":352,"in_reply_to":"7f515b1d_eed1de24","updated":"2017-09-28 09:32:52.000000000","message":"That should not be a problem because, as far as I know, the eventlet library is using a patched Python Queue module to implement a FIFO queue with no limit on queued works, so the requests will just get queued and processed when there are available threads.","commit_id":"d404b00efecbbc5880b0bcb77663edec50d40557"}]}
