)]}'
{"id":"openstack%2Fswift~913731","triplet_id":"openstack%2Fswift~master~Ie68da6d38e5a7f0416376dcb78de9da9a58a0efe","project":"openstack/swift","branch":"master","topic":"cooperative_token","hashtags":[],"change_id":"Ie68da6d38e5a7f0416376dcb78de9da9a58a0efe","subject":"common: add memcached based cooperative token mechanism.","status":"ABANDONED","created":"2024-03-20 04:07:14.000000000","updated":"2024-03-20 04:10:02.000000000","total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"33453f11b113b309932c1753302554744387c6ef","_number":913731,"virtual_id_number":913731,"owner":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"actions":{},"labels":{"Verified":{"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{},"pending_reviewers":{},"reviewer_updates":[],"messages":[{"id":"53a611c58d99e04264c2272283cb5c35e32b1cb8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2024-03-20 04:07:14.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"33453f11b113b309932c1753302554744387c6ef","tag":"autogenerated:gerrit:abandon","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2024-03-20 04:10:02.000000000","message":"Abandoned\n\npushed up with wrong change-id.","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"89323fc53fd1e83dfe2df47598896b84f0c27b45","revisions":{"89323fc53fd1e83dfe2df47598896b84f0c27b45":{"kind":"REWORK","_number":1,"created":"2024-03-20 04:07:14.000000000","uploader":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"ref":"refs/changes/31/913731/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/31/913731/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/31/913731/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/31/913731/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/31/913731/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/31/913731/1"}}},"commit":{"parents":[{"commit":"2331c9abf2c4472d7274874cf9edc37cc764fa81","subject":"Merge \"tests: Switch get_v4_amz_date_header to take timedeltas\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2331c9abf2c4472d7274874cf9edc37cc764fa81"}]}],"author":{"name":"Jianjian Huo","email":"jhuo@nvidia.com","date":"2024-03-19 04:05:20.000000000","tz":-420},"committer":{"name":"Jianjian Huo","email":"jhuo@nvidia.com","date":"2024-03-20 04:06:57.000000000","tz":-420},"subject":"common: add memcached based cooperative token mechanism.","message":"common: add memcached based cooperative token mechanism.\n\nMemcached based cooperative token is a improved version of ghetto lock,\nsee the descriptioin of ghetto lock at here:\nhttps://github.com/memcached/memcached/wiki/ProgrammingTricks\nIt\u0027s used to avoid the thundering herd situation which many caching users face:\ngiven a cache item that is popular and difficult to recreate, in the event of\ncache misses, users could end up with hundreds (or thousands) of processes\nslamming the backend database at the same time in an attempt to refill the same\ncache content. And this thundering herd problem not only often leads to\nunresponsive backend, and also those writes into memcached cause premature\ncache eviction under memory pressure.\n\nWith cooperative token, When lots of in-flight callers try to get the cached\nitem specified by key from memcache and get cache misses, only the first a few\nnumber (limited by by ``num_tokens``) of query requests will be able to get\nthe cooperative tokens by creating or incrementing an internal memcache key,\nand then those callers with tokens can send backend requests to fetch data\nfrom backend servers and be able set data into memcache; all other cache miss\nrequests without a token should wait for cache filling to finish, instead of\nall querying the backend servers at the same time.\n\nChange-Id: Ie68da6d38e5a7f0416376dcb78de9da9a58a0efe\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/89323fc53fd1e83dfe2df47598896b84f0c27b45"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/89323fc53fd1e83dfe2df47598896b84f0c27b45"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{}}}]}
