Uh oh!
There was an error while loading. Please reload this page.
[STORM-1038] Upgraded netty to 4.x - #728
Conversation
HeartSaVioR
commented
Sep 10, 2015
@hsun-cnnxty |
HeartSaVioR
commented
Sep 10, 2015
@hsun-cnnxty |
ooasis
commented
Sep 10, 2015
Good suggestion. I will get to work on them as soon as I get some time. I am also curious to verify the memory efficiency claimed by 4.x |
ooasis
commented
Sep 20, 2015
Upgraded to latest 4.0.31.Final and changed the buffer allocation to let Netty choose the best default implementations based on the platform. The implementations are determined by following properties: |
revans2
commented
Oct 3, 2015
@hsun-cnnxty, The changes look good to me. Please upmerge to the latest code. Then I would like to run some performance tests on it to see how it compares to the current code. Please also look at shading. In storm-core we are shading netty now, and I would like to be sure that it is still shaded correctly. If you have any questions on how to do this please let me know and I will be happy to help out. |
ooasis
commented
Oct 4, 2015
@revans2, just merged with the latest master. I don't have a decent storm cluster for performance test. With a small local cluster on single machine. I had tried https://github.com/yahoo/storm-perf-test and did not see any difference in memory consumption after the upgrade (It was configured in a way to make sure there is inter-worker communication using Netty). Hope your test can reveal more information. The shading config is updated in pom.xml with Hope that's all I need to do. -thanks |
There was a problem hiding this comment.
Could you please expand the imports?
Also below.
* apache/master: (47 commits) Added STORM-706 to Changelog Added STORM-1396 to Changelog Add myself to the committer list. adding back accidentally deleted metrics Added STORM-695 to Changelog storm-starter: Guide JDK version to later than 7 This closesapache#281 (STORM-517 is a dupe of STORM-833) Added STORM-1416 to Changelog Add STORM-1426 to Changelog Added STORM-1417 to Changelog STORM-1422 Added STORM-1429 to Changelog AvroGenericRecordBolt instead of SequenceFileBolt Added STORM-1401 to Changelog Added STORM-1424 to Changelog Add STORM-1427 to Changelog Added STORM-1413 to Changelog [STORM-1416] Documentation for state store Added STORM-1412 to Changelog Added STORM-1210 to Changelog ...
There was a problem hiding this comment.
If this is not needed we should remove it, not comment it out.
revans2
commented
Jan 8, 2016
Everything looks really good now. just a few minor nits. I still have not found time to run some performance tests, but I will try to do that today. |
revans2
commented
Jan 8, 2016
I just ran some performance tests using https://github.com/apache/storm/blob/master/examples/storm-starter/src/jvm/storm/starter/ThroughputVsLatency.java I ran with 4 workers on a MacBookPro and the numbers don't look good for netty4. With the older code I was able to do 20,000 sentences/second at CPU Utilization over 30 second interval: But with the netty4 patch it could only handle 17,000/sec and the latency was much worse CPU: To have the netty4 patch have similar latency we needed to only run at 14,000 sentences per second. 99%-lie: 38 ms CPU: Unless we can get the numbers to be close to or better than the netty3 implementation I cannot let this in. |
ooasis
commented
Jan 8, 2016
Cool, at least we get some numbers to compare. I will see if there is default setting need to be changed for netty 4. |
revans2
commented
Jan 8, 2016
@hsun-cnnxty I hope it is something like that. You should be able to run the tests yourself too. They are not that complex. I build I then run a small single node cluster Once it is all up and ready you can run the test. It will output metrics about the running test every 30 seconds for 5 mins. Some of the numbers are in nanoseconds and others are in milliseconds so pay attention to them. I like to vary the throughput and look to see when it cannot keep up any more to get an idea of the maximum throughput the setup can handle, and what the latency is for a given throughput so we can see how they compare to each other. |
ooasis
commented
Jan 21, 2016
With some refactoring, now it can sustain throughput of 20,000 /sec which it was not able to before. But latency at 20,000 /sec is still much higher than 3.x (5+ times). I will continue to investigate. |
* apache/master: (64 commits) add STORM-1496 to CHANGELOG.md fixing sporadic nimbus log failure and topology visualization backport STORM-1484/1478 to 1.0.0, too add STORM-1499 to CHANGELOG.md fix wrong package name for storm trident Added STORM-1463 to Changelog Added STORM-1485 to Changelog Added STORM-1486 to Changelog Added STORM-1214 to Changelog [STORM-1486] Fix storm-kafa documentation CHANGELOG: move STORM-1450 to 1.0.0 (backported) CHANGELOG.md: move 0.10.0-beta2 to 0.10.0 Fix CHANGELOG.md to have 0.10.1 and move issues Fix misplaced CHANGELOGs add STORM-1452 to changelog add STORM-1406 to changelog adds comments about licensing the profiler feature Fixes profiling/debugging out of the box add storm-mqtt to binary distribution Fixing minor code comments ...
ooasis
commented
Feb 25, 2016
Just merged code from master and seems there is performance degradation with recent changes. I noticed that it not only affects this branch, but also the master branch. Here are the comparison on my laptop for running the perf test with only 5,000/sec throughput with code from master. Before (git hash: 3db9680) Now (git hash: bd396b3) Note: when running the latest code, my CPU is almost 100% busy which may explain why it was so much worse. When running the "old" code, my CPU still had 10% idle time. -thanks |
revans2
commented
Feb 25, 2016
Yes I am aware of it. We are in the process of merging with the JStorm project, and part of this merger involves moving most of the clojure code to java. In all likelihood the degradation is due to reflection happening on the critical path because many new places in the code are calling into java that were not doing so before. I plan on doing some profiling soon and submit some fixes, but it is very much a moving target so I have not been very motivated to do so. The code for the netty messaging layer should stay mostly the same between 1.0 and 2.0 for this, so if you want to do your work based off of the 1.0 branch and show performance comparisons there being the same I would totally accept that as proof that the code is good. |
harshach
commented
Jul 10, 2016
@hsun-cnnxty we would like to get this into 1.x-branch as well as master. Did you get a chance to look at @revans2 comment above . It will be great if you can address the comment and up merge your patch. |
ooasis
commented
Jul 11, 2016
I am currently on vacation and will be back in two weeks. Will work on it as soon as I am back home. -thanks |
HeartSaVioR
commented
Jul 11, 2016
After rebasing, could you do the performance test against 1.x branch? The status of master branch is a WIP so we would be more convenient with 1.x branch. |
ooasis
commented
Jul 11, 2016
Sure. |
ooasis
commented
Jul 26, 2016
As this PR is for master, new PR #1591 is created for 1.x-branch. Performance tests to be done soon. |
ooasis
commented
Jul 31, 2016
I posted performance test results on #1591. |
kishorvpatil
commented
Sep 6, 2016
@hsun-cnnxty, I think this is great change to have. Any way we can implement this as a plugin for us to switch between current implementation? It took substantial amount to get the current version stabilized. So making it plug and play would help us switch between implementations in case of issues. |
ooasis
commented
Sep 7, 2016
@kishorvpatil that's an interesting idea. You mean a feature flag to toggle between 3.x and 4.x? I will investigate the possibility. Btw, I have moved the work to #1591. -thanks |
We are closing stale Pull Requests to make the list more manageable. Please re-open any Pull Request that has been closed in error. Closesapache#608Closesapache#639Closesapache#640Closesapache#648Closesapache#662Closesapache#668Closesapache#692Closesapache#705Closesapache#724Closesapache#728Closesapache#730Closesapache#753Closesapache#803Closesapache#854Closesapache#922Closesapache#986Closesapache#992Closesapache#1019Closesapache#1040Closesapache#1041Closesapache#1043Closesapache#1046Closesapache#1051Closesapache#1078Closesapache#1146Closesapache#1164Closesapache#1165Closesapache#1178Closesapache#1213Closesapache#1225Closesapache#1258Closesapache#1259Closesapache#1268Closesapache#1272Closesapache#1277Closesapache#1278Closesapache#1288Closesapache#1296Closesapache#1328Closesapache#1342Closesapache#1353Closesapache#1370Closesapache#1376Closesapache#1391Closesapache#1395Closesapache#1399Closesapache#1406Closesapache#1410Closesapache#1422Closesapache#1427Closesapache#1443Closesapache#1462Closesapache#1468Closesapache#1483Closesapache#1506Closesapache#1509Closesapache#1515Closesapache#1520Closesapache#1521Closesapache#1525Closesapache#1527Closesapache#1544Closesapache#1550Closesapache#1566Closesapache#1569Closesapache#1570Closesapache#1575Closesapache#1580Closesapache#1584Closesapache#1591Closesapache#1600Closesapache#1611Closesapache#1613Closesapache#1639Closesapache#1703Closesapache#1711Closesapache#1719Closesapache#1737Closesapache#1760Closesapache#1767Closesapache#1768Closesapache#1785Closesapache#1799Closesapache#1822Closesapache#1824Closesapache#1844Closesapache#1874Closesapache#1918Closesapache#1928Closesapache#1937Closesapache#1942Closesapache#1951Closesapache#1957Closesapache#1963Closesapache#1964Closesapache#1965Closesapache#1967Closesapache#1968Closesapache#1971Closesapache#1985Closesapache#1986Closesapache#1998Closesapache#2031Closesapache#2032Closesapache#2071Closesapache#2076Closesapache#2108Closesapache#2119Closesapache#2128Closesapache#2142Closesapache#2174Closesapache#2206Closesapache#2297Closesapache#2322Closesapache#2332Closesapache#2341Closesapache#2377Closesapache#2414Closesapache#2469
We are closing stale Pull Requests to make the list more manageable. Please re-open any Pull Request that has been closed in error. Closesapache#608Closesapache#639Closesapache#640Closesapache#648Closesapache#662Closesapache#668Closesapache#692Closesapache#705Closesapache#724Closesapache#728Closesapache#730Closesapache#753Closesapache#803Closesapache#854Closesapache#922Closesapache#986Closesapache#992Closesapache#1019Closesapache#1040Closesapache#1041Closesapache#1043Closesapache#1046Closesapache#1051Closesapache#1078Closesapache#1146Closesapache#1164Closesapache#1165Closesapache#1178Closesapache#1213Closesapache#1225Closesapache#1258Closesapache#1259Closesapache#1268Closesapache#1272Closesapache#1277Closesapache#1278Closesapache#1288Closesapache#1296Closesapache#1328Closesapache#1342Closesapache#1353Closesapache#1370Closesapache#1376Closesapache#1391Closesapache#1395Closesapache#1399Closesapache#1406Closesapache#1410Closesapache#1422Closesapache#1427Closesapache#1443Closesapache#1462Closesapache#1468Closesapache#1483Closesapache#1506Closesapache#1509Closesapache#1515Closesapache#1520Closesapache#1521Closesapache#1525Closesapache#1527Closesapache#1544Closesapache#1550Closesapache#1566Closesapache#1569Closesapache#1570Closesapache#1575Closesapache#1580Closesapache#1584Closesapache#1591Closesapache#1600Closesapache#1611Closesapache#1613Closesapache#1639Closesapache#1703Closesapache#1711Closesapache#1719Closesapache#1737Closesapache#1760Closesapache#1767Closesapache#1768Closesapache#1785Closesapache#1799Closesapache#1822Closesapache#1824Closesapache#1844Closesapache#1874Closesapache#1918Closesapache#1928Closesapache#1937Closesapache#1942Closesapache#1951Closesapache#1957Closesapache#1963Closesapache#1964Closesapache#1965Closesapache#1967Closesapache#1968Closesapache#1971Closesapache#1985Closesapache#1986Closesapache#1998Closesapache#2031Closesapache#2032Closesapache#2071Closesapache#2076Closesapache#2108Closesapache#2119Closesapache#2128Closesapache#2142Closesapache#2174Closesapache#2206Closesapache#2297Closesapache#2322Closesapache#2332Closesapache#2341Closesapache#2377Closesapache#2414Closesapache#2469
Upgraded the netty transportation layer to 4.x to take advantage of its memory management efficiency.