Skip to content

Simple Storage/Transaction Model #20

@Mytherin

Description

@Mytherin

For the first release, we should do a simple storage and transaction model. Core ideas:

  1. On BEGIN TRANSACTION, acquire a lock on the whole database
  2. COMMIT releases that lock, and flushes the data to disk using either log file.
  3. Storage can be a simple hierarchical set of directories with uncompressed binary data sitting in files split on "blocks of columns", one block is up to 20-100 vectors of a single column (we should check when it stops mattering how big we make these).
  4. There is one main "index" file that keeps track of which things are where for which columns, as well as metadata and statistics. On COMMIT, we flush to disk by atomically overwriting the index file. We should probably also do something with log files and such.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions