[
https://issues.apache.org/jira/browse/HBASE-16213?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Anoop Sam John updated HBASE-16213:
-----------------------------------
Release Note:
Enable this feature by setting DataBlockEncoding type to be ROW_INDEX_V1. For
existing tables alter table with new DBE type (Shell command - alter
'table_name',{NAME => 'cf', DATA_BLOCK_ENCODING => 'ROW_INDEX_V1'}).
If turn on, every hfile blocks will bigger than NONE encoding, because it need
some meta infos for binary search.
/**
* Store cells following every row's start offset, so we can binary search to a
row's cells.
*
* Format:
* flat cells
* integer: number of rows
* integer: row0's offset
* integer: row1's offset
* ....
* integer: dataSize
*
*/
was:
Enable this feature, use alter 'table_name',{NAME => 'cf', DATA_BLOCK_ENCODING
=> 'ROW_INDEX_V1'}.
If turn on, every hfile blocks will bigger than NONE encoding, because it need
some meta infos for binary search.
/**
* Store cells following every row's start offset, so we can binary search to a
row's cells.
*
* Format:
* flat cells
* integer: number of rows
* integer: row0's offset
* integer: row1's offset
* ....
* integer: dataSize
*
*/
> A new HFileBlock structure for fast random get
> ----------------------------------------------
>
> Key: HBASE-16213
> URL: https://issues.apache.org/jira/browse/HBASE-16213
> Project: HBase
> Issue Type: New Feature
> Components: Performance
> Reporter: binlijin
> Assignee: binlijin
> Fix For: 2.0.0, 1.4.0
>
> Attachments: HBASE-16213-master_v1.patch,
> HBASE-16213-master_v3.patch, HBASE-16213-master_v4.patch,
> HBASE-16213-master_v5.patch, HBASE-16213-master_v6.patch,
> HBASE-16213.branch-1.v1.patch, HBASE-16213.branch-1.v4.patch,
> HBASE-16213.branch-1.v4.patch, HBASE-16213.patch,
> HBASE-16213_branch1_v3.patch, HBASE-16213_v2.patch, hfile-cpu.png,
> hfile_block_performance.pptx, hfile_block_performance2.pptx,
> hfile_block_performance_E2E.pptx
>
>
> HFileBlock store cells sequential, current when to get a row from the block,
> it scan from the first cell until the row's cell.
> The new structure store every row's start offset with data, so it can find
> the exact row with binarySearch.
> I use EncodedSeekPerformanceTest test the performance.
> First use ycsb write 100w data, every row have only one qualifier, and
> valueLength=16B/64/256B/1k.
> Then use EncodedSeekPerformanceTest to test random read 1w or 100w row, and
> also record HFileBlock's dataSize/dataWithMetaSize in the encoding.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)