[ 
https://issues.apache.org/jira/browse/HBASE-5945?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

stack updated HBASE-5945:
-------------------------

    Attachment: with_patch.png
                without_patch.png

Here are results running little benchmark on end of TestIPC in its main.
It sets up the rpc doing a little echo protocol.  The echo copies the cells
it receives onto the response. On cmdline say how many cycles and how many 
columns.  I made Cell size be about 10k and ran the test adding 10 Cells per 
iteration so we are sending back and forth about 100k.  This approximates a 
small to medium-sized mult call.  I cycled 10k times.  Below are the test done 
twice.

With patch, the test finishes a little sooner... about 5-10% sooner.

I ran visualvm over a minute+ against each at about same stage in test.
Without patch we use more CPU and do more GC -- just over 36% CPU vs 33% or so 
and we do a bit more GC'ing... 4.1% or so vs 3.4% or so.  W/o the patch, more 
heap is used.  See pictures.  Patch seems to be improvement.

WITHOUT PATCH

durruti:hbase.git stack$ for i in 1 2 3 4 5; do time ./bin/hbase 
-Dhbase.defaults.for.version.skip=true org.apache.hadoop.hbase.ipc.TestIPC 
100000 10 &> /tmp/wopatch.$i.txt; done

real    0m42.843s
user    0m43.902s
sys     0m17.495s

real    0m43.357s
user    0m46.050s
sys     0m17.712s

real    0m42.595s
user    0m44.179s
sys     0m17.448s

real    0m43.320s
user    0m45.578s
sys     0m17.736s

real    0m42.647s
user    0m44.845s
sys     0m17.583s

... and again

real    0m45.868s
user    0m46.522s
sys     0m18.776s

real    0m42.764s
user    0m44.505s
sys     0m17.447s

real    0m43.080s
user    0m45.445s
sys     0m17.585s

real    0m43.261s
user    0m45.246s
sys     0m17.722s

real    0m42.592s
user    0m44.102s
sys     0m17.333s


WITH PATCH

durruti:hbase.git stack$ for i in 1 2 3 4 5; do time ./bin/hbase 
-Dhbase.defaults.for.version.skip=true org.apache.hadoop.hbase.ipc.TestIPC 
100000 10 &> /tmp/wpatch.$i.txt; done

real    0m38.838s
user    0m40.415s
sys     0m18.765s

real    0m37.638s
user    0m39.246s
sys     0m18.408s

real    0m38.696s
user    0m40.169s
sys     0m18.700s

real    0m37.948s
user    0m39.403s
sys     0m18.682s


real    0m38.077s
user    0m39.519s
sys     0m18.571s

...and again.

real    0m43.888s
user    0m44.394s
sys     0m21.427s

real    0m40.311s
user    0m42.553s
sys     0m19.460s

real    0m38.489s
user    0m41.097s
sys     0m18.761s

real    0m38.252s
user    0m39.603s
sys     0m18.618s

real    0m38.066s
user    0m39.656s
sys     0m18.621s

> Reduce buffer copies in IPC server response path
> ------------------------------------------------
>
>                 Key: HBASE-5945
>                 URL: https://issues.apache.org/jira/browse/HBASE-5945
>             Project: HBase
>          Issue Type: Improvement
>          Components: IPC/RPC
>    Affects Versions: 0.95.2
>            Reporter: Todd Lipcon
>            Assignee: stack
>             Fix For: 0.96.1
>
>         Attachments: 5945-in-progress.2.1.patch, 5945-in-progress.2.patch, 
> 5945-in-progress.patch, 5945v2.txt, 5945v4.txt, buffer-copies.txt, 
> even-fewer-copies.txt, hbase-5495.txt, with_patch.png, without_patch.png
>
>
> The new PB code is sloppy with buffers and makes several needless copies. 
> This increases GC time a lot. A few simple changes can cut this back down.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to