vmware / splinterdb

High Performance Embedded Key-Value Store
https://splinterdb.org
Apache License 2.0
673 stars 57 forks source link

Add Column Families to SplinterDB #586

Open etwest opened 1 year ago

etwest commented 1 year ago

This pull request is a foundational attempt to add support for column families in SplinterDB.

This is accomplished with the splinterdb_column_family struct that wraps splinterdb. Each column family has an associated struct and operations upon the family are performed by passing the struct to insert/delete/update/etc functions.

When operations upon keys are performed by a column family the user key is prepended with a 4 byte column family id. These keys are then commingled in a single splinterdb instance (though all key/value pairs for a single column family are stored contiguously in the key space).

The API for column families is defined in the splinterdb/column_family.h header.

Limitations/To-Do:

netlify[bot] commented 1 year ago

Deploy Preview for splinterdb canceled.

Name Link
Latest commit e874985aff21c418a957110ead4dc96aaaff1aea
Latest deploy log https://app.netlify.com/sites/splinterdb/deploys/64c5ef223b03290008b25a4d