)]}'
{"doc/source/admin/caching-layer.rst":[{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"18ad31e5d2e3f4d01f2438106164c9004cd831e9","unresolved":false,"context_lines":[{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"Keystone supports a wide variety of caching options. These options allow"},{"line_number":5,"context_line":"operators to prescriptively cache certain resources in specific ways or apply a"},{"line_number":6,"context_line":"generic caching strategy to all keystone resources. Caching data within"},{"line_number":7,"context_line":"keystone is imperative to responsive OpenStack cluster. Keystone\u0027s caching"},{"line_number":8,"context_line":"strategy is driven by the `oslo.cache"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_92d6b927","line":5,"range":{"start_line":5,"start_character":13,"end_line":5,"end_character":27},"updated":"2019-07-22 17:47:24.000000000","message":"Do we need this word?","commit_id":"13feeb03ab9b9358e40377c4c7a6fa4a44206c33"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9754fb1b99df5e3269125abb7874570acace9860","unresolved":false,"context_lines":[{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"Keystone supports a wide variety of caching options. These options allow"},{"line_number":5,"context_line":"operators to prescriptively cache certain resources in specific ways or apply a"},{"line_number":6,"context_line":"generic caching strategy to all keystone resources. Caching data within"},{"line_number":7,"context_line":"keystone is imperative to responsive OpenStack cluster. Keystone\u0027s caching"},{"line_number":8,"context_line":"strategy is driven by the `oslo.cache"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_f5755ffb","line":5,"range":{"start_line":5,"start_character":13,"end_line":5,"end_character":27},"in_reply_to":"7faddb67_92d6b927","updated":"2019-07-25 15:07:44.000000000","message":"Done","commit_id":"13feeb03ab9b9358e40377c4c7a6fa4a44206c33"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"18ad31e5d2e3f4d01f2438106164c9004cd831e9","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Keystone supports a wide variety of caching options. These options allow"},{"line_number":5,"context_line":"operators to prescriptively cache certain resources in specific ways or apply a"},{"line_number":6,"context_line":"generic caching strategy to all keystone resources. Caching data within"},{"line_number":7,"context_line":"keystone is imperative to responsive OpenStack cluster. Keystone\u0027s caching"},{"line_number":8,"context_line":"strategy is driven by the `oslo.cache"},{"line_number":9,"context_line":"\u003chttps://docs.openstack.org/oslo.cache/latest/\u003e`__ library."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_b2197523","line":7,"range":{"start_line":7,"start_character":26,"end_line":7,"end_character":36},"updated":"2019-07-22 17:47:24.000000000","message":"nit: something like:\n\n... imperative in order to achieve a responsive...","commit_id":"13feeb03ab9b9358e40377c4c7a6fa4a44206c33"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9754fb1b99df5e3269125abb7874570acace9860","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Keystone supports a wide variety of caching options. These options allow"},{"line_number":5,"context_line":"operators to prescriptively cache certain resources in specific ways or apply a"},{"line_number":6,"context_line":"generic caching strategy to all keystone resources. Caching data within"},{"line_number":7,"context_line":"keystone is imperative to responsive OpenStack cluster. Keystone\u0027s caching"},{"line_number":8,"context_line":"strategy is driven by the `oslo.cache"},{"line_number":9,"context_line":"\u003chttps://docs.openstack.org/oslo.cache/latest/\u003e`__ library."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_f54ebfbf","line":7,"range":{"start_line":7,"start_character":26,"end_line":7,"end_character":36},"in_reply_to":"7faddb67_b2197523","updated":"2019-07-25 15:07:44.000000000","message":"Done","commit_id":"13feeb03ab9b9358e40377c4c7a6fa4a44206c33"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"030a7bf4ed182839a077da572e9577e119f1a811","unresolved":false,"context_lines":[{"line_number":73,"context_line":"---------------------"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Keystone supports backend drivers for multiple caching backing via"},{"line_number":76,"context_line":"`oslo.cache`. The default backend is a null backend that doesn\u0027t do anything."},{"line_number":77,"context_line":"Other options include Redis and Memcached.  Please be aware of Redis licensing"},{"line_number":78,"context_line":"`changes \u003chttps://redislabs.com/blog/redis-labs-modules-license-changes/\u003e`_ if"},{"line_number":79,"context_line":"you\u0027re planning on using Redis in your deployment."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_489ded08","line":76,"range":{"start_line":76,"start_character":57,"end_line":76,"end_character":76},"updated":"2019-07-22 22:53:39.000000000","message":"Maybe this?\n\nSetting default backend to ``null`` effectively disable all caching even though [cache]enabled\u003dtrue.","commit_id":"13feeb03ab9b9358e40377c4c7a6fa4a44206c33"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9754fb1b99df5e3269125abb7874570acace9860","unresolved":false,"context_lines":[{"line_number":73,"context_line":"---------------------"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Keystone supports backend drivers for multiple caching backing via"},{"line_number":76,"context_line":"`oslo.cache`. The default backend is a null backend that doesn\u0027t do anything."},{"line_number":77,"context_line":"Other options include Redis and Memcached.  Please be aware of Redis licensing"},{"line_number":78,"context_line":"`changes \u003chttps://redislabs.com/blog/redis-labs-modules-license-changes/\u003e`_ if"},{"line_number":79,"context_line":"you\u0027re planning on using Redis in your deployment."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_b5efe785","line":76,"range":{"start_line":76,"start_character":57,"end_line":76,"end_character":76},"in_reply_to":"7faddb67_489ded08","updated":"2019-07-25 15:07:44.000000000","message":"Done","commit_id":"13feeb03ab9b9358e40377c4c7a6fa4a44206c33"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"030a7bf4ed182839a077da572e9577e119f1a811","unresolved":false,"context_lines":[{"line_number":76,"context_line":"`oslo.cache`. The default backend is a null backend that doesn\u0027t do anything."},{"line_number":77,"context_line":"Other options include Redis and Memcached.  Please be aware of Redis licensing"},{"line_number":78,"context_line":"`changes \u003chttps://redislabs.com/blog/redis-labs-modules-license-changes/\u003e`_ if"},{"line_number":79,"context_line":"you\u0027re planning on using Redis in your deployment."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"It is important to note the ways in which keystone can use caching backends and"},{"line_number":82,"context_line":"what implications it has on performance. A common deployment strategy is to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_288431b1","line":79,"updated":"2019-07-22 22:53:39.000000000","message":"Note that Redis and memcached are very different. One is replicated and persisted, and the other is not.","commit_id":"13feeb03ab9b9358e40377c4c7a6fa4a44206c33"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"030a7bf4ed182839a077da572e9577e119f1a811","unresolved":false,"context_lines":[{"line_number":87,"context_line":"caches requests in separate, local, Memcached instances. For example, a request"},{"line_number":88,"context_line":"to ``GET /v3/users/6ec6a3c`` on one keystone node will result in ``6ec6a3c``"},{"line_number":89,"context_line":"being cached locally, but a subsequent request to get the same user from"},{"line_number":90,"context_line":"another keystone server in the same deployment will require a round trip to the"},{"line_number":91,"context_line":"database since other keystone nodes aren\u0027t guaranteed to have user ``6ec6a3c``"},{"line_number":92,"context_line":"in their local Memcached instance. In the worst case, each keystone node needs"},{"line_number":93,"context_line":"to cache the same user before the performance benefits take place. To help"},{"line_number":94,"context_line":"mitigate this issue, you can configure keystone to shard cache keys across a"},{"line_number":95,"context_line":"cluster of Memcached servers. Supplying the same backend configuration across"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_48b64d8d","line":92,"range":{"start_line":90,"start_character":1,"end_line":92,"end_character":34},"updated":"2019-07-22 22:53:39.000000000","message":"I am not sure if this statement is true. It all depends on the order in which the memcache ring is specified. Say if you have 3 Keystone instances and the memcache order is \"memcache1,memcache2,memcache3\" configured on all three, all three Keystone instances will see the data the same way.","commit_id":"13feeb03ab9b9358e40377c4c7a6fa4a44206c33"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9754fb1b99df5e3269125abb7874570acace9860","unresolved":false,"context_lines":[{"line_number":87,"context_line":"caches requests in separate, local, Memcached instances. For example, a request"},{"line_number":88,"context_line":"to ``GET /v3/users/6ec6a3c`` on one keystone node will result in ``6ec6a3c``"},{"line_number":89,"context_line":"being cached locally, but a subsequent request to get the same user from"},{"line_number":90,"context_line":"another keystone server in the same deployment will require a round trip to the"},{"line_number":91,"context_line":"database since other keystone nodes aren\u0027t guaranteed to have user ``6ec6a3c``"},{"line_number":92,"context_line":"in their local Memcached instance. In the worst case, each keystone node needs"},{"line_number":93,"context_line":"to cache the same user before the performance benefits take place. To help"},{"line_number":94,"context_line":"mitigate this issue, you can configure keystone to shard cache keys across a"},{"line_number":95,"context_line":"cluster of Memcached servers. Supplying the same backend configuration across"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_759e4f08","line":92,"range":{"start_line":90,"start_character":1,"end_line":92,"end_character":34},"in_reply_to":"7faddb67_48b64d8d","updated":"2019-07-25 15:07:44.000000000","message":"Correct, that is what I was trying to relay.\n\nIn this example, I\u0027m trying to say that if each keystone node is only configured to use local caching, then round trips will be required even if one keystone node cached that user already.\n\nI attempt to describe the \"sharded\" approach on the next line.","commit_id":"13feeb03ab9b9358e40377c4c7a6fa4a44206c33"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"030a7bf4ed182839a077da572e9577e119f1a811","unresolved":false,"context_lines":[{"line_number":98,"context_line":"keystone node, it results in a cache hit instead of a miss since all keystone"},{"line_number":99,"context_line":"instances are sharing a common cache. You can take advantage of this by"},{"line_number":100,"context_line":"specifying the same server order for ``keystone.conf [cache]"},{"line_number":101,"context_line":"memcached_servers`` across all keystone nodes."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"The following configuration shows how to setup caching to shard cache results"},{"line_number":104,"context_line":"across two different instances of Memcached:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_0875b5cc","line":101,"updated":"2019-07-22 22:53:39.000000000","message":"Also, memcache is a only useful if the same data is access repeatedly in a given interval. i.e.token validation data is perfect for caching. If the data is access sparingly during the cache duration, memcache will not help performance.","commit_id":"13feeb03ab9b9358e40377c4c7a6fa4a44206c33"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"030a7bf4ed182839a077da572e9577e119f1a811","unresolved":false,"context_lines":[{"line_number":115,"context_line":"----------------------------------------"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"The token subsystem is OpenStack Identity\u0027s most heavily used API. As a result,"},{"line_number":118,"context_line":"all types of tokens benefit from caching, including Fernet tokens. Although"},{"line_number":119,"context_line":"Fernet tokens do not need to be persisted, they should still be cached for"},{"line_number":120,"context_line":"optimal token validation performance."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"The token system has a separate ``cache_time`` configuration option,"},{"line_number":123,"context_line":"that can be set to a value above or below the global ``expiration_time``"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_882f65a6","line":120,"range":{"start_line":118,"start_character":67,"end_line":120,"end_character":37},"updated":"2019-07-22 22:53:39.000000000","message":"May want to explain that fernet token validating is pulling identity and resource data from the various backends. If those aren\u0027t cached, fernet token validation performance will not be optimal.","commit_id":"13feeb03ab9b9358e40377c4c7a6fa4a44206c33"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9754fb1b99df5e3269125abb7874570acace9860","unresolved":false,"context_lines":[{"line_number":115,"context_line":"----------------------------------------"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"The token subsystem is OpenStack Identity\u0027s most heavily used API. As a result,"},{"line_number":118,"context_line":"all types of tokens benefit from caching, including Fernet tokens. Although"},{"line_number":119,"context_line":"Fernet tokens do not need to be persisted, they should still be cached for"},{"line_number":120,"context_line":"optimal token validation performance."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"The token system has a separate ``cache_time`` configuration option,"},{"line_number":123,"context_line":"that can be set to a value above or below the global ``expiration_time``"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_f558ff56","line":120,"range":{"start_line":118,"start_character":67,"end_line":120,"end_character":37},"in_reply_to":"7faddb67_882f65a6","updated":"2019-07-25 15:07:44.000000000","message":"Done","commit_id":"13feeb03ab9b9358e40377c4c7a6fa4a44206c33"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"e2e13c64494024ce11b9e68fc23f3978420ede2b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7faddb67_eebeecfd","side":"PARENT","updated":"2019-07-25 16:59:12.000000000","message":"File could also be renamed if the title is being renamed","commit_id":"a0aa21c237f7b42077fc945f157844deb77be5ef"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"e2e13c64494024ce11b9e68fc23f3978420ede2b","unresolved":false,"context_lines":[{"line_number":46,"context_line":"   toggle for caching defaults to ``False``. A subsystem is only able to cache"},{"line_number":47,"context_line":"   responses if the global toggle is enabled."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Current functional back ends are:"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"``dogpile.cache.null``"},{"line_number":52,"context_line":"   A \"null\" backend that effectively disables all cache operations.(Default)"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_eeb7cc39","side":"PARENT","line":49,"range":{"start_line":49,"start_character":0,"end_line":49,"end_character":33},"updated":"2019-07-25 16:59:12.000000000","message":"This is a section in the general configuration guide for keystone. Removing the documentation about the specific backends seems to be losing data. If we don\u0027t want to document these here then I guess we should at least replace it with a link directly to https://docs.openstack.org/oslo.cache/latest/configuration/index.html","commit_id":"a0aa21c237f7b42077fc945f157844deb77be5ef"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"e2e13c64494024ce11b9e68fc23f3978420ede2b","unresolved":false,"context_lines":[{"line_number":191,"context_line":""},{"line_number":192,"context_line":"   enabled \u003d true"},{"line_number":193,"context_line":"   backend \u003d dogpile.cache.memcached"},{"line_number":194,"context_line":"   backend_argument \u003d url:127.0.0.1:11211"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"You need to specify the URL to reach the ``memcached`` instance with the"},{"line_number":197,"context_line":"``backend_argument`` parameter."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_0ee1082b","side":"PARENT","line":194,"updated":"2019-07-25 16:59:12.000000000","message":"With this gone, there\u0027s now no example for the all-in-one base case, maybe it could be mentioned first before the sharding case?","commit_id":"a0aa21c237f7b42077fc945f157844deb77be5ef"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"e2e13c64494024ce11b9e68fc23f3978420ede2b","unresolved":false,"context_lines":[{"line_number":36,"context_line":"data (e.g., user and groups), you can set ``keystone.conf [identity] caching``"},{"line_number":37,"context_line":"to ``False``. Additionally, you can specify specific timeouts for each"},{"line_number":38,"context_line":"subsystem. For example, setting some resources to have shorter timeouts that"},{"line_number":39,"context_line":"others. These options give you more control over, especially if you don\u0027t want"},{"line_number":40,"context_line":"the one-size-fits-all approach available from `oslo.limit`. By default,"},{"line_number":41,"context_line":"keystone enables caching for all subsystems, which is highly recommended."},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_8b108aaa","line":39,"range":{"start_line":39,"start_character":44,"end_line":39,"end_character":48},"updated":"2019-07-25 16:59:12.000000000","message":"over what?","commit_id":"b0c68cf9137f23e40701ec2a77d7a17a9260f925"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"e2e13c64494024ce11b9e68fc23f3978420ede2b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"to ``False``. Additionally, you can specify specific timeouts for each"},{"line_number":38,"context_line":"subsystem. For example, setting some resources to have shorter timeouts that"},{"line_number":39,"context_line":"others. These options give you more control over, especially if you don\u0027t want"},{"line_number":40,"context_line":"the one-size-fits-all approach available from `oslo.limit`. By default,"},{"line_number":41,"context_line":"keystone enables caching for all subsystems, which is highly recommended."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"For example, the following configuration disables all backends with the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_2b271615","line":40,"range":{"start_line":40,"start_character":52,"end_line":40,"end_character":57},"updated":"2019-07-25 16:59:12.000000000","message":"wrong oslo","commit_id":"b0c68cf9137f23e40701ec2a77d7a17a9260f925"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"e2e13c64494024ce11b9e68fc23f3978420ede2b","unresolved":false,"context_lines":[{"line_number":73,"context_line":"---------------------"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Keystone supports backend drivers for multiple caching backing via"},{"line_number":76,"context_line":"`oslo.cache`. The default backend effectively disables all caching even if"},{"line_number":77,"context_line":"``keystone.conf [cache] enabled`` is set to ``True``. Other options include"},{"line_number":78,"context_line":"Redis and Memcached.  Please be aware of Redis licensing `changes"},{"line_number":79,"context_line":"\u003chttps://redislabs.com/blog/redis-labs-modules-license-changes/\u003e`_ if you\u0027re"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_ce01b006","line":76,"range":{"start_line":76,"start_character":18,"end_line":76,"end_character":33},"updated":"2019-07-25 16:59:12.000000000","message":"Could mention the name of the default backend. In some cases operators may be looking at a config and be unsure if the value is the default or has been overridden by someone or their config management.","commit_id":"b0c68cf9137f23e40701ec2a77d7a17a9260f925"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"e2e13c64494024ce11b9e68fc23f3978420ede2b","unresolved":false,"context_lines":[{"line_number":79,"context_line":"\u003chttps://redislabs.com/blog/redis-labs-modules-license-changes/\u003e`_ if you\u0027re"},{"line_number":80,"context_line":"planning on using Redis in your deployment. Note that Redis and Memcached have"},{"line_number":81,"context_line":"very different implementations. Please consult the documentation for each to"},{"line_number":82,"context_line":"understand how their implementations may affect your deployment."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"It is important to note the ways in which keystone can use caching backends and"},{"line_number":85,"context_line":"what implications it has on performance. A common deployment strategy is to"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_4e92a0a1","line":82,"updated":"2019-07-25 16:59:12.000000000","message":"Could also add a more positive spin on this, eg keystone recommends and tests with memcached.","commit_id":"b0c68cf9137f23e40701ec2a77d7a17a9260f925"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"028bcdf15b23cbac9275203026959848233c47cc","unresolved":false,"context_lines":[{"line_number":84,"context_line":"It is important to note the ways in which keystone can use caching backends and"},{"line_number":85,"context_line":"what implications it has on performance. A common deployment strategy is to"},{"line_number":86,"context_line":"deploy a Memcached instance alongside keystone. Keystone can reference a local"},{"line_number":87,"context_line":"copy of Memcached to store data for requests that specific keystone instance"},{"line_number":88,"context_line":"serves. If you\u0027re deployment is highly available and scales linearly, this"},{"line_number":89,"context_line":"might not be the most efficient caching option since each keystone instance"},{"line_number":90,"context_line":"caches requests in separate, local, Memcached instances. For example, a request"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_8cf8607c","line":87,"range":{"start_line":87,"start_character":45,"end_line":87,"end_character":49},"updated":"2019-08-30 13:48:05.000000000","message":"that are*?\n\nthis doesn\u0027t read well","commit_id":"b0c68cf9137f23e40701ec2a77d7a17a9260f925"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"e2e13c64494024ce11b9e68fc23f3978420ede2b","unresolved":false,"context_lines":[{"line_number":85,"context_line":"what implications it has on performance. A common deployment strategy is to"},{"line_number":86,"context_line":"deploy a Memcached instance alongside keystone. Keystone can reference a local"},{"line_number":87,"context_line":"copy of Memcached to store data for requests that specific keystone instance"},{"line_number":88,"context_line":"serves. If you\u0027re deployment is highly available and scales linearly, this"},{"line_number":89,"context_line":"might not be the most efficient caching option since each keystone instance"},{"line_number":90,"context_line":"caches requests in separate, local, Memcached instances. For example, a request"},{"line_number":91,"context_line":"to ``GET /v3/users/6ec6a3c`` on one keystone node will result in ``6ec6a3c``"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_6b450e70","line":88,"range":{"start_line":88,"start_character":11,"end_line":88,"end_character":17},"updated":"2019-07-25 16:59:12.000000000","message":"your","commit_id":"b0c68cf9137f23e40701ec2a77d7a17a9260f925"}]}
