Block cache not abstracting deltas adequately

XMLWordPrintableJSON

    • Type: Technical Debt
    • Resolution: Unresolved
    • Priority: Minor - P4
    • None
    • Affects Version/s: None
    • Component/s: Block Cache
    • Storage Engines - Persistence
    • SE Persistence backlog
    • 8

      Most existing B-Tree code (e.g. in bt_ovfl.c, bt_slvg.c, etc) calls wt_blkcache_read to get a page. This makes sense, because deltas should be hidden in the block manager layer.

      However, disagg has changed the block cache API to add a wt_blkcache_read_multi that explicitly returns deltas that the caller must reassemble.

      This kinda makes sense too, since the block cache shouldn't have to know about page structure, and how to reassemble pages. However, it leaves us with an awkward design – every bit of code that calls the block manager needs to know how to reassemble a page.

      At the moment this is manifested as wt_blkcache_read asserting that it hasn't got any deltas. That works because for the current disagg implementation, we only need to call wt_blkcache_read_multi from one spot. But that's not going to be the case forever.

            Assignee:
            [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            Will Korteland
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: