[ 
https://issues.apache.org/jira/browse/HBASE-17747?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15907134#comment-15907134
 ] 

Yu Li commented on HBASE-17747:
-------------------------------

Ok, here comes the E2E test report through YCSB (with 100% cache hit ratio):
|| Case || Off-heap || Round || Throughput || AverageThroughput||
| w/o patch | No | 1 | 275652.627079|  |
|  |  | 2 | 248664.333337|  |
|  |  | 3 | 264297.580882|  |
|  |  | 4 | 253694.307118|  |
|  |  |  |  | 260577.212104 |
| w/ patch | No | 1 | 268122.883638|  |
|  |  | 2 | 284483.969107|  |
|  |  | 3 | 283008.465412|  |
|  |  | 4 | 268476.579267|  |
|  |  |  |  | 276022.974356 (+5.9%) |
| w/o patch | Yes | 1 | 199073.764764|  |
|  |  | 2 | 210060.769909|  |
|  |  | 3 | 216729.412051|  |
|  |  | 4 | 221610.155932|  |
|  |  |  |  | 211868.525664 |
| w/ patch | Yes | 1 | 217398.730766|  |
|  |  | 2 | 232581.157272|  |
|  |  | 3 | 225765.026296|  |
|  |  | 4 | 229071.140011|  |
|  |  |  |  | 226204.013586 (+6.8%) |

>From the result we could see with soft reference we get a better performance.

More details about testing configuration:
{noformat}
YCSB:
* 4 physical nodes, 8 ycsb processes on each node
* recordcount=11000000
* fieldcount=1
* fieldlength=1024 (10.8GB overall)
* threadcount=8
* maxexecutiontime=300
* table schema: {NAME => 'cf', DATA_BLOCK_ENCODING => 'DIFF', VERSIONS=> '1', 
COMPRESSION => 'SNAPPY', IN_MEMORY => 'false', BLOCKCACHE => 'true'},{SPLITS => 
(1..9).map {|i| "user#{1000+i*(9999-1000)/9}"}, 
MAX_FILESIZE=>'223372036854775807',DURABILITY=>'SYNC_WAL',METADATA => 
{'hbase.hstore.block.storage.policy' => 'ALL_SSD'}}

HBase:
* One single regionserver, 3 datanode
* base commit SHA (w/o patch): 31bc94ae60
* hbase.regionserver.handler.count=192
* On-heap: -Xmx42g, hfile.block.cache.size=0.3
* Off-heap: hbase.bucketcache.size=12288, 
hbase.bucketcache.writer.queuelength=64, hbase.bucketcache.writer.threads=3
{noformat}

> Support both weak and soft object pool
> --------------------------------------
>
>                 Key: HBASE-17747
>                 URL: https://issues.apache.org/jira/browse/HBASE-17747
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Yu Li
>            Assignee: Yu Li
>         Attachments: HBASE-17747.patch, HBASE-17747.v2.patch, 
> HBASE-17747.v3.patch
>
>
> During YCSB testing on embedded mode after HBASE-17744, we found that under 
> high read load GC is quite severe even with offheap L2 cache. After some 
> investigation, we found it's caused by using weak reference for 
> IdReadWriteLock. In embedded mode the read is so quick that the lock might 
> already get promoted to the old generation when the weak reference is 
> cleared, which causes dirty card table thus slowing YGC.
> So we proposed to use soft reference for this IdReadWriteLock used in cache, 
> which won't get cleared until JVM memory is not enough, and could resolve the 
> issue mentioned above. What's more, we propose to extend the WeakObjectPool 
> to be more generate to support both weak and soft reference.
> Note that this issue only emerges under embedded mode with DirectOperator, in 
> which case all costs on the wire is removed thus produces extremely high 
> workloads.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to