Skip to content

RuedigerMoeller/remoting-benchmarks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

remoting-benchmarks

test RPC/messaging point to point performance of various products. currently only

  • kontraktor

  • akka

  • RestExpress (because of latency-dependence of http 1.1 throughput, practically any rest implementation will have similar performance except for extremely crappy ones which manage significantly outstrip http 1.1 keep alive design fail)

  • finagle - wants me to fork and compile their version of thrift just to get something started. No thanks.

  • JBoss Remoting 3 - no documentation. Samples on the internet manage to send byte arrays with >100 lines of code.

  • JBoss Remoting 2 - will be added later, seems more comparable

  • Paralell Universe - current version had build failures and galaxy did not work. Also no buildable examples. Will revisit later.

Pull requests are welcome.

Testcase:

a) fire and forget throughput server.tellSum( a, b ); // server computes sum but does not send a reply

b) send a sumrequest and receive result async.
server.askSum( a, b ).then( result -> ... )

results see http://java-is-the-new-c.blogspot.de/2015/06/dont-rest-revisiting-rpc-performance.html

Note: test has been updated to kontraktor 3.33 (from 3.01) this leads to a performance loss of 30-70% in results (still beating the other frameworks by a huge margin)

Reasons are practical (all of those changes can be reverted by overloading/configuring kontraktor to obtain raw throughput of 3.01-3.14):

  • remotecalls now embed their call arguments serialized (downside: slower encoding, upside: can use "routing remote actors" which route remotecalls without having knowledge of the classes passed through [no downtime when updating a distributed system])
  • switched from fixed-sized/block-if-full queues to dynamically growing unbounded queues. Bounded queues offer a performance advantage however with larger distributed systems a queue overflow easily messes up the whole system by blocking a random actor thread, so the unbounded queues are more foolproof and require less tuning and testing.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages