Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-801

Allow parallel access to data files.

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 10.0.2.0, 10.0.2.1, 10.1.1.0, 10.1.2.1
    • 10.3.1.4
    • Store
    • None
    • Any
    • 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

      Attachments

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

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            andersmo Anders Morken
            oysteing Oystein Grovlen
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment