mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-22 15:52:13 +00:00
initial implementation of the logstor storage engine for key-value tables that supports writes, reads and basic compaction. main components: * logstor: this is the main interface to users that supports writing and reading back mutations, and manages the internal components. * index: the primary index in-memory that maps a key to a location on disk. * write buffer: writes go initially to a write buffer. it accumulates multiple records in a buffer and writes them to the segment manager in 4k sized blocks. * segment manager: manages the storage - files, segments, compaction. it manages file and segment allocation, and writes 4k aligned buffers to the active segment sequentially. it tracks the used space in each segment. the compaction finds segment with low space usage and writes them to new segments, and frees the old segments.
37 lines
828 B
CMake
37 lines
828 B
CMake
add_library(replica STATIC)
|
|
target_sources(replica
|
|
PRIVATE
|
|
distributed_loader.cc
|
|
database.cc
|
|
table.cc
|
|
tablets.cc
|
|
distributed_loader.cc
|
|
memtable.cc
|
|
exceptions.cc
|
|
dirty_memory_manager.cc
|
|
logstor/segment_manager.cc
|
|
logstor/logstor.cc
|
|
logstor/write_buffer.cc
|
|
multishard_query.cc
|
|
mutation_dump.cc
|
|
schema_describe_helper.cc
|
|
querier.cc)
|
|
target_include_directories(replica
|
|
PUBLIC
|
|
${CMAKE_SOURCE_DIR})
|
|
target_link_libraries(replica
|
|
PUBLIC
|
|
db
|
|
absl::headers
|
|
wasmtime_bindings
|
|
Seastar::seastar
|
|
xxHash::xxhash
|
|
PRIVATE
|
|
absl::raw_hash_set)
|
|
if (Scylla_USE_PRECOMPILED_HEADER_USE)
|
|
target_precompile_headers(replica REUSE_FROM scylla-precompiled-header)
|
|
endif()
|
|
|
|
check_headers(check-headers replica
|
|
GLOB_RECURSE ${CMAKE_CURRENT_SOURCE_DIR}/*.hh)
|