2015-10-19 92 views
4

我是卡桑德拉的新手。据我所知,每个键区可以存储的最大表格数量是Integer.Max_Value。然而,从大量表格的性能角度来看(速度,存储等)会有什么影响?有什么建议吗?Cassandra - 表的最大合理数量是多少?

在此先感谢

Altober

回答

6

虽然有合法的用例有很多在卡桑德拉的表,他们是罕见的。你的用例可能就是其中之一,但要确保它是。在不了解你想要解决的问题的情况下,显然很难提供指导。显然,许多表格需要更多的资源。多少?这取决于设置和使用情况。

例如,如果您有一千个表并同时写入所有这些表,则会出现RAM争用,因为每个表都会有memtables,并且每个memtable都有一定的开销很大程度上取决于哪个版本的Cassandra,你的设置等)。

但是,如果您有一千张表,但不同时写入所有这些表,争用就会减少。每桌仍有一定的开销,但会有更多RAM用于保存活动表的memtables。

磁盘IO也是如此。如果你同时读写很多不同的表,磁盘将会做更多的随机IO。

即使拥有大量表格也不是什么大问题,即使有多少你可以拥有的限制 - 你可以拥有尽可能多的数据,只要你有足够的内存来保存跟踪的结构他们。虽然有大量的表格并且同时读写所有表格都会成为问题。它将需要更多的资源,而不是对相同数量的读取和写入更少的表。

0

在我看来,如果你可以将数据分割成多个表格,甚至数千个表格都是有益的。

优点:

  1. 假设你想在未来扩展到10+节点为2的RF将产生具有跨节点均匀分布的数据,因此不实用。
  2. 另一点是随机IO,如果你将同时从很多表中读取,那么它会很大,但我不明白为什么只有一个表时会有差异。你也会寻找另一个分区键,所以IO没有区别。
  3. 当紧凑化发生时,如果只有桌子上,它将不得不做更少的工作。来自SSTables的值必须加载到内存中,合并并保存回来。

缺点:

  1. 有多个表将产生具有多个memtables。我认为这对RAM增加的差异是微不足道的。

此外,检查出的链接,他们帮助了我很多
http://manuel.kiessling.net/2016/07/11/how-cassandras-inner-workings-relate-to-performance/
https://www.infoq.com/presentations/Apache-Cassandra-Anti-Patterns

请下跌自由编辑自己的帖子,我还挺新的大数据

相关问题