Preserve connection-level page_log when a table-level storage_tier is configured

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Configuration
    • None
    • Storage Engines, Storage Engines - Persistence
    • 21.791
    • SE Persistence backlog
    • None

      The disaggregated configuration can be set at both the connection level and the
      table level. For example:

      # Connection-level: the page log.
      conn = wiredtiger_open("disaggregated=(page_log=palite,...)")
      
      # Table-level: the storage tier.
      session.create("layered:test", "disaggregated=(storage_tier=cold)")
      

      One may assume both disaggregated fields make it into the layered metadata: the
      page_log from the connection and the table's own storage_tier.

      However, test_layered_schema31.py shows this is not the case. The page_log is omitted.

       

      The root cause is as follows:

      In __create_layered, the configuration across the connection and the table is placed
      in the variable layered_cfg:

      layered_cfg[1] = "disaggregated=(page_log=whatever)"; // connection
      layered_cfg[2] = "disaggregated=(storage_tier=cold)"; // table
      

      __wt_config_collapse, called in __create_layered, takes settings at higher
      layered_cfg indices over lower ones. What it should do instead is merge the inner
      fields of disaggregated across both levels.

      Note that despite page_log being omitted from the metadata, the rest of the code copes
      with a fallback like this:

      if (ret == WT_NOTFOUND || page_log_item.len == 0)
          npage_log = S2C(session)->disaggregated_storage.npage_log;
      

        1. layered_cfg_logging.patch
          0.9 kB
          Salman Javed

            Assignee:
            Jasmine Bi
            Reporter:
            Salman Javed
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: