我需要一个高性能数据库,用于在大型数据表上进行多个并发读/写操作,我不知道Cassandra是否是一个好的候选者.因此,如果你能帮助我澄清我的下面的问题,那就太棒了.假设我有一个包含500万行和500万列的表.
1. cassandra的性能是否与硬件的处理能力成线性关系?
2.当我需要搜索1列以查看它是否存在时,如果没有,那么我想在当前表中插入一个新列.这个操作快吗?
3.如果读/写操作的当前响应时间很慢,我可以在不改变当前表结构的情况下改进它的可能方法是什么?
附加信息:
a.交易控制并不重要.
湾 复制取决于用例.对于具有多个并发读/写操作的表,不需要复制.对于具有多个并发读取的表,需要进行复制.
非常感谢你.
1. cassandra的性能是否与硬件的处理能力成线性关系?
Cassandra的整体性能与机器数量相当线性.对于1台机器,如果您使用旋转磁盘,正式建议不要超过1Tb /机器.SSD的限制更高,约为3Tb /机.至少这是Cassandra 2.1和2.2的推荐.使用Cassandra 3.0和存储引擎重写,这些数字可能会更高,因为服务器密度已得到改善.
2.当我需要搜索1列以查看它是否存在时,如果没有,那么我想在当前表中插入一个新列.这个操作快吗?
由于有大量的数据结构来优化磁盘访问(使用布隆过滤器,分区密钥缓存,分区样本,所以使用主键查找数据非常快...请参阅http://www.slideshare.net/doanduyhai/cassandra-introduction- apache-con-2014-budapest/48)
如果您不是通过主键访问数据,则会导致对大量数据进行顺序扫描,从而无法保证性能
3.如果读/写操作的当前响应时间很慢,我可以在不改变当前表结构的情况下改进它的可能方法是什么?
它应该是相反的方式.设计您的表结构和数据模型以便快速读取(使用Cassandra,写操作总是很快).适当的硬件(SSD)和内存(用于页面缓存)也将改善读/写操作.除了上面的那些参数,其他调整旋钮(键高速缓存大小,布隆过滤器fp机会...)仅提供边际改进
湾 复制取决于用例.对于具有多个并发读/写操作的表,不需要复制.
如果没有复制,可能会因硬件故障而丢失数据,您确定数据丢失对于应该提供读写的表是否可接受?
| 归档时间: |
|
| 查看次数: |
413 次 |
| 最近记录: |