我很想知道couchbase服务器是如何支持高并发性和高吞吐量的。
发布于 2014-03-01 13:29:09
这是一个需要回答的非常广泛的问题,但我将尝试介绍Couchbase快速和可扩展的一些关键原因。
默认情况下,Couchbase中的写入是异步的,复制和持久性发生在后台,智能客户端(SKD)被通知成功或失败。因此,基本上,任何新文档或文档的突变都会写入ram,然后异步地刷新到后台的磁盘,然后复制到其他节点。这意味着在IO/磁盘速度方面没有等待时间或争用。(这意味着在请求被保存到磁盘或复制到辅助/第三个节点之前,可以写到ram,然后节点就会掉下来)。同步写入是可能的,但它将大大降低吞吐量。
在处理ram时,写和读非常快(我们只将集群推进到每秒20k的操作),但是大公司很容易达到每秒400 k的操作。LinkedIN仅用4个节点--> http://www.couchbase.com/customer-stories来维持这一运算速率。
在传统的数据库体系结构中,通常设置为主DB (Mysql/Postgres/Oracle)和数据冗余的从DB,而且随着负载的增加,写入/读取也可以在2之间进行分割。Couchbase用于分布式系统(Couchbase建议生产中至少有3个节点)。数据在集群中的节点之间自动共享,从而将写/读扩展到多台计算机。在需要更高吞吐量的情况下,在Couchbase中添加节点就像单击add节点然后重新平衡集群一样简单,数据将自动在新的集群映射中进行分区。
因此,本质上是使用异步磁盘持久化从ram中读写+分布式读写==的高吞吐量
希望这能帮上忙!
发布于 2014-03-01 13:40:11
@可伸缩性解决方案已经给出了一个很好的概述,但是如果您想要更长(更详细)的描述,请看一下回顾 on couchbase.com
https://stackoverflow.com/questions/22113990
复制相似问题