没有限制,但是需要考虑一些问题:
锁力度
当你操作一行数据的时候,这个regionserver 会对这个行进行暂时锁定,来进行操作,
从好的方面看,我们可以并发的进行原子读操作,或者压根不能修改操作。除非可以可以容忍误差(部分更新,数据时效不敏感)
在弊的方面看,这意味着单个行内的吞吐量的写入操作被限制(可能几百每秒)。
Region的分布式性能
对一个row进行操作的负载均衡和分布式单位都在一个region上,所以这个region到底有多忙,他也只会通过这台机器提供服务。如果是多行那么就可以做多台服务进行一个负载均衡。
Bugs
在一些早起版本有些bug,他会突然加载反序列化整行数据到内存中,所以行column非常多(100MB)的话就会导致OOM, 这些bug可能已经解决了吧?regionserver也会更聪明的选择需要的column进行加载。
这个是需要明确的。
总结
如果你不需要做原子操作,那么可能最好的方式是设计一个高表模型来实现的逻辑