Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-33405

Engine-independent indexes: low-level API method

    XMLWordPrintable

Details

    Description

      This tasks covers an alternative to MDEV-33404:

      Defining a low-level interface for storage engines to allow for page allocation

      The purpose of this interface is to support lower-level implementation of indexing strategies, should the subtable (high level interface) prove too slow.

      High level overview
      The index will ask the engine for a page in the table space and can store the index there in any arbitrary way it wants, the engine will treat it as opaque.

      Benefits

      Drawbacks

      • The burden of ACID is on the index implementation, it handles undo/redo, recovery, isolation
        • This has to be done for every supported engine separately
      • Works only for very few selected engines, may be only InnoDB
        • So not very engine independent

      Interface questions to be answered:
      What operations should this interface support?

      1. Alloc page(s) (implemented by SE)
      2. Free page(s) (implemented by SE)
      3. Register callback for row insert/update/delete (callback invoked by SE when event occurs)
      4. Register callback for transaction start/commit/rollback (callback invoked by SE when event occurs)

      Does Engine query the Index or is it only for the upper SQL layer level to decide?

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              serg Sergei Golubchik
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.