)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"12e38ef30450c292a182dff0c6d6790d7e5e625c","unresolved":false,"context_lines":[{"line_number":22,"context_line":"a transformation on it to turn it into a UUID. That transformation"},{"line_number":23,"context_line":"is:"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* check if the string \u003c\u003d 255 in lenght (ValueErrr is not)"},{"line_number":26,"context_line":"* do a sha256 hash of the string"},{"line_number":27,"context_line":"* take the first 32 characters of the hexdigest() to create a UUID"},{"line_number":28,"context_line":"* use the resulting UUID as the local id for the resource"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_17373db1","line":25,"updated":"2015-08-24 19:41:51.000000000","message":"length\n\n\nValueError if not","commit_id":"ba348c20459beb5e0d0db53f1c74d1b836ce3dc0"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"09b2dbf5e78d61f05aa5f3c13bd6a9fe49abbc04","unresolved":false,"context_lines":[{"line_number":23,"context_line":"is:"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* check if the string \u003c\u003d 255 in lenght (ValueErrr is not)"},{"line_number":26,"context_line":"* do a sha256 hash of the string"},{"line_number":27,"context_line":"* take the first 32 characters of the hexdigest() to create a UUID"},{"line_number":28,"context_line":"* use the resulting UUID as the local id for the resource"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_aa885023","line":26,"updated":"2015-08-25 08:14:55.000000000","message":"Perhaps we should use sha1 instead of sha256, uuid5 is officially the truncated version of sha1 according the rfc4122 and it\u0027s also more performant. So we can don\u0027t care about collision and assume that if the rfc is ok sha1 we are ok too, WDYT ?","commit_id":"ba348c20459beb5e0d0db53f1c74d1b836ce3dc0"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"12e38ef30450c292a182dff0c6d6790d7e5e625c","unresolved":false,"context_lines":[{"line_number":25,"context_line":"* check if the string \u003c\u003d 255 in lenght (ValueErrr is not)"},{"line_number":26,"context_line":"* do a sha256 hash of the string"},{"line_number":27,"context_line":"* take the first 32 characters of the hexdigest() to create a UUID"},{"line_number":28,"context_line":"* use the resulting UUID as the local id for the resource"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"The transform is done for both writes and reads. This is necessary"},{"line_number":31,"context_line":"because we have no control over the caller."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_376121a9","line":28,"updated":"2015-08-24 19:41:51.000000000","message":"How is that likely to have a collision?","commit_id":"ba348c20459beb5e0d0db53f1c74d1b836ce3dc0"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"cb3648ad7d5dbfd2f69bea1dd6f9bce5319e9646","unresolved":false,"context_lines":[{"line_number":25,"context_line":"* check if the string \u003c\u003d 255 in lenght (ValueErrr is not)"},{"line_number":26,"context_line":"* do a sha256 hash of the string"},{"line_number":27,"context_line":"* take the first 32 characters of the hexdigest() to create a UUID"},{"line_number":28,"context_line":"* use the resulting UUID as the local id for the resource"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"The transform is done for both writes and reads. This is necessary"},{"line_number":31,"context_line":"because we have no control over the caller."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_172bbdec","line":28,"in_reply_to":"fa1b9901_376121a9","updated":"2015-08-24 19:51:23.000000000","message":"You make an excellent point. If we\u0027re already saying that UUIDs are good enough and the first 32 characters of a sha256 hash is a valid UUID then we\u0027ve met our contract, so good enough I guess.\n\nIt all still seems a bit crazy, not sure why.","commit_id":"ba348c20459beb5e0d0db53f1c74d1b836ce3dc0"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"12e38ef30450c292a182dff0c6d6790d7e5e625c","unresolved":false,"context_lines":[{"line_number":45,"context_line":"* It violates Gnocchi\u0027s integrity as an independent thing for the"},{"line_number":46,"context_line":"  sake of OpenStack\u0027s problem."},{"line_number":47,"context_line":"* It makes it hard to dig around in the datastore when there are"},{"line_number":48,"context_line":"  problems (mismatch between natural key and database key)."},{"line_number":49,"context_line":"* Doing a lot of sha256 hashing could get tiring after a while."},{"line_number":50,"context_line":"* No rigorous evaluation of the potential for collision has yet been"},{"line_number":51,"context_line":"  done."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_776799b7","line":48,"updated":"2015-08-24 19:41:51.000000000","message":"We can provide a CLI tool that does that transformation and only that.","commit_id":"ba348c20459beb5e0d0db53f1c74d1b836ce3dc0"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"12e38ef30450c292a182dff0c6d6790d7e5e625c","unresolved":false,"context_lines":[{"line_number":48,"context_line":"  problems (mismatch between natural key and database key)."},{"line_number":49,"context_line":"* Doing a lot of sha256 hashing could get tiring after a while."},{"line_number":50,"context_line":"* No rigorous evaluation of the potential for collision has yet been"},{"line_number":51,"context_line":"  done."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Pros:"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_d70ea5e4","line":51,"updated":"2015-08-24 19:41:51.000000000","message":"Ha.","commit_id":"ba348c20459beb5e0d0db53f1c74d1b836ce3dc0"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"12e38ef30450c292a182dff0c6d6790d7e5e625c","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* It keeps UUIDs as the primary identifiers internally."},{"line_number":56,"context_line":"* If people know about some of the cons they might consider fixing"},{"line_number":57,"context_line":"  their ids."},{"line_number":58,"context_line":"* It\u0027s less intrusive than providing a persistent map between"},{"line_number":59,"context_line":"  OpenStack key and Gnocchi key."},{"line_number":60,"context_line":"* It requires no indexer-database migration (which a change in id"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_570375b8","line":57,"updated":"2015-08-24 19:41:51.000000000","message":"+1","commit_id":"ba348c20459beb5e0d0db53f1c74d1b836ce3dc0"}]}
