Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-4729

split apart value and address cell unpacking

    • Type: Icon: Technical Debt Technical Debt
    • Resolution: Won't Fix
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • 13
    • Storage Engines 2019-05-06, Storage Engines 2019-05-20

      I would like to attempt to split apart the cell unpacking code, into one function to unpack key/value cells and one function to unpack address cells.

      The cell unpacking code is a performance issue for workloads where we're reading lots of pages into the cache, for example, read-mostly workloads with point updates. This has been noticed a few times (for example, there's extra work in the cell unpacking code to clear structure fields individually because clearing the structure as a whole had a measurable impact on performance).

      Additionally, the new validity window changes in PM-1309 have significantly complicated the cell unpack code, and likely slowed it down.

      Additionally, the validity window changes grew the cell unpack structure, we've added 5, packed 8B values. Some of those new fields are value cell or address cell specific, it would be preferable if we could detect at compile time if we're using the wrong structure fields.

      Finally, the cell unpacking code is inlined, so if we could decrease its size, things should go faster.

       

            Assignee:
            keith.bostic@mongodb.com Keith Bostic (Inactive)
            Reporter:
            keith.bostic@mongodb.com Keith Bostic (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: