Implement binary decode tool for PALite

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: PALite, Tools
    • None

      We should extend wt_binary_decode to be able to access data in PALite.

      Here is a sketch of one possible approach, which we could split into sub-tickets if need be:

      • Add a new Python class—let's call it RawPage for now—to represent an unparsed page, with binary data and the relevant metadata, e.g., the page ID, backlink LSN, base LSN, and flags in disagg, and the offset in the case of attached storage. This could probably go inside tools/py_common/btree_format.py or into a new module under tools/py_common.
      • Add a new Python module to tools/py_common with basic read functionality for PALite, e.g., get all entries associated with the given table_id or a given combination of table_id and page_id, which return arrays of RawPage.
      • Modify wt_binary_decode.py to add relevant arguments, e.g., -t/--table to specify the table ID and something similar for page ID.
      • Modify function wtdecode in wt_binary_decode.py to fetch the given array of RawPage objects from PALite, and call wtdecode_file_object on each returned entry.
      • Implement the new page/block/delta formats.

      In the future, it would be best if we could further refactor wt_binary_decode.py to use the new RawPage abstraction for attached storage, but that should be done in a separate ticket.

            Assignee:
            [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            Peter Macko
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: