Uploaded image for project: 'Jackrabbit Content Repository'
  1. Jackrabbit Content Repository
  2. JCR-314

Fine grained locking in SharedItemStateManager

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.9, 1.0, 1.0.1, 1.1, 1.1.1, 1.2.1, 1.2.2, 1.2.3
    • 1.4
    • jackrabbit-core
    • None

    Description

      The SharedItemStateManager (SISM) currently uses a simple read-write lock to ensure data consistency. Store operations to the PersistenceManager (PM) are effectively serialized.

      We should think about more sophisticated locking to allow concurrent writes on the PM.

      One possible approach:

      If a transaction is currently storing data in a PM a second transaction may check if the set of changes does not intersect with the first transaction. If that is the case it can safely store its data in the PM.

      This fine grained locking must also be respected when reading from the SISM. A read request for an item that is currently being stored must be blocked until the store is finished.

      Attachments

        1. ISMLocking.patch
          18 kB
          Marcel Reutegger
        2. FineGrainedISMLocking.patch
          7 kB
          Marcel Reutegger
        3. FineGrainedISMLocking-v2.patch
          13 kB
          Marcel Reutegger
        4. writes-per-second.jpg
          62 kB
          Marcel Reutegger
        5. fine-grained-locking-1.4.patch
          18 kB
          Esteban Franqueiro
        6. ConfigurableISMLocking.patch
          33 kB
          Marcel Reutegger

        Issue Links

          Activity

            People

              Unassigned Unassigned
              mreutegg Marcel Reutegger
              Votes:
              4 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: