)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c85118401121759698d9d7ff4cc83bce88c65bd2","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"efe591a8_268be5fa","updated":"2024-02-05 02:30:00.000000000","message":"This also needs a release note.","commit_id":"ba3a7531467418387b26f6bc0794b59728b02172"},{"author":{"_account_id":36759,"name":"Xu Qi","email":"xuqi_yewu@cmss.chinamobile.com","username":"XuQi"},"change_message_id":"1807455317fa88b487e475163691e12b393a4ce9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b719243c_6c9d25b3","in_reply_to":"efe591a8_268be5fa","updated":"2024-02-06 02:26:28.000000000","message":"release note added","commit_id":"ba3a7531467418387b26f6bc0794b59728b02172"}],"tooz/drivers/memcached.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c85118401121759698d9d7ff4cc83bce88c65bd2","unresolved":true,"context_lines":[{"line_number":215,"context_line":"    If clustered memcached server is needed, additional memcached servers are"},{"line_number":216,"context_line":"    listed with ``extra_host`` parameters as follows::"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        memcached://\u003chost\u003e:\u003cport\u003e?sentinel\u003d\u003chost\u003e:\u003cport\u003e,\u003chost\u003e:\u003cport\u003e"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    General recommendations/usage considerations:"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"f6ce4a12_0bcde37b","line":218,"range":{"start_line":218,"start_character":34,"end_line":218,"end_character":42},"updated":"2024-02-05 02:30:00.000000000","message":"why is this sentinel  ? sentinel is specific to redis.\n\nThis is not aligned with L212 (extra_host)","commit_id":"ba3a7531467418387b26f6bc0794b59728b02172"},{"author":{"_account_id":36759,"name":"Xu Qi","email":"xuqi_yewu@cmss.chinamobile.com","username":"XuQi"},"change_message_id":"842f85469444335f672b282c31f62846411f5820","unresolved":true,"context_lines":[{"line_number":215,"context_line":"    If clustered memcached server is needed, additional memcached servers are"},{"line_number":216,"context_line":"    listed with ``extra_host`` parameters as follows::"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        memcached://\u003chost\u003e:\u003cport\u003e?sentinel\u003d\u003chost\u003e:\u003cport\u003e,\u003chost\u003e:\u003cport\u003e"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    General recommendations/usage considerations:"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"e6993a2e_d87f0e09","line":218,"range":{"start_line":218,"start_character":34,"end_line":218,"end_character":42},"in_reply_to":"13c49ba1_5fd750b0","updated":"2024-02-06 02:25:31.000000000","message":"thanks for your advice, the arguments have been renamed","commit_id":"ba3a7531467418387b26f6bc0794b59728b02172"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"8f16ede03a4aae2e580bee03e21f6937d7d290ac","unresolved":true,"context_lines":[{"line_number":215,"context_line":"    If clustered memcached server is needed, additional memcached servers are"},{"line_number":216,"context_line":"    listed with ``extra_host`` parameters as follows::"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        memcached://\u003chost\u003e:\u003cport\u003e?sentinel\u003d\u003chost\u003e:\u003cport\u003e,\u003chost\u003e:\u003cport\u003e"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    General recommendations/usage considerations:"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"13c49ba1_5fd750b0","line":218,"range":{"start_line":218,"start_character":34,"end_line":218,"end_character":42},"in_reply_to":"f6ce4a12_0bcde37b","updated":"2024-02-05 02:34:24.000000000","message":"Also, see how sentinel_fallback is implemented in the redis driver and align how this is implemented with that.\n\nAlso, the name \"host\" is confusing if it contains host:port. \"server\" would be a better worning\n\nwhy I may suggest is\n\nmemcached://\u003chost\u003e:\u003cport\u003e?extra_server\u003d\u003chost\u003e:\u003cport\u003e\u0026extra_server\u003d\u003chost\u003e:\u003cport\u003e","commit_id":"ba3a7531467418387b26f6bc0794b59728b02172"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c85118401121759698d9d7ff4cc83bce88c65bd2","unresolved":true,"context_lines":[{"line_number":280,"context_line":"        else:"},{"line_number":281,"context_line":"            self.max_pool_size \u003d None"},{"line_number":282,"context_line":"        self._acquired_locks \u003d []"},{"line_number":283,"context_line":"        self._hash_ring \u003d hashring.HashRing(self._host_list.keys())"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    @staticmethod"},{"line_number":286,"context_line":"    def _msgpack_serializer(key, value):"},{"line_number":287,"context_line":"        if isinstance(value, bytes):"}],"source_content_type":"text/x-python","patch_set":6,"id":"4a238b22_dee8f914","line":284,"range":{"start_line":283,"start_character":8,"end_line":284,"end_character":1},"updated":"2024-02-05 02:30:00.000000000","message":"pymemcache has own implementation of cluster support. Use it instead of implementing the same in this layer. Probably you can replace PooledClient by HashClient (with a few adjustments of arguments).\n\nhttps://pymemcache.readthedocs.io/en/latest/apidoc/pymemcache.client.hash.html#module-pymemcache.client.hash","commit_id":"ba3a7531467418387b26f6bc0794b59728b02172"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"f589779405c9f0d7f57a3f4be7eb0d6b6cb56783","unresolved":true,"context_lines":[{"line_number":280,"context_line":"        else:"},{"line_number":281,"context_line":"            self.max_pool_size \u003d None"},{"line_number":282,"context_line":"        self._acquired_locks \u003d []"},{"line_number":283,"context_line":"        self._hash_ring \u003d hashring.HashRing(self._host_list.keys())"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    @staticmethod"},{"line_number":286,"context_line":"    def _msgpack_serializer(key, value):"},{"line_number":287,"context_line":"        if isinstance(value, bytes):"}],"source_content_type":"text/x-python","patch_set":6,"id":"70b630ff_4a630a7f","line":284,"range":{"start_line":283,"start_character":8,"end_line":284,"end_character":1},"in_reply_to":"0215b53b_b1b589e1","updated":"2024-02-06 03:25:55.000000000","message":"If you do not prefer that kick out behavior then what\u0027s the point of supporting cluster ? Without that mechanism if you get any of your cluster nodes tooz may not function. It may have performance improvement but makes the cluster fragile.","commit_id":"ba3a7531467418387b26f6bc0794b59728b02172"},{"author":{"_account_id":36759,"name":"Xu Qi","email":"xuqi_yewu@cmss.chinamobile.com","username":"XuQi"},"change_message_id":"079f499b37ec3c0a3d00cac929af13b47498e309","unresolved":true,"context_lines":[{"line_number":280,"context_line":"        else:"},{"line_number":281,"context_line":"            self.max_pool_size \u003d None"},{"line_number":282,"context_line":"        self._acquired_locks \u003d []"},{"line_number":283,"context_line":"        self._hash_ring \u003d hashring.HashRing(self._host_list.keys())"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    @staticmethod"},{"line_number":286,"context_line":"    def _msgpack_serializer(key, value):"},{"line_number":287,"context_line":"        if isinstance(value, bytes):"}],"source_content_type":"text/x-python","patch_set":6,"id":"0215b53b_b1b589e1","line":284,"range":{"start_line":283,"start_character":8,"end_line":284,"end_character":1},"in_reply_to":"4a238b22_dee8f914","updated":"2024-02-06 02:23:41.000000000","message":"The implementation of pymemcache will retry for several times, if retry still fails, the client will mark the server as dead, kick the server from the server list, and route the request to other servers, this may cause some problems. For example, if a process acquired a lock, and then the server where the lock is located goes down, HashClient might route this request to another server, and then the process might acquire the lock, even though the lock on the original server had already been acquired by another process.","commit_id":"ba3a7531467418387b26f6bc0794b59728b02172"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"50c349cfbf2d4cd789cff1351dcdf4fa603e821d","unresolved":true,"context_lines":[{"line_number":280,"context_line":"        else:"},{"line_number":281,"context_line":"            self.max_pool_size \u003d None"},{"line_number":282,"context_line":"        self._acquired_locks \u003d []"},{"line_number":283,"context_line":"        self._hash_ring \u003d hashring.HashRing(self._host_list.keys())"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    @staticmethod"},{"line_number":286,"context_line":"    def _msgpack_serializer(key, value):"},{"line_number":287,"context_line":"        if isinstance(value, bytes):"}],"source_content_type":"text/x-python","patch_set":6,"id":"e2bf0d91_7d3fb2bd","line":284,"range":{"start_line":283,"start_character":8,"end_line":284,"end_character":1},"in_reply_to":"70b630ff_4a630a7f","updated":"2024-02-06 03:26:31.000000000","message":"s/if you get any of your cluster nodes/if you get any of your cluster nodes **down**/","commit_id":"ba3a7531467418387b26f6bc0794b59728b02172"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"5fe2a6e5f09d2a916da58350353f9531b2859444","unresolved":true,"context_lines":[{"line_number":280,"context_line":"        else:"},{"line_number":281,"context_line":"            self.max_pool_size \u003d None"},{"line_number":282,"context_line":"        self._acquired_locks \u003d []"},{"line_number":283,"context_line":"        self._hash_ring \u003d hashring.HashRing(self._host_list.keys())"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    @staticmethod"},{"line_number":286,"context_line":"    def _msgpack_serializer(key, value):"},{"line_number":287,"context_line":"        if isinstance(value, bytes):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7d9c9f56_cf890869","line":284,"range":{"start_line":283,"start_character":8,"end_line":284,"end_character":1},"in_reply_to":"e2bf0d91_7d3fb2bd","updated":"2024-02-06 03:30:44.000000000","message":"If you prefer strictness, then I\u0027d suggest you use other backends such as etcd or redis. Using memcached cluster for that purpose has strong downside in availability and does not sound very useful for me.","commit_id":"ba3a7531467418387b26f6bc0794b59728b02172"}]}
