Memory mapped column oriented tables for Go.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jdl 2a49c25514 WIP 1 year ago
.gitignore Initial commit 1 year ago
README.md WIP: Initial commit. 1 year ago
bufferedslice.go WIP 1 year ago
bufferedslice_test.go WIP 1 year ago
bufferedtable.go WIP 1 year ago
bufferedtable_test.go WIP 1 year ago
constants.go WIP 1 year ago
element.go WIP 1 year ago
errors.go WIP 1 year ago
schema.go WIP 1 year ago
schema_test.go WIP 1 year ago
table.go WIP 1 year ago
unsafe.go WIP 1 year ago
util_test.go WIP 1 year ago

README.md

mmtable

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 ...