首页 > Linux操作系统 > Linux操作系统 > Cassandra介绍
最近学习了一下Cassandra,对nosql的发展有了初步了解;nosql对于扩展性要求高的应用提供了很好的解决思路,但由于设计目标的限制,不适合用于对高可用性要求高、更新频繁的oltp环境。
总结如下:
作为非关系型数据库,Cassandra提供基本的数据存储功能,事务支持,一致性(commitlog),缓存(写memtable,读rowcache和keycache),并发控制。
优点:
*使用java实现,非常简洁,支持JMX便于管理
*伸缩性好,添加节点非常容易
*集群配置简单,集群环境自行管理,不依赖第三方软件
*集群环境提供数据冗余策略(节点与存储机架感知)
*支持hadoop
缺点:
***对一个columnfamily更改(增、删、改),需要对整个columnfamily重新重新生成索引(key按顺序排列),涉及大量i/o。-->这里就体现出了关系数据库b+树索引的优势,不但支持迅速查找,而且可以以极小的IO成本在任意位置插入/删除key。
*事务支持简单,不支持多个操作组成一个事务
*由于在完成memtable到sstable持久化后,commitlog会被删除,不能利用commitlog实现复制、在线备份与恢复
*集群节点的failover支持有限(读在有冗余时可以,写可以hint方式临时存在其他节点,由于没有使用虚拟ip,必须等待请求超时才能发现失效节点)
*除了通过key检索外(hash到节点,节点内使用顺序方式维护索引(key-position)),二级索引功能有限
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/18922393/viewspace-709710/ ,如需转载,请注明出处,否则将追究法律责任。