Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-84080

Replace hash table with new model for greater fine grained locks

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Server Programmability

      Improve current hashing mechanism to allow for fine grained locks along the lines of Oracle’s Latching, RBS and redo logs mechanism allowing higher concurrency through non-blocking reads when write is required.

      *Sample papers reviewed by Performance Engineering.
      growt (GrowTable) is a header only library implementing a concurrent growing hash table
      https://github.com/TooBiased/growt
      parlayhash : A Header Only Fast Concurrent Hash Table.
      https://github.com/cmuparlay/parlayhash/tree/main

      Other Hash Tables
      https://github.com/BlazingPhoenix/concurrent-hash-map (libcuckoo)
      https://github.com/GLaDOS-418/threading_library - sharded locks

      Papers:
      https://www.cs.princeton.edu/~mfreed/docs/cuckoo-eurosys14.pdf
      https://www.liblfds.org/downloads/white%20papers/[Hash]%20-%20[Michael]%20-%20High%20Performance%20Dynamic%20Lock-Free%20Hash%20Tables%20and%20List-Based%20Sets.pdf
      http://erdani.org/publications/cuj-2004-12.pdf

      Other
      https://github.com/cmuparlay/concurrent_deferred_rc
      https://github.com/cmuparlay/parlaylib
      https://www.liblfds.org/

            Assignee:
            Unassigned Unassigned
            Reporter:
            francisco.casas@mongodb.com Francisco Casas
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated: