in tso-server/src/main/java/org/apache/omid/tso/DisruptorModule.java [38:66]
protected void configure() {
switch (config.getWaitStrategyEnum()) {
// A low-cpu usage Disruptor configuration for using in local/test environments
case LOW_CPU:
bind(WaitStrategy.class).annotatedWith(Names.named("PersistenceStrategy")).to(BlockingWaitStrategy.class);
bind(WaitStrategy.class).annotatedWith(Names.named("ReplyStrategy")).to(BlockingWaitStrategy.class);
bind(WaitStrategy.class).annotatedWith(Names.named("RetryStrategy")).to(BlockingWaitStrategy.class);
break;
// The default high-cpu usage Disruptor configuration for getting high throughput on production environments
case HIGH_THROUGHPUT:
default:
bind(WaitStrategy.class).annotatedWith(Names.named("PersistenceStrategy")).to(BusySpinWaitStrategy.class);
bind(WaitStrategy.class).annotatedWith(Names.named("ReplyStrategy")).to(BusySpinWaitStrategy.class);
bind(WaitStrategy.class).annotatedWith(Names.named("RetryStrategy")).to(YieldingWaitStrategy.class);
break;
}
if (config.getLowLatency()) {
bind(RequestProcessor.class).to(RequestProcessorSkipCT.class).in(Singleton.class);
bind(PersistenceProcessor.class).to(PersitenceProcessorNullImpl.class).in(Singleton.class);
} else {
bind(PersistenceProcessor.class).to(PersistenceProcessorImpl.class).in(Singleton.class);
bind(RequestProcessor.class).to(RequestProcessorPersistCT.class).in(Singleton.class);
}
bind(ReplyProcessor.class).to(ReplyProcessorImpl.class).in(Singleton.class);
bind(RetryProcessor.class).to(RetryProcessorImpl.class).in(Singleton.class);
}