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

Matthieu Morel edited comment on S4-95 at 11/14/12 6:10 PM:
------------------------------------------------------------

I just updated more improvements in commit f9689ea 

In addition to improvements from previous commits, we further and better 
decoupled the processing pipeline into asynchronous stages with configurable 
executors: reception, deserialization, processing, serialization and event 
emission.

We can reach 250+ thousands _remote_ events/s per node with a sufficient number 
of injectors using not the most recent hardware and OS, and that translates 
into 1M+ _remote_ events per seconds with only 4 S4 nodes. 

Since remote events require going through the communication layer and the 
network, we expect even higher rates when combining with internal events as in 
a standard application. (Internal events are passed by reference).

See the README.md file in s4-benchmarks subprojects for instructions to 
reproduce the tests.

                
      was (Author: mmorel):
    I just updated more improvements in commit f9689ea 

In addition to improvements from previous commits, we further and better 
decoupled the processing pipeline into asynchronous stages with configurable 
executors: reception, deserialization, processing, serialization and event 
emission.

We can reach 250+ thousands _remote_ events/s per node with a sufficient number 
of injectors using not the most recent hardware and OS, and that translates 
into 1M+ _remote_ events per seconds with only 4 S4 nodes. 

Since remote events require going through the communication layer and the 
network, we expect even higher rates when combining with internal events as in 
a standard application. (Internal events are passed by reference).

                  
> Add reproducible performance benchmarks
> ---------------------------------------
>
>                 Key: S4-95
>                 URL: https://issues.apache.org/jira/browse/S4-95
>             Project: Apache S4
>          Issue Type: Test
>    Affects Versions: 0.6
>            Reporter: Matthieu Morel
>            Assignee: Matthieu Morel
>
> In order to track performance improvements, we need some reproducible 
> performance benchmarks. Here are some ideas of what we'd need:
> - use PEs that do nothing but create a new message and forward. Allows us to 
> focus on the overhead of the platform 
> - what is the maximum throughput without dropping messages, in a given host 
> (in a setup with 1 adapter node and 1 or 2 app nodes)
> - what is the latency for end to end processing (avg, median, etc...)
> - using a very simple app, with only 1 PE prototype
> - varying the number of keys
> - using a slightly more complex app (at least 2 communicating prototypes), in 
> order to take into account inter-PE communications and related optimizations
> - start measurements after a warmup phase
> Some tests could be part of the test suite (by specifying a given option for 
> those performance-related tests). That would allow some tracking of the 
> performance.
> We could also add a simple injection mechanism that would work out of the box 
> with the example bundled with new S4 apps (through "s4 newApp" command).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to