qian wang created HBASE-12320:
---------------------------------
Summary: hfile index can't flush to disk in memstore when key
portion of kv is larger than 128kb and hfile generated two level index above
Key: HBASE-12320
URL: https://issues.apache.org/jira/browse/HBASE-12320
Project: HBase
Issue Type: Bug
Components: HFile
Affects Versions: 0.98.1, 0.94.6
Environment: cdh4.5.0
cdh5.1.0
Reporter: qian wang
Attachments: TestLongIndex.java
when you make a big key portion of a keyvalue, for example, a big rowkey or a
big family or a big qualifer. all in words, once the kv.getkeylength of kv that
you put is larger than 128kb and it is the first kv of the datablock. And you
go on writing a new datablock so as to make two-level index in the hfile. You
couldn't flush the data in memstore. The rs that corresponding region lies in
will keep flushing state and the new hfile in .tmp of the region is writing
forever. You can't stop it unless kill the rs.
>From my point, the index generation logic of hifle result in the bug, when the
>intermediate index is larger than 128kb, it will generate next level index,
>but the first key of above 128kb will cause a endless loop to generate next
>level index.
attached my test code, you can try it in a empty table in your test cluster
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)