-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/8633/
-----------------------------------------------------------

(Updated Jan. 4, 2013, 2:56 p.m.)


Review request for S4.


Changes
-------

1. Addressed comments from previous review
2. Added more sender executor factories, and using a factory for throttling 
sender executors by default


Description
-------

Performance improvements (S4-95 ended up being a lot more than just a 
benchmarking framework):
- added integration with metrics (that could still be improved though)
- minimized buffer and object copies
- use kryo 2 for serialization
- refactored netty pipeline and provided throttling, blocking and load shedding 
senders and receivers
- added a benchmarking framework for measuring communication overhead


This addresses bug S4-95.
    https://issues.apache.org/jira/browse/S4-95


Diffs (updated)
-----

  build.gradle 60577de 
  lib/reflectasm-1.07-shaded.jar PRE-CREATION 
  settings.gradle c2b9b67 
  subprojects/s4-base/src/main/java/org/apache/s4/base/Emitter.java c73dd1c 
  subprojects/s4-base/src/main/java/org/apache/s4/base/Event.java 4e47723 
  subprojects/s4-base/src/main/java/org/apache/s4/base/EventMessage.java 
e777687 
  subprojects/s4-base/src/main/java/org/apache/s4/base/Listener.java 608d628 
  subprojects/s4-base/src/main/java/org/apache/s4/base/Receiver.java 
PRE-CREATION 
  subprojects/s4-base/src/main/java/org/apache/s4/base/Sender.java PRE-CREATION 
  
subprojects/s4-base/src/main/java/org/apache/s4/base/SerializerDeserializer.java
 f7ef101 
  subprojects/s4-base/src/main/java/org/apache/s4/base/package-info.java 
5829e0c 
  subprojects/s4-benchmarks/README.md PRE-CREATION 
  subprojects/s4-benchmarks/bench-cluster.sh PRE-CREATION 
  subprojects/s4-benchmarks/config/injector.config PRE-CREATION 
  subprojects/s4-benchmarks/config/node.config PRE-CREATION 
  subprojects/s4-benchmarks/s4-benchmarks.gradle PRE-CREATION 
  
subprojects/s4-benchmarks/src/main/java/org/apache/s4/benchmark/dag/DagApp.java 
PRE-CREATION 
  
subprojects/s4-benchmarks/src/main/java/org/apache/s4/benchmark/dag/FirstPE.java
 PRE-CREATION 
  
subprojects/s4-benchmarks/src/main/java/org/apache/s4/benchmark/dag/LastPE.java 
PRE-CREATION 
  
subprojects/s4-benchmarks/src/main/java/org/apache/s4/benchmark/dag/PipePE.java 
PRE-CREATION 
  
subprojects/s4-benchmarks/src/main/java/org/apache/s4/benchmark/prodcon/ProducerConsumerApp.java
 PRE-CREATION 
  
subprojects/s4-benchmarks/src/main/java/org/apache/s4/benchmark/prodcon/SimplePE1.java
 PRE-CREATION 
  
subprojects/s4-benchmarks/src/main/java/org/apache/s4/benchmark/prodcon/SimplePE2.java
 PRE-CREATION 
  
subprojects/s4-benchmarks/src/main/java/org/apache/s4/benchmark/utils/InjectionLimiterModule.java
 PRE-CREATION 
  
subprojects/s4-benchmarks/src/main/java/org/apache/s4/benchmark/utils/Injector.java
 PRE-CREATION 
  
subprojects/s4-benchmarks/src/main/java/org/apache/s4/benchmark/utils/Utils.java
 PRE-CREATION 
  subprojects/s4-benchmarks/src/main/resources/logback.xml PRE-CREATION 
  subprojects/s4-benchmarks/startInjector.sh PRE-CREATION 
  subprojects/s4-benchmarks/startNode.sh PRE-CREATION 
  subprojects/s4-comm/src/main/java/org/apache/s4/comm/DefaultCommModule.java 
d7c8cee 
  
subprojects/s4-comm/src/main/java/org/apache/s4/comm/DeserializerExecutorFactory.java
 PRE-CREATION 
  
subprojects/s4-comm/src/main/java/org/apache/s4/comm/serialize/KryoSerDeser.java
 b7fad75 
  
subprojects/s4-comm/src/main/java/org/apache/s4/comm/serialize/SerializerDeserializerFactory.java
 PRE-CREATION 
  
subprojects/s4-comm/src/main/java/org/apache/s4/comm/staging/BlockingDeserializerExecutorFactory.java
 PRE-CREATION 
  
subprojects/s4-comm/src/main/java/org/apache/s4/comm/staging/BlockingThreadPoolExecutorService.java
 PRE-CREATION 
  
subprojects/s4-comm/src/main/java/org/apache/s4/comm/staging/MemoryAwareDeserializerExecutorFactory.java
 PRE-CREATION 
  
subprojects/s4-comm/src/main/java/org/apache/s4/comm/staging/ThrottlingThreadPoolExecutorService.java
 PRE-CREATION 
  subprojects/s4-comm/src/main/java/org/apache/s4/comm/tcp/RemoteEmitters.java 
85dc86d 
  subprojects/s4-comm/src/main/java/org/apache/s4/comm/tcp/TCPEmitter.java 
44c9247 
  subprojects/s4-comm/src/main/java/org/apache/s4/comm/tcp/TCPListener.java 
d495033 
  
subprojects/s4-comm/src/main/java/org/apache/s4/comm/tcp/TCPRemoteEmitter.java 
a22767b 
  subprojects/s4-comm/src/main/java/org/apache/s4/comm/udp/UDPEmitter.java 
2f156b2 
  subprojects/s4-comm/src/main/java/org/apache/s4/comm/udp/UDPListener.java 
319c7ab 
  
subprojects/s4-comm/src/main/java/org/apache/s4/comm/udp/UDPRemoteEmitter.java 
050a6ec 
  subprojects/s4-comm/src/main/java/org/apache/s4/comm/util/EmitterMetrics.java 
PRE-CREATION 
  subprojects/s4-comm/src/main/resources/default.s4.comm.properties 36417b4 
  subprojects/s4-comm/src/test/java/org/apache/s4/comm/DeliveryTestUtil.java 
17340b8 
  
subprojects/s4-comm/src/test/java/org/apache/s4/comm/tcp/MultiPartitionDeliveryTest.java
 1813f7a 
  
subprojects/s4-comm/src/test/java/org/apache/s4/comm/tcp/SimpleDeliveryTest.java
 e46ed47 
  subprojects/s4-comm/src/test/java/org/apache/s4/comm/tcp/TCPBasicTest.java 
PRE-CREATION 
  subprojects/s4-comm/src/test/java/org/apache/s4/comm/tcp/TCPCommTest.java 
c9153ce 
  
subprojects/s4-comm/src/test/java/org/apache/s4/comm/topology/AssignmentsFromZKTest1.java
 e3ff947 
  
subprojects/s4-comm/src/test/java/org/apache/s4/comm/topology/ClustersFromZKTest.java
 768ffd0 
  subprojects/s4-comm/src/test/java/org/apache/s4/comm/topology/ZKBaseTest.java 
2ef95f4 
  
subprojects/s4-comm/src/test/java/org/apache/s4/comm/udp/MultiPartitionDeliveryTest.java
 4e06233 
  
subprojects/s4-comm/src/test/java/org/apache/s4/comm/udp/SimpleDeliveryTest.java
 b1c5d8a 
  subprojects/s4-comm/src/test/java/org/apache/s4/comm/udp/UDPBasicTest.java 
PRE-CREATION 
  subprojects/s4-comm/src/test/java/org/apache/s4/comm/udp/UDPCommTest.java 
0f6004f 
  subprojects/s4-comm/src/test/java/org/apache/s4/comm/util/PartitionInfo.java 
97cc973 
  
subprojects/s4-comm/src/test/java/org/apache/s4/comm/util/ProtocolTestUtil.java 
c647611 
  subprojects/s4-comm/src/test/java/org/apache/s4/fixtures/CommTestUtils.java 
7316498 
  subprojects/s4-comm/src/test/java/org/apache/s4/fixtures/MockReceiver.java 
PRE-CREATION 
  
subprojects/s4-comm/src/test/java/org/apache/s4/fixtures/MockReceiverModule.java
 PRE-CREATION 
  subprojects/s4-comm/src/test/java/org/apache/s4/fixtures/NoOpReceiver.java 
PRE-CREATION 
  
subprojects/s4-comm/src/test/java/org/apache/s4/fixtures/NoOpReceiverModule.java
 PRE-CREATION 
  
subprojects/s4-comm/src/test/java/org/apache/s4/fixtures/TCPTransportModule.java
 PRE-CREATION 
  
subprojects/s4-comm/src/test/java/org/apache/s4/fixtures/UDPTransportModule.java
 PRE-CREATION 
  subprojects/s4-comm/src/test/java/org/apache/s4/fixtures/ZkBasedTest.java 
411c7c6 
  subprojects/s4-comm/src/test/resources/udp.s4.comm.properties 7b525bd 
  subprojects/s4-core/s4-core.gradle 0905ce7 
  subprojects/s4-core/src/main/java/org/apache/s4/core/App.java 936d225 
  subprojects/s4-core/src/main/java/org/apache/s4/core/AppModule.java 
PRE-CREATION 
  subprojects/s4-core/src/main/java/org/apache/s4/core/DefaultCoreModule.java 
5701640 
  subprojects/s4-core/src/main/java/org/apache/s4/core/Main.java fc85219 
  subprojects/s4-core/src/main/java/org/apache/s4/core/ProcessingElement.java 
b899403 
  subprojects/s4-core/src/main/java/org/apache/s4/core/Receiver.java 6c0b19c 
  subprojects/s4-core/src/main/java/org/apache/s4/core/ReceiverImpl.java 
PRE-CREATION 
  subprojects/s4-core/src/main/java/org/apache/s4/core/RemoteSender.java 
daccbaa 
  subprojects/s4-core/src/main/java/org/apache/s4/core/RemoteSenders.java 
3a111d0 
  subprojects/s4-core/src/main/java/org/apache/s4/core/RemoteStream.java 
c4a3798 
  subprojects/s4-core/src/main/java/org/apache/s4/core/Sender.java 5b0b03d 
  subprojects/s4-core/src/main/java/org/apache/s4/core/SenderImpl.java 
PRE-CREATION 
  subprojects/s4-core/src/main/java/org/apache/s4/core/Server.java 02e521a 
  subprojects/s4-core/src/main/java/org/apache/s4/core/Stream.java e5ef775 
  
subprojects/s4-core/src/main/java/org/apache/s4/core/ft/FileSystemBackendCheckpointingModule.java
 ca23c79 
  subprojects/s4-core/src/main/java/org/apache/s4/core/ft/SafeKeeper.java 
3ffc91b 
  
subprojects/s4-core/src/main/java/org/apache/s4/core/gen/OverloadDispatcherGenerator.java
 c0f07a7 
  
subprojects/s4-core/src/main/java/org/apache/s4/core/staging/BlockingRemoteSendersExecutorServiceFactory.java
 PRE-CREATION 
  
subprojects/s4-core/src/main/java/org/apache/s4/core/staging/BlockingSenderExecutorServiceFactory.java
 PRE-CREATION 
  
subprojects/s4-core/src/main/java/org/apache/s4/core/staging/BlockingStreamExecutorServiceFactory.java
 PRE-CREATION 
  
subprojects/s4-core/src/main/java/org/apache/s4/core/staging/LoadSheddingRemoteSendersExecutorServiceFactory.java
 PRE-CREATION 
  
subprojects/s4-core/src/main/java/org/apache/s4/core/staging/LoadSheddingSenderExecutorServiceFactory.java
 PRE-CREATION 
  
subprojects/s4-core/src/main/java/org/apache/s4/core/staging/LoadSheddingStreamExecutorServiceFactory.java
 PRE-CREATION 
  
subprojects/s4-core/src/main/java/org/apache/s4/core/staging/RemoteSendersExecutorServiceFactory.java
 PRE-CREATION 
  
subprojects/s4-core/src/main/java/org/apache/s4/core/staging/SenderExecutorServiceFactory.java
 PRE-CREATION 
  
subprojects/s4-core/src/main/java/org/apache/s4/core/staging/StreamExecutorServiceFactory.java
 PRE-CREATION 
  
subprojects/s4-core/src/main/java/org/apache/s4/core/staging/ThrottlingRemoteSendersExecutorServiceFactory.java
 PRE-CREATION 
  
subprojects/s4-core/src/main/java/org/apache/s4/core/staging/ThrottlingSenderExecutorServiceFactory.java
 PRE-CREATION 
  subprojects/s4-core/src/main/java/org/apache/s4/core/util/S4Metrics.java 
PRE-CREATION 
  subprojects/s4-core/src/test/java/org/apache/s4/core/TriggerTest.java 97b025c 
  
subprojects/s4-core/src/test/java/org/apache/s4/core/ft/CheckpointingTest.java 
6001595 
  subprojects/s4-core/src/test/java/org/apache/s4/core/ft/FTWordCountTest.java 
c3d30b7 
  subprojects/s4-core/src/test/java/org/apache/s4/core/ft/RecoveryTest.java 
f2b0297 
  
subprojects/s4-core/src/test/java/org/apache/s4/core/timers/MultithreadingTest.java
 903f288 
  
subprojects/s4-core/src/test/java/org/apache/s4/core/windowing/WindowingPE1.java
 b1676dc 
  
subprojects/s4-core/src/test/java/org/apache/s4/core/windowing/WindowingPETest.java
 78d814a 
  
subprojects/s4-core/src/test/java/org/apache/s4/deploy/TestAutomaticDeployment.java
 1fbd37a 
  subprojects/s4-core/src/test/java/org/apache/s4/fixtures/CoreTestUtils.java 
7e88dd8 
  subprojects/s4-core/src/test/java/org/apache/s4/fixtures/MockCommModule.java 
75143c1 
  subprojects/s4-core/src/test/java/org/apache/s4/fixtures/MockCoreModule.java 
71bae7a 
  subprojects/s4-core/src/test/java/org/apache/s4/wordcount/WordCountTest.java 
db45fcb 
  subprojects/s4-edsl/src/main/java/org/apache/s4/edsl/AppBuilder.java 4e007b0 
  subprojects/s4-example/src/main/java/org/apache/s4/example/counter/MyApp.java 
0209933 
  
test-apps/twitter-counter/src/main/java/org/apache/s4/example/twitter/TwitterCounterApp.java
 5d7855f 

Diff: https://reviews.apache.org/r/8633/diff/


Testing
-------

- regression tests
- performance benchmarks (up to >200 k remote msgs/s/stream/node with blocking 
sender)
- twitter example + other internal apps


Thanks,

Matthieu Morel

Reply via email to