17#ifndef WISCKEY_MEMTABLE_H
18#define WISCKEY_MEMTABLE_H
23#define MEMTABLE_SIZE 1024
struct MemTable * MemTable_new()
Creates a new empty MemTable.
Definition memtable.c:39
#define MEMTABLE_SIZE
Max number of MemTableRecords in a MemTable.
Definition memtable.h:23
void MemTable_set(struct MemTable *memtable, const char *key, size_t key_len, int64_t value_loc)
Sets a key-value pair in a MemTable.
Definition memtable.c:118
void MemTable_delete(struct MemTable *memtable, const char *key, size_t key_len)
Deletes a record from a MemTable.
Definition memtable.c:145
struct MemTableRecord * MemTable_get(const struct MemTable *memtable, const char *key, size_t key_len)
Gets a MemTableRecord from a MemTable by key.
Definition memtable.c:107
void MemTable_free(struct MemTable *memtable)
Frees a MemTable and its records.
Definition memtable.c:170
Single Record in the MemTable.
Definition memtable.h:40
char * key
The key of the record.
Definition memtable.h:41
int64_t value_loc
The location of the value in the ValueLog.
Definition memtable.h:43
size_t key_len
The length of the key.
Definition memtable.h:42
MemTable of the Database.
Definition memtable.h:55
size_t size
The number of records filled in records.
Definition memtable.h:58
struct MemTableRecord * records[MEMTABLE_SIZE]
Array of records sorted by key.
Definition memtable.h:56