获取Cassandra数据库或从头开始构建数据库?

时间:2017-12-07 16:53:49

标签: cassandra

所以,我是Cassandra的新手,我想知道学习Cassandra的最佳方法是什么。

我应该首先关注数据库的设计并从头开始构建数据库吗? 正如我读到的那样,卡桑德拉非常适合写作。怎么能观察到呢?是否有可以使用的开源数据? (我真的不知道在哪里看。)

1 个答案:

答案 0 :(得分:2)

Cassandra入门的一个好处是来自DataStax(企业级Cassandra发行版)的免费在线课程:https://academy.datastax.com/courses

对于Cassandra擅长编写数据 - 请看一下:https://docs.datastax.com/en/cassandra/3.0/cassandra/dml/dmlHowDataWritten.html

写路径归结为以下几点:

  • 将数据写入commitlog(仅按顺序追加,不随机io - 因此应该在自己的磁盘上以防止磁头移动,ssd没有问题)
  • 将数据写入memtables(保存在内存中 - 非常快)

所以就磁盘而言,写操作首先是对commitlog的简单附加。没有数据直接写入sstables(它在commitlog和memtable中,有时会像sstables一样刷新到磁盘),更新不会改变磁盘上的sstable(sstables是不可变的,更新是用新的时间戳单独写的) ,删除不会从sstables中删除数据(sstables是不可变的 - 而是写一个墓碑)。

所有更新和删除都会在memtable和sstables中生成新条目,删除已删除的数据并从更新中删除旧版本的数据。磁盘上的sstables会不时地压缩为新版本。

还可以阅读有关不同压缩策略(可以帮助您提供良好性能),复制因素(群集应保留的数据副本数量)和一致性级别(Cassandra应如何确定写入或读取成功的时间,提示:ALL几乎都是错的,请找QUORUM)。