LMAX Disruptor backed Thrift Server implementation (half-sync/half-async).
Java Thrift
Latest commit 384365c Aug 7, 2015 @xedin Merge pull request #10 from jkschneider/master
Move junit dependency to the test scope
Permalink
Failed to load latest commit information.
src
.gitignore Fix some problems Jan 24, 2014
LICENSE.txt add license Apr 27, 2013
README.md
pom.xml

README.md

LMAX Disruptor backed Thrift Server implementation.

This server is half-sync/half-async and uses separate invocation executor.

On 4 node cluster with SSDs and RF=3 Cassandra (trunk branch, stress -n 3000000, QUORUM read/write) shows around 3x (!) improvement in read and 2x (!) improvement in write speed as well as significant latency improvements over THsHaServer and about 1.5x read/write throughput and 2x latency improvement over TThreadedSelectorServer.

Binaries

Binaries and dependency information for Maven, Ivy, Gradle and others can be found at http://search.maven.org.

Example for Maven:

<dependency>
    <groupId>com.thinkaurelius.thrift</groupId>
    <artifactId>thrift-server</artifactId>
    <version>0.3.0</version>
</dependency>

and for Ivy:

<dependency org="com.thinkaurelius.thrift" name="thrift-server" rev="0.3.5" />

Performance numbers

TDisruptorServer (1 write, 3 read runs):

WRITE (3,000,000 keys)

Averages from the middle 80% of values:
interval_op_rate : 19539
interval_key_rate : 19539
latency median : 1.9
latency 95th percentile : 5.4
latency 99.9th percentile : 83.3
Total operation time : 00:02:45

READ

Averages from the middle 80% of values:
interval_op_rate : 23836
interval_key_rate : 23836
latency median : 2.2
latency 95th percentile : 4.7
latency 99.9th percentile : 21.7
Total operation time : 00:02:36

Averages from the middle 80% of values:
interval_op_rate : 23530
interval_key_rate : 23530
latency median : 2.1
latency 95th percentile : 4.1
latency 99.9th percentile : 23.1
Total operation time : 00:02:25

Averages from the middle 80% of values:
interval_op_rate : 24217
interval_key_rate : 24217
latency median : 2.1
latency 95th percentile : 4.1
latency 99.9th percentile : 24.2
Total operation time : 00:02:28

THsHaServer (1 write, 3 read runs):

WRITE (3,000,000 keys)

Averages from the middle 80% of values:
interval_op_rate : 11167
interval_key_rate : 11167
latency median : 4.1
latency 95th percentile : 6.3
latency 99.9th percentile : 135.6
Total operation time : 00:04:34

READ

Averages from the middle 80% of values:
interval_op_rate : 8176
interval_key_rate : 8176
latency median : 6.1
latency 95th percentile : 8.4
latency 99.9th percentile : 27.2
Total operation time : 00:06:20

Averages from the middle 80% of values:
interval_op_rate : 8106
interval_key_rate : 8106
latency median : 5.9
latency 95th percentile : 8.8
latency 99.9th percentile : 29.3
Total operation time : 00:06:15

Averages from the middle 80% of values:
interval_op_rate : 8133
interval_key_rate : 8133
latency median : 5.8
latency 95th percentile : 8.2
latency 99.9th percentile : 26.5
Total operation time : 00:06:15