Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Prepare to update to disruptor 3.3.4 * Moved Util into it's own folder to match the java folder structure * Change solution name * Update histogram * Add "IsRunning" property to IEventProcessor * Fix comment in EventHandler<T> * WIP in DSL * Replaced TaskScheduler by IExecutor in WorkerPool start method * Rename OnNext to OnEvent on IEventHandler * Add new interfaces (IDataProvider, IEventReleaseAware, IEventReleaser and ITimeoutHandler) * Update WorkerPool * Adding IsRunning on various processors * Rename ConsumerInfoRepository into ConsumerRepository * Use directly Thread.VolatileRead/Write in WorkerPool, NoOpEventProcessor, BatchEventProcessor, WorkProcessor * Merge sequencer and claim strategies into single and multi-threaded sequencers * Use directly volatile integers instead of RunningFlags or Volatile.Boolean to track running state * Update DSL, still have to finish Disruptor * Add all new methods/functionality to RingBuffer * Add comments to event translators * Integrate changes to IWaitStrategy and update existing wait strategy implementations * Disruptor (wizard) is now up to date * Implement timeout blocking wait strategy * Implement phased backoff wait strategy * Add IEventSink interface * Update ProcessingSequenceBarrier * Update FixedSequenceGroup * Minor changes * Fix ringbuffer usage in Disruptor and WorkerPool * Fix IgnoreExceptionHandler * Inline timeoutexception and fix NewBarrier in Sequencer * Get rid of BatchDescriptor * Get rid of IClaimStrategy * Fix exception types * Migrating tests * Update SequencerTests * Migrate all wait strategy tests * SequenceGroupTests unit tests * ShutdownOnFatalExceptionTest updated * Update AggregateEventHandlerTests and BatchEventProcessorTests * Add file to project * Add BatchingTest * Update EventPublisherTests * Add DisruptorStressTest * Add EventPollerTest and introduce ISequencer interface * Add MultiProducerSequencerTest * Update SequenceBarrierTests * Add WorkerPoolTests and fix a bug in WorkProcessor * Migrate RingBufferTests * update SequenceReportingCallbackTests * grmbl csproj * Migrate RingBufferWithMocksTest * still updating tests * Update examples * ConsumerRepositoryTests * Move Volatile out of the System.Threading namespace so as to be able to use the real Volatile * Start migrating the DisruptorTest * Thanks mendel for the SleepingEventHandler * Fix comment in sequencer * BatchEventProcessor is now public * Fix warnings * Update ValueAdditionEventHandler * Move perf tests to subdirectory while figuring out which one are new / old / to update * Simplify Program.cs, we might have to use the previous Runner (in _/Program.cs) * Get DisruptorTest to compile and run * Finish migrating DisruptorTest * Simplify perf tests executor to closer to the java command line * Mark HandleExceptionsWith as obsolete * Fix shutdown with timeout * Don't use exception handler if it is null * Fix shutdown * Use generic param that doesn't clash * Rename IConsumerInfo.SequenceBarrier * Add comment in Sequence * Simplify ExceptionHandlerWrapper * BasicExecutor now use a long running task in order to have its own thread * add OneToOneSequencedLongArrayThroughputTest * OneToOneSequencedLongArrayThroughputTest done * Migrate OneToOneSequencedThroughputTest * Refactor SingleProducerSequencer fields * Remove unused methods * Make field volatile in BatchEventProcessor * OneToOneSequencedPollerThroughputTest * Migrated OneToThreeSequencedThroughputTest * Target .NET 4.6.1 Framework * Replace Volatile.Reference by Volatile.Read/Write * Remove reference to Atomic project * Implement SetValueVolatile as it will be used in perf tests * Remove Atomic usage from tests * Remove Atomic project * Increase PaddedLong size * Use half-fences in AtomicReference * Fix perf tests * Add OneToThreeDiamondSequence test * Remove string generation from DisruptorStressTest - because the test runner's heap is too small and the GC time dominates the execution time of the test contrary to the java version * Migrate OneToThreePipelineSequencedThroughputTest * Ignore kdiff original files * Migrate OneToOneRawThroughputTest and OneToOneRawBatchThroughputTest * Create ISequence interface in order to eliminate virtual method calls and thus increase potential inlining - We try to maintain as many references to Sequence as possible * Migrate ThreeToOneSequencedThroughputTest * Use Volatile.Read in MultiProducerSequencer * Start migrating ThreeToThreeSequencedThroughputTest * Fix long array event handler * Migrate OneToOneQueueThroughputTest * Migrate OneToOneQueueBatchedThroughputTest * Don't use cancellation tokens in OneToOneQueueBatchedThroughputTest and OneToOneQueueThroughputTest * Migrate OneToOneTranslatorThroughputTest * Migrate OneToThreeWorkerPoolThroughputTest * WIP Latency test session * Latency test session ready to go * PingPongSequencedLatencyTest done * Fix rebase * fix breaking changes and improve test type detection in runner * Update ThreeToOneSequencedThroughputTest * Remove Padding56 * Enable thread affinity in ThreeToOneSequencedThroughputTest * Migrated TwoToTwoWorkProcessorThroughputTest * Use LockFreeBoundedQueue as it doesn't create any garbage * Interface was renamed * Migrate OneToThreeReleasingWorkerPoolThroughputTest * Move ValueAdditionBatchQueueProcessor into support folder * Migrate ThreeToOneSequencedBatchThroughputTest * Add option to run all tests in perf test suite * PingPingQueueLatencyTest * use lock free, no alloc collection within the blocking collection instead of the default implem * Test result file should be named after test * ThreeToOneQueueThroughputTest + replace add by tryadd in order to avoid allocations on BlockingCollection * Output total averages per test type * Test TryAdd when using lock free queue * Retry unsuccessful adds in ValueQueueProducer * Make totals file per date and add time to each run * Exclude queue tests from run and ThreeToOneQueueThroughputTest uses ConcurrentQueue as it is MP * OneToThreeDiamondQueueThroughputTest * OneToThreePipelineQueueThroughputTest * Remove previous perf tests * Remove unused support helps for perf tests * Fix start at test * Fix OneToThreeSequencedThroughputTest * Add padding to RingBuffer fields * Reorder RingBuffer fields to reduce size * Reorganize Sequence fields * Reorganize SingleProducerSequencer fields * Reorganize RingBuffer fields * Revert "Reorganize RingBuffer fields" This reverts commit 2408cd2. * Don't open report when running multiple tests * Wait for all processors to complete before moving to next run/test * Fix latency totals timestamp * Remove "volatile" comments * Cleanup WorkerPool * Replace Monitor.Enter with lock * Adjust ISequencer.Claim * Cleanup wait strategies * Add SpinWaitWaitStrategy * Add or adjust comments * Add script to run all perf tests, each in their own process * Display computer specifications after test run * Fix Sequence padding to be the same as java * Use thread affined task scheduler for consumer and producer
- Loading branch information