Skip to content

Commit

Permalink
Update to v3.3.4 (#19)
Browse files Browse the repository at this point in the history
* 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
MendelMonteiro committed Jul 21, 2016
1 parent 8fc6cde commit 276ff9e
Show file tree
Hide file tree
Showing 255 changed files with 11,826 additions and 9,110 deletions.
5 changes: 4 additions & 1 deletion .gitignore
Expand Up @@ -20,6 +20,7 @@
*.sdf
*.opensdf
*.unsuccessfulbuild
*.orig
ipch/
obj/
[Bb]in
Expand All @@ -45,4 +46,6 @@ _ReSharper*/
packages/

#Target build folder
Target/
Target/
*.ncrunchsolution
*.ncrunchproject
75 changes: 0 additions & 75 deletions Atomic.Tests/Atomic.Tests.csproj

This file was deleted.

36 changes: 0 additions & 36 deletions Atomic.Tests/Properties/AssemblyInfo.cs

This file was deleted.

4 changes: 0 additions & 4 deletions Atomic.Tests/Support/ClassStub.cs

This file was deleted.

113 changes: 0 additions & 113 deletions Atomic.Tests/VolatileBooleanArrayTests.cs

This file was deleted.

109 changes: 0 additions & 109 deletions Atomic.Tests/VolatileBooleanTests.cs

This file was deleted.

0 comments on commit 276ff9e

Please sign in to comment.