Clone Tools
  • last updated a few minutes ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
MODE-2195 Makes the event bus size configurable

  1. … 17 more files in changeset.
MODE-2345 Updated event-related metrics using the new 4.x ring buffer.

  1. … 7 more files in changeset.
MODE-2088 Made a few corrections based upon code review feedback.

  1. … 5 more files in changeset.
MODE-2088 Eliminated the ring buffer's ability to submit entries in the same thread, which simplifies the consumers and makes them not need to be concurrent. Also changed the WorkspaceCache to register its own listeners that are better optimized for what they do. Kept the ability for the RepositoryChangeBus to have in-thread listeners (notified in the caller's thread), but these listeners only receive events via this route. Changed the JcrRepository to register various listeners directly on the bus rather than via the RepositoryCache (which was a listener and just delegated the register and unregister methods to the change bus). At this point, all tests pass successfully (multiple build passes).

  1. … 24 more files in changeset.
MODE-2088 RepositoryChangeBus actually requires producers to be on multiple threads, and this was causing problems for the 'single-thread-producer' initial implementation. Added simple locking in the RingBuffer.add(...) methods, and verified that this fixes the sequencer problems.

Interestingly, the time for my build is approximately 30-40 seconds slower (repeatedly) with the locking enabled, so we probably do want to consider getting rid of the locking but still supporting multiple producers.

  1. … 2 more files in changeset.
MODE-2088 Updated the RingBuffer implementation and finished the CircularChangeBus which is now used by the repository.

  1. … 28 more files in changeset.
MODE-2088 Created RingBufferBuilder utility that can handle more options, and added garbage collection to the ring buffer. The latter is a thread that follows all other consumers, nulling out the entries that have already been processed. This will reduce the overall footprint, even when the entry objects may be large. Garbage collection is optional and disabled by default.

    • -0
    • +42
    ./DependentOnPointers.java
    • -0
    • +142
    ./GarbageCollectingConsumer.java
    • -0
    • +118
    ./RingBufferBuilder.java
    • -0
    • +72
    ./TrailingPointer.java
  1. … 1 more file in changeset.
MODE-2088 Added support for dynamically removing consumers, added more tests, and improved resiliency.

    • -0
    • +53
    ./StandardConsumerAdapter.java
  1. … 3 more files in changeset.
MODE-2088 Ring buffer implementation, suitable for evaluation and trial.

    • -0
    • +64
    ./BlockingWaitStrategy.java
    • -0
    • +41
    ./PointerBarrier.java
    • -0
    • +293
    ./RingBuffer.java
    • -0
    • +216
    ./SingleProducerCursor.java
  1. … 4 more files in changeset.