Derby
  1. Derby
  2. DERBY-801

Allow parallel access to data files.

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 10.0.2.0, 10.0.2.1, 10.1.1.0, 10.1.2.1
    • Fix Version/s: 10.3.1.4
    • Component/s: Store
    • Labels:
      None
    • Environment:
      Any
    • Bug behavior facts:
      Performance

      Description

      Derby currently serializes accesses to a data file. For example, the
      implementation of RAFContainer.readPage is as follows:

      synchronized (this)

      { // 'this' is a FileContainer, i.e. a file object fileData.seek(pageOffset); // fileData is a RandomAccessFile fileData.readFully(pageData, 0, pageSize); }

      I have experiemented with a patch where I have introduced several file
      descriptors (RandomAccessFile objects) per RAFContainer. These are
      used for reading. The principle is that when all readers are busy, a
      readPage request will create a new reader. (There is a maximum number
      of readers.) With this patch, throughput was improved by 50% on
      linux. For more discussion on this, see

      http://www.nabble.com/Derby-I-O-issues-during-checkpointing-t473523.html

      The challenge with the suggested approach is to make a mechanism to
      limit the number of open file descpriptors. Mike Matrigali has
      suggested to use the existing CacheManager infrastructure for this
      purpose. For a discussion on that, see:

      http://www.nabble.com/new-uses-for-basic-services-cache---looking-for-advice-t756863.html

      1. NIO-RAFContainer-v1.patch
        14 kB
        Anders Morken
      2. DERBY-801-v5.patch
        11 kB
        Anders Morken
      3. DERBY-801-v4.patch
        23 kB
        Anders Morken
      4. DERBY-801-v3.patch
        24 kB
        Anders Morken
      5. DERBY-801-v2.patch
        21 kB
        Anders Morken
      6. DERBY-801-7.patch
        2 kB
        Anders Morken
      7. DERBY-801-6.patch
        0.9 kB
        Anders Morken

        Issue Links

          Activity

            People

            • Assignee:
              Anders Morken
              Reporter:
              Øystein Grøvlen
            • Votes:
              1 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development