hbase允许您以批处理模式进行put。可以以字节为单位指定批大小。只要底层缓冲区已满,就会将其推送到服务器。hbase如何计算每个put的大小?有什么方法可以动态计算java对象的大小吗?如果是这样的话,能便宜地计算吗?
6vl6ewon1#
hbase使用了一个启发式的近似值 Put s和 KeyValue s来决定何时刷新缓冲写入程序,如这里所示。这个 heapSize() 方法是由 HeapSize 接口,其中 KeyValue 以及 Put 两者都实现了。特别注意 KeyValue 利用对自身实现的了解,仅提供对自身规模的合理准确估计。没有语言级别的魔法来精确计算大小。 KeyValue#heapSize 是一个常数时间算法。 Put#heapSize 在包含的数量上是线性的 KeyValues ,我希望它能足够快地用于大多数目的,因为单个put通常只有不到1000个单元格。
Put
KeyValue
heapSize()
HeapSize
KeyValue#heapSize
Put#heapSize
KeyValues
1条答案
按热度按时间6vl6ewon1#
hbase使用了一个启发式的近似值
Put
s和KeyValue
s来决定何时刷新缓冲写入程序,如这里所示。这个
heapSize()
方法是由HeapSize
接口,其中KeyValue
以及Put
两者都实现了。特别注意
KeyValue
利用对自身实现的了解,仅提供对自身规模的合理准确估计。没有语言级别的魔法来精确计算大小。KeyValue#heapSize
是一个常数时间算法。Put#heapSize
在包含的数量上是线性的KeyValues
,我希望它能足够快地用于大多数目的,因为单个put通常只有不到1000个单元格。