jaydeepkumar1984 opened a new pull request, #3548:
URL: https://github.com/apache/cassandra/pull/3548

   ```
   Cassandra keeps token-ownership in two separate caches. 1) Gossip cache 2) 
StorageService cache. These two caches could go out of sync, and if they go, it 
creates a catastrophic impact on workloads. Currently, no mechanism in 
Cassandra exist that detects and fixes these two caches. This PR improves these 
two caches.
   
   Details: As we know, Cassandra exchanges important topology and 
token-ownership-related details over Gossip. Cassandra internally maintains the 
following two separate caches that have the token ownership information 
maintained: 1) Gossip cache and 2) Storage Service cache. The first Gossip 
cache is updated on a node, followed by the storage service cache. In the hot 
path, ownership is calculated from the storage service cache. Since two 
separate caches maintain the same information, then inconsistencies are bound 
to happen. It could be very well feasible that the Gossip cache has up-to-date 
ownership of the Cassandra cluster, but the service cache does not, and in that 
scenario, inconsistent data will be served to the user.
   
   **Long-term solution**
   We are going with the long-term transactional metadata 
(https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-21) to handle such 
inconsistencies, and that’s the right thing to do.
   
   **Short-term solution**
   But CEP-21 might take some time, and until then, there is a need to detect 
such inconsistencies. Once we detect inconsistencies, then we could have two 
options: 1) restart the node or 2) Fix the inconsistencies on the fly.
   ```
   
   The [Cassandra Jira](https://issues.apache.org/jira/browse/CASSANDRA-18758)
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to