consolidate

This commit is contained in:
2026-02-15 13:56:08 -05:00
parent 42db451349
commit cf352dde23
8 changed files with 1096 additions and 338 deletions

View File

@@ -1,15 +1,12 @@
// Storage engine mapping DynamoDB operations to RocksDB
package dynamodb
import "core:encoding/json"
import "core:fmt"
import "core:mem"
import "core:slice"
import "core:strings"
import "core:sync"
import "core:time"
import "../key_codec"
import "../item_codec"
import "../rocksdb"
Storage_Error :: enum {
@@ -218,12 +215,12 @@ serialize_table_metadata :: proc(metadata: ^Table_Metadata) -> ([]byte, bool) {
meta_item["CreationDateTime"] = Number(fmt.aprint(metadata.creation_date_time))
// Encode to binary
return item_codec.encode(meta_item)
return encode(meta_item)
}
// Deserialize table metadata from binary format
deserialize_table_metadata :: proc(data: []byte, allocator: mem.Allocator) -> (Table_Metadata, bool) {
meta_item, ok := item_codec.decode(data)
meta_item, ok := decode(data)
if !ok {
return {}, false
}
@@ -239,7 +236,7 @@ deserialize_table_metadata :: proc(data: []byte, allocator: mem.Allocator) -> (T
// Get table metadata
get_table_metadata :: proc(engine: ^Storage_Engine, table_name: string) -> (Table_Metadata, Storage_Error) {
meta_key := key_codec.build_meta_key(table_name)
meta_key := build_meta_key(table_name)
defer delete(meta_key)
value, get_err := rocksdb.db_get(&engine.db, meta_key)
@@ -275,7 +272,7 @@ create_table :: proc(
defer sync.rw_mutex_unlock(table_lock)
// Check if table already exists
meta_key := key_codec.build_meta_key(table_name)
meta_key := build_meta_key(table_name)
defer delete(meta_key)
existing, get_err := rocksdb.db_get(&engine.db, meta_key)
@@ -340,7 +337,7 @@ delete_table :: proc(engine: ^Storage_Engine, table_name: string) -> Storage_Err
defer sync.rw_mutex_unlock(table_lock)
// Check table exists
meta_key := key_codec.build_meta_key(table_name)
meta_key := build_meta_key(table_name)
defer delete(meta_key)
existing, get_err := rocksdb.db_get(&engine.db, meta_key)
@@ -403,11 +400,11 @@ put_item :: proc(engine: ^Storage_Engine, table_name: string, item: Item) -> Sto
}
// Build storage key
storage_key := key_codec.build_data_key(table_name, key_values.pk, key_values.sk)
storage_key := build_data_key(table_name, key_values.pk, key_values.sk)
defer delete(storage_key)
// Encode item
encoded_item, encode_ok := item_codec.encode(item)
encoded_item, encode_ok := encode(item)
if !encode_ok {
return .Serialization_Error
}
@@ -456,7 +453,7 @@ get_item :: proc(engine: ^Storage_Engine, table_name: string, key: Item) -> (May
}
// Build storage key
storage_key := key_codec.build_data_key(table_name, key_values.pk, key_values.sk)
storage_key := build_data_key(table_name, key_values.pk, key_values.sk)
defer delete(storage_key)
// Get from RocksDB
@@ -470,7 +467,7 @@ get_item :: proc(engine: ^Storage_Engine, table_name: string, key: Item) -> (May
defer delete(value)
// Decode item
item, decode_ok := item_codec.decode(value)
item, decode_ok := decode(value)
if !decode_ok {
return nil, .Serialization_Error
}
@@ -512,7 +509,7 @@ delete_item :: proc(engine: ^Storage_Engine, table_name: string, key: Item) -> S
}
// Build storage key
storage_key := key_codec.build_data_key(table_name, key_values.pk, key_values.sk)
storage_key := build_data_key(table_name, key_values.pk, key_values.sk)
defer delete(storage_key)
// Delete from RocksDB