首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PlayORM能利用顺序数据布局吗?

PlayORM能利用顺序数据布局吗?
EN

Stack Overflow用户
提问于 2013-03-22 19:47:20
回答 1查看 76关注 0票数 0

与Cassandra的分区相比,我想讨论PlayORM的虚拟分区是否总是对数据进行分区的最佳方式。

模式:

  • TimeStamp
  • 设备ID
  • 设备名称
  • 设备所有者

对于一个TimeStamp,有500 K行,对于特定的设备ID,有10 K行

如果我想在两个列上进行分区,比如TimeStamp和设备ID。

  1. 使用PlayORM对两列进行“虚拟”分区,以便任何列的任何虚拟分区的数据都分布在所有节点上。
  2. 使用Cassandra内置的对其中一个列的分区支持,并使用PlayORM的方法在其他列上创建“虚拟”分区。

如果“设备ID”是以“Cassandra”方式划分的,那么特定“设备ID”的所有记录都将存储在相邻位置的磁盘中,并且可以像playorm那样对“TimeStamp”进行虚拟分区。与PlayORM的方法相比,我可能更喜欢这种方法,因为使用Cassandra的分区方法,如果它们位于磁盘上物理上相邻的位置,则可以快速获取特定设备ID的所有记录,因为它们的数字较少(仅为10K)。这可能比PlayORM在节点上平均分配所有分区的所有记录的方法要好,因为那时数据将随机分布在磁盘上,从而导致许多磁盘查找,显然这会减慢速度。因此,即使在PlayORM的方法中,我们通过在集群中的节点间划分行来解决分治问题,但是由于分治导致的加速可能被高磁盘搜索所抵消,因为行可以随机地分散在节点上(相对于Cassandra的分区,所有的分区都在一起)。

以上是否是一个有效的观点,还是在我的理解中有一些错误?

EN

回答 1

Stack Overflow用户

发布于 2013-03-22 20:16:04

这可能是可能的,但你也假设在一个卡桑德拉节点上,也不会有太多的寻求,因为所有的压缩,可以发生。在卡桑德拉经常发生SizeTiered或水平压实。最好的办法是只编写一个实际的测试用例来测试这两种场景。有时候,花上几天的时间来真正检验理论,最终会有很大的回报。要真正测试这一点,如果读取设置为QUOROM(即。每次读取时命中2个节点)。如果有3个具有RF=3的节点,您可能会看到相同的性能。

无论如何,测试是无可替代的。在测试之前,我们发现了许多被“说”的错误,所以最好运行代码,看看它是如何为您的情况工作的。

院长

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15578699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档