GithubHelp home page GithubHelp logo

shelnutt2 / mytile Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 67 KB

Mariadb Storage Engine based on TileDB

License: GNU Lesser General Public License v3.0

CMake 4.21% Shell 1.51% C++ 94.28%
mariadb-storage-engine mariadb mysql tiledb

mytile's Introduction

MyTile

Build Status

MariaDB storage engine based on TileDB

Requirements

Requires MariaDB 10.2 or newer. It is untested on older versions.

Installation

Inside MariaDB Source Tree (Recommended)

The first is inside a MariaDB source tree (recommended).

git clone [email protected]:MariaDB/server.git -b 10.2
cd server
git submodule add https://github.com/Shelnutt2/MyTile.git storage/mytile
mkdir build && cd build
cmake ..
make -j4

Features

  • Based on TileDB's Key-Value store
  • No write locking due to TileDB's eventual consistency model

Known Issues

  • Geometry is not supported #6

Planned Features

  • Transaction support #8
  • Secondary Index Support #9
  • Spatial Indexing #7
  • Consolidation/optimize table for compaction of kv store #10
  • Add support for specify tiledb parameter as table options #11

mytile's People

Contributors

shelnutt2 avatar

Watchers

 avatar  avatar

mytile's Issues

Add support for updates

Add support for updates. In tiledb we just need to call write_row, delete isn't necessary as each write overrides the last. Tiledb always tracks the latest "fragment".

Switch from using KV Store to Array

It was mentioned that the Key-Value store is not as optimal as the underlying array. The KV store is newer and less optimized and tested. It would be idea to switch to using the array instead.

A benefit is removing the requirement for primary key support. A downside is now key must be managed independently. This was already the case for when secondary index support (#9 ) is added.

Add secondary index support

Add secondary index support. Right now only primary indexes are support. The foundation is in place for secondary indexes, we just need to produce maps that contain the secondary key -> primary key mapping.

Add support for null values

Add support for null values by having a vector (or map) attribute indicating of the field is null or not.

Add transaction support

Add transaction support. Items should be built and stored until commit, then added to the map. We also should only flush the map on commit.

Use table->read_set/write_set for smarter columnar access

Mysql sets the bitmap for columns that are requested for a query. When processing a scan or write the table->read_set/write_set bitmap is set with columns that to are be read/written to. We should take advantage of this during read_init to only create buffers for columns to be accessed. This will reduce overhead and speed up performance since tiledb is columnar based.

Add Field Options for Compression settings

Add Field Options for Compression settings. The field_option of a handler can be used to offer specific field options per column. This would be perfect for setting the compression type and compression level.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.