You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Anoop Sam John (JIRA)" <ji...@apache.org> on 2015/08/04 19:40:06 UTC
[jira] [Created] (HBASE-14186) Read mvcc vlong optimization
Anoop Sam John created HBASE-14186:
--------------------------------------
Summary: Read mvcc vlong optimization
Key: HBASE-14186
URL: https://issues.apache.org/jira/browse/HBASE-14186
Project: HBase
Issue Type: Sub-task
Reporter: Anoop Sam John
Assignee: Anoop Sam John
Fix For: 2.0.0
{code}
for (int idx = 0; idx < remaining; idx++) {
byte b = blockBuffer.getByteAfterPosition(offsetFromPos + idx);
i = i << 8;
i = i | (b & 0xFF);
}
{code}
Doing the read as in case of BIG_ENDIAN.
After HBASE-12600, we tend to keep the mvcc and so byte by byte read looks eating up lot of CPU time. (In my test HFileReaderImpl#_readMvccVersion comes on top in terms of hot methods). We can optimize here by reading 4 or 2 bytes in one shot when the length of the vlong is more than 4 bytes. We will in turn use UnsafeAccess methods which handles ENDIAN.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)