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

LevelDB storage engine

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None

      Description

      Implement a LevelDB storage engine. Basic feature list:

      • single-statement transactions
      • secondary indexes
      • HANDLER implementation with extensions to support atomic multi-put (kind of like multi-statement transactions)
      • binlog XA on the master to be crash safe
      • crash-proof slave replication state
      • (almost) non blocking schema change
      • full test coverage via mysql-test-run
      • hot backup
      • possible options to have LevelDB instance per mysqld, per schema or per table

      The spec is being worked on here: https://kb.askmonty.org/en/leveldb-storage-engine

        Attachments

          Issue Links

          1.
          Server crashes on creating a table with timestamp column Technical task Closed Sergei Petrunia
          2.
          Assertion `kdef' fails in Primary_key_comparator::Compare on inserting data into a table previously altered and converted into LevelDB Technical task Closed Sergei Petrunia
          3.
          Assertion `slice->size() == table->s->reclength' fails in ha_leveldb::convert_record_from_storage_format(le veldb::Slice*) on accessing a table after ALTER Technical task Closed Sergei Petrunia
          4.
          Server crashes on running DISCARD TABLESPACE on a LevelDB table Technical task Closed Sergei Petrunia
          5.
          Assertion `tablename[0] == '.' && tablename[1] == '/'' fails in ha_leveldb::delete_table(const char*) on creating a TEMPORARY LevelDB table Technical task Closed Sergei Petrunia
          6.
          SELECT with ORDER BY causes "ERROR 1030 (HY000): Got error 122 from storage engine" Technical task Closed Sergei Petrunia
          7.
          JOIN or WHERE conditions involving keys on LevelDB tables don't work Technical task Closed Sergei Petrunia
          8.
          Assertion `!pk_descr' fails in ha_leveldb::open on adding partitions to a partitioned LevelDB table Technical task Closed Sergei Petrunia
          9.
          [recreate] Server hangs or assertion `slice->size() == table->s->reclength' fails on a table created instead of a dropped one Technical task Closed Sergei Petrunia
          10.
          [recreate?] Assorted server crashes on a scenario involving creating and populating a LevelDB table Technical task Closed Sergei Petrunia
          11.
          [recreate] Server hangs on creating sort index in a re-created LevelDB table Technical task Closed Sergei Petrunia
          12.
          UPDATE produces a wrong result while modifying a PK on a LevelDB table Technical task Closed Sergei Petrunia
          13.
          Queries where execution plans on LevelDB don't use PK while on MyISAM they do Technical task Closed Sergei Petrunia
          14.
          A set of assorted crashes on inserting a row into a LevelDB table (does not involve drop table) Technical task Closed Sergei Petrunia
          15.
          Session value of leveldb_lock_wait_timeout is ignored Technical task Closed Sergei Petrunia
          16.
          LevelDB: SELECT produces different results inside a transaction (read is not repeatable) Technical task Closed Sergei Petrunia
          17.
          LevelDB: INSERT .. ON DUPLICATE KEY UPDATE does not work, produces ER_DUP_KEY Technical task Closed Sergei Petrunia
          18.
          LevelDB: REPLACE doesn't work, produces ER_DUP_KEY Technical task Closed Sergei Petrunia
          19.
          LevelDB: SELECT ... FOR UPDATE does not work for gaps Technical task Closed Sergei Petrunia
          20.
          LevelDB: SELECT .. FOR UPDATE locks a row outside of transaction and prevents UPDATE from the same connection Technical task Closed Sergei Petrunia
          21.
          Server crashes in Primary_key_comparator::get_hashnr on INSERT into a LevelDB table with varbinary PK Technical task Closed Sergei Petrunia
          22.
          LevelDB (Feature request): Produce ER_DUP_ENTRY instead of ER_DUP_KEY Technical task Closed Sergei Petrunia
          23.
          LevelDB: UPDATE or DELETE with ORDER BY locks itself and ends with ER_LOCK_WAIT_TIMEOUT Technical task Closed Sergei Petrunia
          24.
          LevelDB: Multi-table DELETE locks itself and ends with ER_LOCK_WAIT_TIMEOUT Technical task Closed Sergei Petrunia
          25.
          LevelDB: Assertion `0' fails in Protocol::end_statement() on multi-table INSERT IGNORE Technical task Closed Sergei Petrunia
          26.
          LevelDB (Feature request): Add --leveldb option to enable/disable the engine Technical task Closed Sergei Petrunia
          27.
          LevelDB: DELETE hangs in state System lock on concurrent DELETE / INSERT flow Technical task Closed Sergei Petrunia
          28.
          LevelDB: Reading by PK prefix does not work (fails with "Table storage engine doesn't have this option") Technical task Closed Sergei Petrunia
          29.
          LevelDB: UPDATE/DELETE by a multi-part PK does not work (fails with "Table storage engine doesn't have this option") Technical task Closed Sergei Petrunia
          30.
          LevelDB: query waiting for a lock cannot be killed until query timeout exceeded Technical task Closed Sergei Petrunia
          31.
          LevelDB: Assertion `! trx->batch' fails in Ldb_transaction* get_or_create_trx(THD*) on SELECT after rolling back a transaction which didn't make changes Technical task Closed Sergei Petrunia
          32.
          LevelDB: Changes from an interrupted query are still applied Technical task Closed Sergei Petrunia
          33.
          LevelDB works incorrectly with query cache Technical task Closed Sergei Petrunia
          34.
          LevelDB: ER_KEY_NOT_FOUND (Can't find record) Technical task Closed Sergei Petrunia
          35.
          LevelDB: Assertion `0' fails in ha_leveldb::index_read_map on range select with ORDER BY .. DESC Technical task Closed Sergei Petrunia
          36.
          LevelDB: Wrong result (duplicate row) on select with range access by primary key Technical task Closed Sergei Petrunia
          37.
          Wrong result (missing rows) on select with secondary keys and index_merge Technical task Closed Sergei Petrunia
          38.
          LevelDB throws error 122 on an attempt to create a table with unique index Technical task Closed Sergei Petrunia
          39.
          LevelDB: Wrong result on IN subquery with index lookup Technical task Closed Sergei Petrunia
          40.
          LevelDB: Wrong result on range condition and aggregate function with two keys on a field Technical task Closed Sergei Petrunia
          41.
          LevelDB does not allow a query with multi-part pk and index and ORDER BY .. DEC Technical task Closed Sergei Petrunia
          42.
          LevelDB: Extensive memory usage on relatively small tables, valgrind warnings "blocks are definitely lost" Technical task Closed Sergei Petrunia
          43.
          LevelDB: Wrong result (duplicate rows) on range access with secondary key and ORDER BY DESC Technical task Closed Sergei Petrunia
          44.
          LevelDB: Assertion `in_table(pa, a_len)' fails in LDBSE_KEYDEF::cmp_full_keys with a multi-part key and ORDER BY .. DESC Technical task Closed Sergei Petrunia
          45.
          LevelDB: IN subquery by secondary key with NULL among values returns true instead of NULL Technical task Closed Sergei Petrunia
          46.
          LevelDB: Wrong result on SELECT and ER_KEY_NOT_FOUND on DELETE with search by NULL-able secondary key after updating PK Technical task Closed Sergei Petrunia
          47.
          LevelDB: indexes on text/blob fields are not allowed Technical task Closed Sergei Petrunia
          48.
          LevelDB: Wrong results with index and range access after INSERT IGNORE or REPLACE Technical task Closed Sergei Petrunia
          49.
          LevelDB: Autoincrement is not increased on inserting an explicit value Technical task Closed Sergei Petrunia
          50.
          LevelDB (Feature request): Improve output of SHOW TABLE STATUS Technical task Closed Sergei Petrunia
          51.
          LevelDB: Assertion `pb_end - pb >= LDBSE_KEYDEF::INDEX_NUMBER_SIZE' fails in Primary_key_comparator::Compare Technical task Closed Sergei Petrunia

            Activity

              People

              Assignee:
              psergey Sergei Petrunia
              Reporter:
              psergey Sergei Petrunia
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: