Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-16924

Blocking Concurrency Primitives

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • 4.1-alpha1, 4.1
    • Legacy/Core
    • None
    • Quality Assurance
    • Normal
    • All
    • None
    • Hide

      new and existing utests/dtests

      Show
      new and existing utests/dtests

    Description

      To support CEP-10 it is necessary to support alternative implementations of the blocking concurrency primitives we use on the project. At the same time, the project is very inconsistent in its usage of these APIs, so this work includes a number of improvements to the coherency of the codebase.

      This ticket introduces new abstractions and standardises old ones, migrating all blocking concurrency operations besides Futures returned by Executors to these new APIs. This includes a migration of SimpleCondition to a new Conditioninterface, new CountDownLatch and Semaphore interfaces, and new static factory methods for creating these objects (as well as WaitQueue) that can be intercepted by byte weaving. Additionally the internal Netty Future implementation is improved to support more general use (though this is only fully realised in a later ticket), OpOrder is improved to more easily support mocking WaitQueue.

      Finally we standardise the propagation of InterruptedExecption, with the new UncheckedInterruptedException, so that simulations may be terminated cleanly.

      Attachments

        Issue Links

          Activity

            People

              benedict Benedict Elliott Smith
              benedict Benedict Elliott Smith
              Benedict Elliott Smith
              Aleksei Zotov, Sam Tunnicliffe
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: