【问题标题】:are writes always faster than reads in Cassandra?在 Cassandra 中写入总是比读取快吗?
【发布时间】:2014-09-25 23:59:10
【问题描述】:

我正在听 this talk 关于 Cassandra 中的数据建模。演讲者的一般性陈述是“在 Cassandra 中写入比读取更快”。

这种情况总是正确的吗?如果是,为什么?

【问题讨论】:

    标签: cassandra-2.0


    【解决方案1】:

    这仍然是正确的,即使不像过去那样有很大的不同。写入通常执行得更好,因为它不涉及太多 I/O——当数据同时写入提交日志(文件)和内存(内存表)时,写入操作完成。当 memtable 达到最大大小时,所有表都会刷新到磁盘 sstable 中。由于不同的原因,读取可能需要更多的 I/O。读取操作首先涉及从布隆过滤器(与 sstable 关联的过滤器,它可能会节省 I/O 时间,说明数据肯定不存在于关联的 sstable 中),然后,如果过滤器返回正值,Cassandra 开始寻找sstable 来查找数据。 HTH,卡罗

    【讨论】:

    • 写入需要从副本确认,然后才能成功返回客户端。这会使写入变慢对吗?
    • 写入和读取,如果在 CL > 1 中进行,则需要来自副本的信息。
    • 我有一个 18 节点的 cassandra 集群,我们的读取时间比写入时间快。当我们产生写入成功事件时,数据消费者会立即(至少 95% 的时间)读取数据,并且我们实现了更快的读取,因为数据可能仍在内存表中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 2020-10-06
    相关资源
    最近更新 更多