)]}'
{"CHANGELOG":[{"author":{"_account_id":8859,"name":"Daisuke Morita","email":"morita.daisuke@ntti3.com","username":"morrisson"},"change_message_id":"bd11481072daa188a55745a9f8b566156c656416","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    * Internal requests from the ratelimit middleware now properly log a"},{"line_number":22,"context_line":"      swift_source. See http://swift.openstack.org/logs.html for details."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    * Improved storage policy support in swift-recon."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    * The proxy log line now includes the request\u0027s storage policy index."},{"line_number":27,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"7aaa499b_c9f51484","line":24,"updated":"2015-04-13 01:02:01.000000000","message":"More properly, we can say \"storage policy support for quarantine stats\" because audit stats is not improved yet currently.","commit_id":"d13c3031c1d218fbddb7f27b5de0d8b4835671c4"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"555c8c7ee42cb7e34b5b46e1432ad8f3531d7a18","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    * Add support of x-remove- headers for container-sync."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    * Rings now support hostinames instead of just IP addresses."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    * Various other minor bug fixes and improvements."},{"line_number":36,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"7aaa499b_dba3a14e","line":33,"updated":"2015-04-12 09:38:29.000000000","message":"s/hostinames/hostnames/","commit_id":"d13c3031c1d218fbddb7f27b5de0d8b4835671c4"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"37198798628c353ef2262864ec0495f831a7fdbf","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    * Add support of x-remove- headers for container-sync."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    * Rings now support hostinames instead of just IP addresses."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    * Various other minor bug fixes and improvements."},{"line_number":36,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"7aaa499b_d365ac45","line":33,"in_reply_to":"7aaa499b_dba3a14e","updated":"2015-04-13 16:01:33.000000000","message":"Done","commit_id":"d13c3031c1d218fbddb7f27b5de0d8b4835671c4"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"8b9bda078092919855de4094a03f720ca328aeb4","unresolved":false,"context_lines":[{"line_number":17,"context_line":"      the actual EC algorithm to be implemented in a library of your choosing."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"      As a beta release, EC support is nearly fully feature complete, but it"},{"line_number":20,"context_line":"      is lacking support for some feature (like multi-range reads) and has"},{"line_number":21,"context_line":"      not had a full performance characterization. Before running an EC"},{"line_number":22,"context_line":"      policy in production, do thorough testing in a lab setting."},{"line_number":23,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7aaa499b_7ff8d9e5","line":20,"updated":"2015-04-13 22:33:40.000000000","message":"nit s/feature/features/","commit_id":"b8c98ffda33e30bd04f8824201cd24f125229a72"},{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"9509da2d1930b1a06bc5f6da3794bfcac5648696","unresolved":false,"context_lines":[{"line_number":19,"context_line":"      As a beta release, EC support is nearly fully feature complete, but it"},{"line_number":20,"context_line":"      is lacking support for some feature (like multi-range reads) and has"},{"line_number":21,"context_line":"      not had a full performance characterization. Before running an EC"},{"line_number":22,"context_line":"      policy in production, do thorough testing in a lab setting."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"      Full docs are at http://swift.openstack.org/overview_erasure_code.html"},{"line_number":25,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7aaa499b_fc93ccf8","line":22,"updated":"2015-04-13 22:41:43.000000000","message":"I believe you are wrong on point (b). If an archive GET returns 404, then the next node will be tried, and then the next, et cetera. It\u0027s not too explicitly spelled out, but ECObjectController._get_or_head_response calls GETorHEAD_base M times, and each one of those knows how to try the next node on 404.\n\nIf I\u0027m misreading your concern and you\u0027re worried about a present-but-invalid archive goofing things up, then yes, that will cause object unavailability until the auditor quarantines it.","commit_id":"b8c98ffda33e30bd04f8824201cd24f125229a72"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"8b9bda078092919855de4094a03f720ca328aeb4","unresolved":false,"context_lines":[{"line_number":19,"context_line":"      As a beta release, EC support is nearly fully feature complete, but it"},{"line_number":20,"context_line":"      is lacking support for some feature (like multi-range reads) and has"},{"line_number":21,"context_line":"      not had a full performance characterization. Before running an EC"},{"line_number":22,"context_line":"      policy in production, do thorough testing in a lab setting."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"      Full docs are at http://swift.openstack.org/overview_erasure_code.html"},{"line_number":25,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7aaa499b_1c24380b","line":22,"updated":"2015-04-13 22:33:40.000000000","message":"I think I\u0027d like the \u0027beta\u0027 nature to be a little more emphatic, perhaps with use of word \"experimental\" because:\n\n(a) it relies on ssync which is very clearly documented as not for production use and \n\n(b) if I understand it correctly the GET path does not yet retry if its first attempt to get ec_ndata frags does not yield a reconstructed object, so bit rot of a single archive could result in loss of *access* to data until the reconstructor fixes things. I would happily stand corrected on (b) if I have read the code wrong.\n\nI have left a similar comment on the docs patch.","commit_id":"b8c98ffda33e30bd04f8824201cd24f125229a72"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"7adeb439c918e03f060d403f655b9b9ec0494858","unresolved":false,"context_lines":[{"line_number":13,"context_line":"      EC storage."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"      To support erasure codes, Swift now depends on PyECLib and"},{"line_number":16,"context_line":"      liberasurecode. liberasurecode is a pluggable library that allows for"},{"line_number":17,"context_line":"      the actual EC algorithm to be implemented in a library of your choosing."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"      As a beta release, EC support is nearly fully feature complete, but it"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"7aaa499b_05a61410","line":16,"updated":"2015-04-14 04:01:16.000000000","message":"You\u0027re not one to insert \"The\" in case sentence starts with a lowercase literal?","commit_id":"be84bb3748de5912b55643477be4ff8cb3253b88"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"7adeb439c918e03f060d403f655b9b9ec0494858","unresolved":false,"context_lines":[{"line_number":17,"context_line":"      the actual EC algorithm to be implemented in a library of your choosing."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"      As a beta release, EC support is nearly fully feature complete, but it"},{"line_number":20,"context_line":"      is lacking support for some feature (like multi-range reads) and has"},{"line_number":21,"context_line":"      not had a full performance characterization. This feature relies on"},{"line_number":22,"context_line":"      ssync for durability. Deployers are urged to do extensive testing and"},{"line_number":23,"context_line":"      not deploy production data using an erasure code storage policy."}],"source_content_type":"application/octet-stream","patch_set":3,"id":"7aaa499b_4583fc56","line":20,"updated":"2015-04-14 04:01:16.000000000","message":"plural some features?","commit_id":"be84bb3748de5912b55643477be4ff8cb3253b88"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"0f53a411c9cd5381dbc9815b07490802fd0369c4","unresolved":false,"context_lines":[{"line_number":17,"context_line":"      the actual EC algorithm to be implemented in a library of your choosing."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"      As a beta release, EC support is nearly fully feature complete, but it"},{"line_number":20,"context_line":"      is lacking support for some feature (like multi-range reads) and has"},{"line_number":21,"context_line":"      not had a full performance characterization. This feature relies on"},{"line_number":22,"context_line":"      ssync for durability. Deployers are urged to do extensive testing and"},{"line_number":23,"context_line":"      not deploy production data using an erasure code storage policy."}],"source_content_type":"application/octet-stream","patch_set":3,"id":"7aaa499b_05b174e1","line":20,"in_reply_to":"7aaa499b_4583fc56","updated":"2015-04-14 04:20:34.000000000","message":"Done","commit_id":"be84bb3748de5912b55643477be4ff8cb3253b88"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"7adeb439c918e03f060d403f655b9b9ec0494858","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    * The proxy log line now includes the request\u0027s storage policy index."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    * Ring checker in swift-recon to validate if rings are built correctly."},{"line_number":49,"context_line":"      As part of this feature, storage servers have learned the OPTIONS verb."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    * Add support of x-remove- headers for container-sync."}],"source_content_type":"application/octet-stream","patch_set":3,"id":"7aaa499b_e5f688f8","line":48,"updated":"2015-04-14 04:01:16.000000000","message":"Ring checker ... is added?","commit_id":"be84bb3748de5912b55643477be4ff8cb3253b88"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"0f53a411c9cd5381dbc9815b07490802fd0369c4","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    * The proxy log line now includes the request\u0027s storage policy index."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    * Ring checker in swift-recon to validate if rings are built correctly."},{"line_number":49,"context_line":"      As part of this feature, storage servers have learned the OPTIONS verb."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    * Add support of x-remove- headers for container-sync."}],"source_content_type":"application/octet-stream","patch_set":3,"id":"7aaa499b_e5b328e8","line":48,"in_reply_to":"7aaa499b_e5f688f8","updated":"2015-04-14 04:20:34.000000000","message":"Done","commit_id":"be84bb3748de5912b55643477be4ff8cb3253b88"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"7adeb439c918e03f060d403f655b9b9ec0494858","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    * Add support of x-remove- headers for container-sync."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    * Rings now support hostnames instead of just IP addresses."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    * Various other minor bug fixes and improvements."},{"line_number":56,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"7aaa499b_e5cd68b8","line":53,"updated":"2015-04-14 04:01:16.000000000","message":"+ This way an IPv6 network may be utilized for back-end transport.","commit_id":"be84bb3748de5912b55643477be4ff8cb3253b88"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"0f53a411c9cd5381dbc9815b07490802fd0369c4","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    * Add support of x-remove- headers for container-sync."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    * Rings now support hostnames instead of just IP addresses."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    * Various other minor bug fixes and improvements."},{"line_number":56,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"7aaa499b_a5c64047","line":53,"in_reply_to":"7aaa499b_e5cd68b8","updated":"2015-04-14 04:20:34.000000000","message":"yeah, probably. but how much have we tested that? I\u0027d prefer to leave that possibility out for now","commit_id":"be84bb3748de5912b55643477be4ff8cb3253b88"}]}
