RowKey设计之单调递增行键/时序数据

 

  ​在一个集群中,一个导入数据的进程锁住不动,所有的client都在等待一个region

(因而也就是一个单个节点),过了一会后,变成了下一个region…​如果使用了单调递增

或者时序的key便会造成这样的问题。

  数据存储提示:rowkey采用单调增加的值真的很糟糕。

使用了顺序的key会将本没有顺序的数据变得有顺序,把负载压在一台机器上。所以要尽量避免时间戳或者序列(e.g. 1, 2, 3)这样的行键。

monotonically increasing values are bad

When saving entities to App Engine’s datastore at a high write rate, avoid monotonically increasing values such as timestamps. Generally speaking,

you don’t have to worry about this sort of thing until your application hits 100s of queries per second. Once you’re in that ballpark, you may want to

examine potential hotspots in your application that can increase datastore latency.

作为开发人员,您可以做些什么来避免这种情况?

  • 除非您需要查询值,否则请避免使用索引。没有指数=没有增加价值的热板
  • 降低写入速率,或弄清楚如何更好地分配值。纯随机分布是最好的,但即使是非随机的分布也会比可预测的,单调递增的值更好
  • 将分片标识符作为您的值的前缀。如果您计划进行查询,这是有问题的,因为您需要对值进行前缀和前缀, 然后将结果连接到内存中 - 但这会降低写入的错误率

无论您使用的是Master-Slave还是High Replication数据存储,这些提示都适用。

还有一个提示:不要过早地针对这种情况进行优化,因为很有可能,你不会遇到它。您可以花时间处理功能。

 

其实我只是想分享几个有趣得图片,娱乐到了我;

 

 

转载于:https://www.cnblogs.com/loadL/p/hbase_rowkey_monotonicallyIncreasing.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值