卡桑德拉 - 什么是表的合理的最大值是多少?

问题描述 投票:6回答:2

我是新来的卡桑德拉。据我所知,可以每密钥空间被存储的表的最大数目是Integer.MAX_VALUE的。然而,什么是从这样一个大数目表的业绩看(速度,存储等)的影响是什么?是否有关于任何建议?

database cassandra key-value-store
2个回答
9
投票

虽然有合法的用例有很多在卡桑德拉的表,他们是罕见的。您的使用案例可能是其中之一,但要确保它是。没有knowning更多关于你正在试图解决这个问题,这显然难以给予指导。许多表将需要更多的资源,很明显。多少?这取决于设置和使用。

举例来说,如果你有一千个表,并在同一时间写信给所有的人都将有RAM争,因为会有memtables为他们每个人,并且有一定的开销,每个的memTable(多少取决于其版本卡桑德拉,设置等)。

不过,如果你有一千个表,但在同一时间不写于所有的人,都会有竞争少。仍然有每桌的开销,但会有更多的RAM保持周围活动的表的memtables。

这同样适用于磁盘IO。如果你读,并在同一时间内磁盘将会做更多的随机IO写了很多不同的表。

只要有大量的表格是不是一个大问题,即使是你能有多少的限制 - 你可以有你想要的前提是你有足够的内存来保持这种跟踪它们的结构为多。有大量的表格和阅读,并在同一时间写他们都将是一个问题,虽然。这将需要更多的资源不是做相同数量的读取和写入更少的表。


1
投票

如果您可以将数据分割成多个表,甚至上千,我的意见是有益的。

优点:

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

缺点:

  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

请随意编辑自己的帖子,我还挺新的大数据

© www.soinside.com 2019 - 2024. All rights reserved.