Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-13408

HBase In-Memory Memstore Compaction

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • None
    • None
    • None
    • None

    Description

      A store unit holds a column family in a region, where the memstore is its in-memory component. The memstore absorbs all updates to the store; from time to time these updates are flushed to a file on disk, where they are compacted. Unlike disk components, the memstore is not compacted until it is written to the filesystem and optionally to block-cache. This may result in underutilization of the memory due to duplicate entries per row, for example, when hot data is continuously updated.
      Generally, the faster the data is accumulated in memory, more flushes are triggered, the data sinks to disk more frequently, slowing down retrieval of data, even if very recent.

      In high-churn workloads, compacting the memstore can help maintain the data in memory, and thereby speed up data retrieval.
      We suggest a new compacted memstore with the following principles:
      1. The data is kept in memory for as long as possible
      2. Memstore data is either compacted or in process of being compacted
      3. Allow a panic mode, which may interrupt an in-progress compaction and force a flush of part of the memstore.

      We suggest applying this optimization only to in-memory column families.

      A design document is attached.
      This feature was previously discussed in HBASE-5311.

      Attachments

        1. HBaseIn-MemoryMemstoreCompactionDesignDocument.pdf
          298 kB
          Eshcar Hillel
        2. HBaseIn-MemoryMemstoreCompactionDesignDocument-ver02.pdf
          231 kB
          Eshcar Hillel
        3. InMemoryMemstoreCompactionEvaluationResults.pdf
          723 kB
          Eshcar Hillel
        4. HBASE-13408-trunk-v01.patch
          258 kB
          Eshcar Hillel
        5. InMemoryMemstoreCompactionScansEvaluationResults.pdf
          337 kB
          Eshcar Hillel
        6. HBASE-13408-trunk-v02.patch
          548 kB
          Eshcar Hillel
        7. HBASE-13408-trunk-v03.patch
          544 kB
          Eshcar Hillel
        8. StoreSegmentandStoreSegmentScannerClassHierarchies.pdf
          124 kB
          Eshcar Hillel
        9. HBASE-13408-trunk-v04.patch
          586 kB
          Eshcar Hillel
        10. HBASE-13408-trunk-v05.patch
          607 kB
          Eshcar Hillel
        11. HBASE-13408-trunk-v06.patch
          599 kB
          Eshcar Hillel
        12. HBASE-13408-trunk-v07.patch
          598 kB
          Eshcar Hillel
        13. InMemoryMemstoreCompactionMasterEvaluationResults.pdf
          1.42 MB
          Eshcar Hillel
        14. HBASE-13408-trunk-v08.patch
          601 kB
          Eshcar Hillel
        15. HBaseIn-MemoryMemstoreCompactionDesignDocument-ver03.pdf
          290 kB
          Eshcar Hillel
        16. HBASE-13408-trunk-v09.patch
          614 kB
          Eshcar Hillel
        17. HBASE-13408-trunk-v10.patch
          614 kB
          Eshcar Hillel
        18. HBaseIn-MemoryMemstoreCompactionDesignDocument-ver04.pdf
          296 kB
          Anastasia Braginsky

        Issue Links

          Activity

            People

              Unassigned Unassigned
              eshcar Eshcar Hillel
              Votes:
              0 Vote for this issue
              Watchers:
              40 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: