Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

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

Releases

No releases published

Packages

No packages published

Languages

You can’t perform that action at this time.