Marko Topolnik

Results 43 comments of Marko Topolnik

Thanks for the reply, I pushed the new idea, I hope I understood it correctly.

Sorry for the delay, GitHub notifications weren't reaching me. I'm making the change to use `Option

The issue is not the efficiency of inter-thread communication, but what you want to do with the items. Natural batching applies to any situation where you're performing an operation that:...

Yes, that would go a long way. One stumbling point here is the question of the ownership of the batch collection. On the one hand there's the concern of robustness:...

@fvasco This code looks very similar to the code I wrote in the issue description. I can't make out what it improves. 1. You have explicit checking of the `isActive`...

I went once again to inspect [Agrona's queue](https://github.com/real-logic/agrona/blob/master/agrona/src/main/java/org/agrona/concurrent/OneToOneConcurrentArrayQueue.java), which I consider the canonical implementation of a zero-contention SPSC queue. All operations are done with the `release-acquire` consistency level (this avoids...

As a cross-check, Agrona's [`MPMC` queue](https://github.com/real-logic/agrona/blob/master/agrona/src/main/java/org/agrona/concurrent/ManyToManyConcurrentArrayQueue.java) also doesn't improve anything in `drain()`, which just calls `poll()` in a loop. So it's there just as convenience.

The code I submitted here is thoroughly tested for both correctness and performance and it can be swapped into the project at will. The changes I propose bring more perf...

The occurrence in `JetBootstrap` should stay, I think, because after a failed shutdown you can't count on a working Hazelcast logger instance.

For the record, the above "20 trades per second" is actually 20*3170 trades per wall-clock second. The event time proceeds by 1 millisecond every 3170 trades.