Comments (6)
另外一个的问题是:你从Hbase获取的元数据,都是先转化为String再去与类信息匹配的。建议你将类信息直接转化为byte数组,这样子从hbase获取的元数据就可以直接匹配了,这样子省去了转化String的过程。而且,key、value转化的字节数组一般都较小,使用Bytes类里数组比较方法更好。总体性能能提升不少。也就是说,将TypeInfo类中的columnInfosMap,改成:
Map<byte[], Map<byte[], ColumnInfo>> columnInfosMap = new TreeMap<byte[], Map<byte[], ColumnInfo>>(Bytes.BYTES_COMPARATOR);
from simplehbase.
简单看了下ppt中举的例子,发现个问题:rowkey存储的数据,貌似在qualifier里面也存储了一份。是么?
这个只是例子这么做的,实际上要看HTable的设计,可以在rowkey和qualifier中存2份,也可以rowkey中保存了,qualifier中不存,主要是看应用场景。
from simplehbase.
Map> columnInfosMap = new TreeMap>(Bytes.BYTES_COMPARATOR);
这个我下来测下,看看性能影响多大,谢谢这个建议。
from simplehbase.
这样子做,还有两个好处:
1.能实现“原始的qualifier为byte数组”的支持。有的人就是想直接定义qualifier为byte数组,而不是字符串。
2.少去了字节数组转换为String导致的gc
from simplehbase.
第2个好处是肯定的。
第1个我不太确定,什么场景下需要直接定义qualifier为byte数组。
from simplehbase.
我测了一下,性能差别不是很大。
测试代码TestUsingMapWithKeyStringAndBytes。
loop=1000000 get from string map avgtime=2.69E-4 get from bytes map avgtime=7.7E-5
from simplehbase.
Related Issues (17)
- 增加RegionServer预热控制功能
- scan时指定的qualifier应该考虑filter中的qualifier和DO中的column定义。
- 是否需要增加自定义Htable管理。
- 是否需要新增排序功能
- 新增智能设置scan的caching功能
- 多列簇count时,功能bug。
- 在你的源代码里面能否开源一下antlr4的代码呢 ? HOT 2
- hbase的count竟然不兼容
- Scan with filter 0.94.0 0.94.9 0.94.24 0.98.8不兼容
- simplehbase有计划支持 1.2.*, 1.3.* 等版本吗 HOT 5
- hbase的bytes做为long存储方式,负数比较时是否有问题。 HOT 5
- demo在哪里?
- LiteralValue是否需要扩展自定义支持。 HOT 1
- client指定ts时,有可能client和hbase的时间不同步,导致混乱。
- 如何支持多个实体? HOT 4
- 当hbase机器和本地机器时间漂移时单元测试失败 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from simplehbase.