forked from tarantool/tarantool
-
Notifications
You must be signed in to change notification settings - Fork 0
sql: Removing sqlite btree from tarantool
Alexey Khatskevich edited this page Sep 7, 2017
·
1 revision
We store main data in the tarantool engine (memtx), but there are also ephemeral tables, which are used to perform intermediate calculations (such as sort, distinct, join...). These calculations are performed using sqlite native btree structure. There are several reasons why do we want to get rid of sqlite native btree:
- Maintain two code bases (tarantool trees and sqlite trees)
- Maintain two api bases (there are many engine-specific crutches in sqlite) ...
The idea is that we implement new temp engine which does not persist and does not support transactions. Implementation is the following: creative copy-paste from memtx.
- It gives the ability to create secondary indexes in tables of that kind.
- It will allow us to use space api for both: temp tables and ordinary tables.
- We can reuse this space for other cases.?
- It will not use disc cache for temp tables in comparison to sqlite's btree.
- It is relatively hard to implement (we will have to create and maintain a new space).
- We have to implement secondary indexes on our own
- We will have to perform requests in temp and ordinary tables in different ways
Architecture Specifications
- Server architecture
- Feature specifications
- What's in a good specification
- Functional indexes
- Space _index structure
- R tree index quick start and usage
- LuaJIT
- Vinyl
- SQL
- Testing
- Performance
How To ...?
- ... add new fuzzers
- ... build RPM or Deb package using packpack
- ... calculate memory size
- ... debug core dump of stripped tarantool
- ... debug core from different OS
- ... debug Lua state with GDB
- ... generate new bootstrap snapshot
- ... use Address Sanitizer
- ... collect a coredump
Lua modules
Useful links