Details

    • Type: Improvement Improvement
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Services
    • Labels:
      None

      Description

      In databases, caching plays an important role in performance. To obtain high performance, we need to cache pages from disk in memory to reduce access time. The problem stated is that the existing replacement algorithm performs poorly so we need to research new algorithms for page replacement and implement it in Apache Derby. The benefit of a better algorithm is improved performance.

      In this project, I first have to look at existing work to quantify the different replacement algorithms used in databases. I have run simulation experiments on several cache replacement algorithms from FIFO, Clock, Clock-Pro, TwoQueue, CAR, and CART. CAR/CART are patented by IBM so we cannot implement them in Derby. Two Queue has a large synchronization overhead (seen by Postgres community). Clock-Pro performs well and is being implemented in Linux. Oystein and I have agreed to implement Clock-Pro inside Derby. See the wiki for more details and simulation results: http://wiki.apache.org/db-derby/DerbyLruCacheManager

      I will implement it in Derby. In addition, I will implement unit tests. Finally, I will perform experiments showing the benefit of the new algorithm over the existing algorithm.

      1. ClockFactory.diff
        1 kB
        Gokul Soundararajan
      2. clockpro-aug-19-2006.zip
        14 kB
        Gokul Soundararajan
      3. pluggable-aug-19-2006.zip
        19 kB
        Gokul Soundararajan

        Activity

        Gavin made changes -
        Workflow jira [ 12374235 ] Default workflow, editable Closed status [ 12801412 ]
        Kristian Waagan made changes -
        Due Date 2006-08-15 07:00:00.0
        Kathey Marsden made changes -
        Assignee Gokul Soundararajan [ gokulsoundar ]
        Gokul Soundararajan made changes -
        Attachment clockpro-aug-19-2006.zip [ 12339270 ]
        Attachment ClockFactory.diff [ 12339271 ]
        Hide
        Gokul Soundararajan added a comment -

        This is the code for ClockProCache. Again the only change to existing code is ClockFactory.

        Show
        Gokul Soundararajan added a comment - This is the code for ClockProCache. Again the only change to existing code is ClockFactory.
        Gokul Soundararajan made changes -
        Field Original Value New Value
        Attachment pluggable-aug-19-2006.zip [ 12339269 ]
        Hide
        Gokul Soundararajan added a comment -

        These files are needed for the PluggableCache architecture. The original Clock isn't modified. I just created a PluggableCache class. Each replacement policy is in its own class. Just place them in java/engine/org/apache/derby/impl/services/cache/.

        I have attached the ClockFactory diff to enable my caches to run.

        Show
        Gokul Soundararajan added a comment - These files are needed for the PluggableCache architecture. The original Clock isn't modified. I just created a PluggableCache class. Each replacement policy is in its own class. Just place them in java/engine/org/apache/derby/impl/services/cache/. I have attached the ClockFactory diff to enable my caches to run.
        Gokul Soundararajan created issue -

          People

          • Assignee:
            Unassigned
            Reporter:
            Gokul Soundararajan
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:

              Development