Cassandra 系统简介
Cassandra 是一套开源分布式 NoSQL 数据库系统。它最初由 Facebook 开发,用于储存
收件箱等简单格式数据,集 GoogleBigTable 的数据模型与 Amazon Dynamo 的完全分布式
的架构于一身 Facebook 于 2008 将 Cassandra 开源,此后,由于 Cassandra 良好的可扩展
性,被 Digg、Twitter 等知名 Web 2.0 网站所采纳,成为了一种流行的分布式结构化数据存
储方案。
Cassandra 是一个混合型的非关系的数据库,类似于 Google 的 BigTable。其主要功能
比 Dynamo (分布式的 Key-Value 存储系统)更丰富,但支持度却不如文档存储 MongoDB
(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像
关系数据库的。支持的数据结构非常松散,是类似 json 的 bjson 格式,因此可以存储比较
复杂的数据类型)。Cassandra 最初由 Facebook 开发,后转变成了开源项目。它是一个网络
社交云计算方面理想的数据库。以 Amazon 专有的完全分布式的 Dynamo 为基础,结合了
Google BigTable 基于列族(Column Family)的数据模型。P2P 去中心化的存储。很多方面
都可以称之为 Dynamo 2.0。
Cassandra 的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个
分布式网络服务,对 Cassandra 的一个写操作,会被复制到其他节点上去,对 Cassandra 的
读操作,也会被路由到某个节点上面去读取。对于一个 Cassandra 群集来说,扩展性能是比
较简单的事情,只管在群集里面添加节点就可以了。
和其他数据库比较,有三个突出特点:
(1)模式灵活
使用 Cassandra,像文档存储,你不必提前解决记录中的字段。你可以在系统运行时随
意的添加或移除字段。这是一个惊人的效率提升,特别是在大型部署上。
(2)可扩展性
Cassandra 是纯粹意义上的水平扩展。为给集群添加更多容量,可以指向另一台电脑。
你不必重启任何进程,改变应用查询,或手动迁移任何数据。
(3)多数据中心
你可以调整你的节点布局来避免某一个数据中心起火,一个备用的数据中心将至少有每
条记录的完全复制。
Cassandra 调优系统设计
Cassandra 调优系统系统的设计理念为:generate and test(产生与测试),如图所示。
在产生阶段,我们可以使用各种优化方法生成新的参数,比如使用模拟退火方法、遗传编程
等等。在测试阶段,我们使用具体的测试方法对新参数进行验证,依据验证结果的反馈和记
录,我们进行新一轮的产生和测试,从而不断的迭代。具体的实施方法我们在关键技术中进
行介绍。