[hbase] Phoenix 성능

nosql 2013. 6. 24. 11:36


출처 : 피닉스 블로그

http://phoenix-hbase.blogspot.kr/2013/05/demystifying-skip-scan-in-phoenix.html?m=1



hbase의 read performance를 높이는 것이 hbase 큰 화두이다. essential cf(https://issues.apache.org/jira/browse/HBASE-5416), (https://issues.apache.org/jira/browse/HBASE-8316) 를 이용하여 성능을 높이려는 작업을 hbase에서 진행했다.


피닉스는 hbase에 올라가는 SQL인데. hive와 비슷한 오픈소스로서 요즘 많이 추천을 받고 있다. 

어중간하게 Scanner를 잘못써서 full scan하는 것보다  reseek을 이용한 피닉스를 써서 성능을 높이는 것이 좋을 수 있다. 아래 reseek를 통해서 성능을 높였다는 블로그가 있어서 공유한다. 


http://archive.cloudera.com/cdh4/cdh/4/hbase/apidocs/org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#reseek(org.apache.hadoop.hbase.KeyValue)

reseek

boolean reseek(KeyValue key)
               throws IOException
Reseek the scanner at or after the specified KeyValue. This method is guaranteed to seek at or after the required key only if the key comes after the current position of the scanner. Should not be used to seek to a key which may come before the current position.

Parameters:
key - seek value (should be non-null)
Returns:
true if scanner has values left, false if end of scanner
Throws:
IOException





in memory test

TestTime
Phoenix1.7 sec
Batched Gets4.0 sec



disk read test

TestTime
Phoenix37 sec
Batched Gets82 sec
Range Scan12 mins
Hive over HBase20+ mins




Posted by '김용환'
,