Uploaded image for project: 'Jackrabbit Oak'
  1. Jackrabbit Oak
  2. OAK-1645

Route find queries to Mongo secondary in MongoDocumentStore

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

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.0.2, 1.1.0
    • mongomk
    • None

    Description

      Currently MongoDocumentStores routes all find query to primary. In some case it is possible to route the call to secondary safely

      1. Make use of Max Age
      Find call takes a maxAge parameter

      find(Collection<T> collection, String key, int maxCacheAge)
      

      If the maxAge is high then its safe to route the call to secondary as the caller explicitly does not want the latest version. This would be specially useful in fetching split documents as such docs are immutable. So logic can first check in secondary and if not found can make a call to primary

      2. Make use of modified time of parent
      When fetch a path its possible to check if the parent exist in the cache or not. if parent is present in cache we can make use of its modified time. If the modified time is old it indicates that subtree under it has also not been modified. So call for such child can be routed to secondary

      In both cases we need to have a time interval defined to switch the logic to secondary call

      Attachments

        1. OAK-1645-1.patch
          36 kB
          Chetan Mehrotra
        2. OAK-1645-2.patch
          39 kB
          Chetan Mehrotra

        Issue Links

        Activity

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

          People

            chetanm Chetan Mehrotra
            chetanm Chetan Mehrotra
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment