|
|
@ -1,3 +1,48 @@ |
|
|
|
# mmtable |
|
|
|
|
|
|
|
Memory mapped column oriented tables for Go. |
|
|
|
Memory mapped columnar table library. |
|
|
|
|
|
|
|
Goals: |
|
|
|
|
|
|
|
* On-disk memory mapped table |
|
|
|
* Table consists of columns of various primitive types |
|
|
|
* Columns have fixed-size elements |
|
|
|
* Lock for single writer |
|
|
|
* Allow multiple readers |
|
|
|
* Commands: |
|
|
|
* Add column |
|
|
|
* Remove column |
|
|
|
* SetCapacity (offline) |
|
|
|
* Append one table to another |
|
|
|
|
|
|
|
Types of columns: |
|
|
|
|
|
|
|
* byte |
|
|
|
* bool |
|
|
|
* int8 |
|
|
|
* int16 |
|
|
|
* int32 |
|
|
|
* int64 |
|
|
|
* uint8 |
|
|
|
* uint16 |
|
|
|
* uint32 |
|
|
|
* uint64 |
|
|
|
* float32 |
|
|
|
* float64 |
|
|
|
* array of any primitive type |
|
|
|
|
|
|
|
Layout: |
|
|
|
|
|
|
|
dir/ |
|
|
|
lock |
|
|
|
length (written atomically) |
|
|
|
data |
|
|
|
|
|
|
|
Table data layout: |
|
|
|
|
|
|
|
0000-0008 Version |
|
|
|
0008-0016 Capacity (uint64) |
|
|
|
0016-XXXX Serialized Schema |
|
|
|
XXXX-YYYY Data for column 1 |
|
|
|
YYYY-ZZZZ Data for column 2 |
|
|
|
... |