asoul-fanclub / geek-cache

a distributed read-only cache, based groupcache, using etcd as a registry, supports efficient concurrent reading.
MIT License
12 stars 6 forks source link

Something may cause data inconsistency #9

Open leaf-dawn opened 1 year ago

leaf-dawn commented 1 year ago

After the new node is added, the data on the old node is not migrated. If the new node is removed soon, the data will be inconsistent

Makonike commented 1 year ago

Consider adding a Delete API?

Makonike commented 1 year ago

这个项目只是一个玩具项目。在实际生产中,一份数据不可能只缓存在一个节点上,在geek-cache中,访问节点的请求会经过一致性哈希落到哈希环中的某个节点上,当这个节点宕机,缓存在该节点的数据将失效,新的请求经过映射后会映射到其后的一个节点之上。我们可以考虑将一致性哈希做在proxy层,将geek-cache再抽象化,哈希环中的每个节点都是一个集群,通过QuorumNWR算法来实现自定义的一致性,当然,这只是个idea,具体的实现还需要进一步讨论。

Makonike commented 1 year ago

解决基本一致性问题,缓存key与哈希值,监听虚拟节点通知,对自有key进行管理。 @leaf-dawn