Caching NoSQL和x2B的数据一致性;非常并发环境中的分布式缓存

Caching NoSQL和x2B的数据一致性;非常并发环境中的分布式缓存,caching,architecture,high-load,data-consistency,nosql,Caching,Architecture,High Load,Data Consistency,Nosql,在幻灯片上,您可以看到非常粗略的预订系统架构。这是一个非常并发的环境,许多用户可以同时尝试预订同一个酒店/房间 底部是NoSQL数据库,为了快速响应/请求,有分布式缓存和请求数据的应用程序 本幻灯片的想法是,当您使用NoSQL+分布式缓存时,您将遇到同步问题,这意味着数据一致性问题。您需要将分布式缓存与NoSQL db同步 问题:除IMDG外,针对此类情况已有哪些解决方案/技术?这既可以是框架,也可以是最佳做法。是否有任何特定的分布式缓存可以解决此问题 问题2[更新]:我们写入NoSQL数据库而

在幻灯片上,您可以看到非常粗略的预订系统架构。这是一个非常并发的环境,许多用户可以同时尝试预订同一个酒店/房间

底部是NoSQL数据库,为了快速响应/请求,有分布式缓存和请求数据的应用程序

本幻灯片的想法是,当您使用NoSQL+分布式缓存时,您将遇到同步问题,这意味着数据一致性问题。您需要将分布式缓存与NoSQL db同步

问题:除IMDG外,针对此类情况已有哪些解决方案/技术?这既可以是框架,也可以是最佳做法。是否有任何特定的分布式缓存可以解决此问题

问题2[更新]:我们写入NoSQL数据库而不是缓存的原因是什么?是事务、节点故障可能性还是其他原因

p.S.这不是我的幻灯片,作者声称这是IMDG的一个很好的用例


您真的需要分布式缓存吗?NoSQL解决方案本质上性能非常好,接近独立缓存(如memcached)的性能

我可以从Cassandra中获得大约10毫秒的访问时间,这并不比大多数缓存慢多少

我敢打赌,当您投入缓存验证开销和丢失缓存命中的网络开销时,您最好直接访问数据库


您仍然可以将缓存用于不太短暂的内容,如房间类型、价格等。

谢谢您的回复!请你解释一下你最后的陈述好吗?为什么我应该对房间、价格等使用缓存,而不是酒店?另外,请你试着回答第二个问题(我刚刚添加了它),我是说那些变化非常快的东西(比如房间可用性)可能不应该被缓存。我会将房间定义与房间可用性分开。因此,可能需要为每个房间存储一个文档,并为每天存储单独的文档,其中包含可用房间的列表(可用性文档)。房间文档可以缓存,因为房间的统计信息、照片等不会更改。要为每个查询检索的可用性文档。缓存是缓存,而不是数据存储。缓存不需要持久性(在崩溃等情况下生存)之类的东西。它甚至不需要暂时的耐久性。它们通常是固定大小的,不能存储超过该大小的数据。现在,您可以(许多人也可以)将数据存储用作缓存,但缓存是对操作的描述,而不是技术。但通常,缓存技术不会实现持久或一致的读/写。他们牺牲这一点是为了速度,这是他们的目的。