)]}'
{"doc/source/devref/threading.rst":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5ac9ca5ea59ae3e3e0a8072166986e325779ac35","unresolved":false,"context_lines":[{"line_number":42,"context_line":"etc. PyMySQL is the default MySQL DB API driver for oslo.db, and it works well with"},{"line_number":43,"context_line":"eventlet. MySQL-python uses an external C library for accessing the MySQL database."},{"line_number":44,"context_line":"Since eventlet cannot use monkey-patching to intercept blocking calls in a C library,"},{"line_number":45,"context_line":"so queries to the MySQL database will block the main thread of a service."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"The Diablo release contained a thread-pooling implementation that did not"},{"line_number":48,"context_line":"block, but this implementation resulted in a `bug`_ and was removed."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_1efb5b48","line":45,"range":{"start_line":45,"start_character":24,"end_line":45,"end_character":37},"updated":"2016-09-30 14:29:29.000000000","message":"database using libraries like MySQL-python will","commit_id":"bc8a363299519822ab84607bf47c0908ac80a1ec"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5ac9ca5ea59ae3e3e0a8072166986e325779ac35","unresolved":false,"context_lines":[{"line_number":42,"context_line":"etc. PyMySQL is the default MySQL DB API driver for oslo.db, and it works well with"},{"line_number":43,"context_line":"eventlet. MySQL-python uses an external C library for accessing the MySQL database."},{"line_number":44,"context_line":"Since eventlet cannot use monkey-patching to intercept blocking calls in a C library,"},{"line_number":45,"context_line":"so queries to the MySQL database will block the main thread of a service."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"The Diablo release contained a thread-pooling implementation that did not"},{"line_number":48,"context_line":"block, but this implementation resulted in a `bug`_ and was removed."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_bed427bd","line":45,"range":{"start_line":45,"start_character":0,"end_line":45,"end_character":3},"updated":"2016-09-30 14:29:29.000000000","message":"remove \"so\"","commit_id":"bc8a363299519822ab84607bf47c0908ac80a1ec"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"570d74c67789cd1d5e7434be2dfa59921b424733","unresolved":false,"context_lines":[{"line_number":42,"context_line":"etc. PyMySQL is the default MySQL DB API driver for oslo.db, and it works well with"},{"line_number":43,"context_line":"eventlet. MySQL-python uses an external C library for accessing the MySQL database."},{"line_number":44,"context_line":"Since eventlet cannot use monkey-patching to intercept blocking calls in a C library,"},{"line_number":45,"context_line":"so queries to the MySQL database will block the main thread of a service."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"The Diablo release contained a thread-pooling implementation that did not"},{"line_number":48,"context_line":"block, but this implementation resulted in a `bug`_ and was removed."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_249e4863","line":45,"range":{"start_line":45,"start_character":24,"end_line":45,"end_character":37},"in_reply_to":"3a98d1f4_1efb5b48","updated":"2016-09-30 14:56:18.000000000","message":"Done","commit_id":"bc8a363299519822ab84607bf47c0908ac80a1ec"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"570d74c67789cd1d5e7434be2dfa59921b424733","unresolved":false,"context_lines":[{"line_number":42,"context_line":"etc. PyMySQL is the default MySQL DB API driver for oslo.db, and it works well with"},{"line_number":43,"context_line":"eventlet. MySQL-python uses an external C library for accessing the MySQL database."},{"line_number":44,"context_line":"Since eventlet cannot use monkey-patching to intercept blocking calls in a C library,"},{"line_number":45,"context_line":"so queries to the MySQL database will block the main thread of a service."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"The Diablo release contained a thread-pooling implementation that did not"},{"line_number":48,"context_line":"block, but this implementation resulted in a `bug`_ and was removed."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_648a101d","line":45,"range":{"start_line":45,"start_character":0,"end_line":45,"end_character":3},"in_reply_to":"3a98d1f4_bed427bd","updated":"2016-09-30 14:56:18.000000000","message":"Done","commit_id":"bc8a363299519822ab84607bf47c0908ac80a1ec"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"9550e860399ef1ec922eeb51ccf015bbc6a1094f","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"In current code, time.sleep(0）does the same thing as greenthread.sleep(0) if"},{"line_number":36,"context_line":"time module is patched through eventlet.monkey_patch(). To be explicit, we recommend"},{"line_number":37,"context_line":"contributors use ``greenthread.sleep()`` instead of ``time.sleep()``."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"MySQL access and eventlet"},{"line_number":40,"context_line":"-------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa6399be_8bec2bbc","line":37,"range":{"start_line":37,"start_character":0,"end_line":37,"end_character":69},"updated":"2016-10-17 10:00:25.000000000","message":"In my opinion we shouldn\u0027t be explicit, Cinder code should be as much as possible agnostic of the threading model.  But since all projects seem to disagree I\u0027ll ignore my opinion for consistency.","commit_id":"dd0ab650c8ca3d58b9e19d95ae27523a3956d166"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"9550e860399ef1ec922eeb51ccf015bbc6a1094f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"queries to the MySQL database using libraries like MySQL-python will block the main"},{"line_number":46,"context_line":"thread of a service."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The Diablo release contained a thread-pooling implementation that did not"},{"line_number":49,"context_line":"block, but this implementation resulted in a `bug`_ and was removed."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"See this `mailing list thread`_ for a discussion of this issue, including"},{"line_number":52,"context_line":"a discussion of the `impact on performance`_."}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa6399be_0b0e5b8b","line":49,"range":{"start_line":48,"start_character":0,"end_line":49,"end_character":68},"updated":"2016-10-17 10:00:25.000000000","message":"Maybe it\u0027s time we remove this?","commit_id":"dd0ab650c8ca3d58b9e19d95ae27523a3956d166"}]}
