与Cassandra数据库中的写入相比,为什么阅读更昂贵?
#网络开发人员 #初学者 #database #softwareengineering

在卡桑德拉(Cassandra),由于数据库的分布性质,读取可能比写入更昂贵。

当数据写入Cassandra时,它存储在分区中。

每个分区都在群集中的多个节点上复制,以确保容错和高可用性。

出现写入时,数据将写入负责该分区的节点,然后传播给副本。


读取,另一方面需要在集群中的多个节点之间进行协调。

发出读取请求时,Cassandra必须首先确定哪些节点负责所请求的数据,然后从这些节点中检索数据。

此协调和数据检索过程比写操作更慢,更复杂,尤其是在请求的数据中存储在许多不同的节点上的情况下。

此外,Cassandra的数据模型已针对高写入吞吐量进行了优化。

该数据库旨在处理大量写信,并且可以轻松地缩放以适应其他写入能力。

然而,随着群集中的节点数量的增加,读取所需的协调和数据检索可能会变得更加复杂且潜在的较慢。

阅读Cassandra的请求流

执行读取操作时,数据库需要与多个节点进行协调以检索数据。

要了解协调过程,让我们考虑一个场景,客户端将读取请求发送给Cassandra节点以获取特定数据。这是发生的步骤:

  1. 首先接收读取请求的节点需要确定集群中的哪些节点负责所请求的数据。这是使用数据的分区密钥完成的,该数据确定了负责存储数据的节点。

  2. 一旦确定了负责数据的节点,协调员节点就会向每个节点发送读取请求。

  3. 接收读取请求的每个节点都会在其本地数据存储中搜索所请求的数据。如果找到数据,节点将将其返回到协调器节点。

  4. 协调员节点从已联系的所有节点中收集响应,并将结果发送回客户端。


如果请求的数据跨越多个分区,或者负责数据的某些节点,则此协调过程可能更复杂。

在这些情况下,卡桑德拉使用基于法定的方法来确保数据的一致性和可用性。

读取过程中的协调过程可能比撰写的资源更密集,因为它需要查询多个节点,并收集和合并它们的响应。

这就是为什么阅读比Cassandra写的要贵的。

请鼓掌!

如果您发现这篇文章很有帮助,我将感谢一些拍手ðððð7,它会激励我将来写更多这样有用的文章。

关注常规的令人敬畏的内容和见解。

订阅我的新闻通讯

如果您喜欢我的内容,请考虑订阅我的免费新闻通讯,以获取直接交付给收件箱的独家,教育,技术,有趣和与职业有关的内容

https://dsysd.beehiiv.com/subscribe

重要链接

感谢您阅读帖子,请务必遵循以下链接以获取将来更多令人敬畏的内容。

Twitter:https://twitter.com/dsysd_dev
YouTube:https://www.youtube.com/@dsysd-dev
github:https://github.com/dsysd-dev
媒介:https://medium.com/@dsysd-dev
电子邮件:dsysd.mail@gmail.com
Linkedin: https://www.linkedin.com/in/dsysd-dev/
新闻通讯:https://dsysd.beehiiv.com/subscribe
Gumroad:https://dsysd.gumroad.com/
Dev.TO:https://dev.to/dsysd_dev/