diff --git a/CMakeLists.txt b/CMakeLists.txt index 3eba538..cbf81e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.16) -project(tidesdb_cpp VERSION 2.3.3 LANGUAGES CXX) +project(tidesdb_cpp VERSION 2.3.4 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/include/tidesdb/tidesdb.hpp b/include/tidesdb/tidesdb.hpp index a916286..393f447 100644 --- a/include/tidesdb/tidesdb.hpp +++ b/include/tidesdb/tidesdb.hpp @@ -230,6 +230,7 @@ struct Config std::size_t maxOpenSSTables = 256; bool logToFile = false; std::size_t logTruncationAt = 24 * 1024 * 1024; + std::size_t maxMemoryUsage = 0; ///< Global memory limit in bytes (0 = auto) }; /** diff --git a/src/tidesdb.cpp b/src/tidesdb.cpp index 94fa4a9..1a7782d 100644 --- a/src/tidesdb.cpp +++ b/src/tidesdb.cpp @@ -602,6 +602,7 @@ TidesDB::TidesDB(const Config& config) cConfig.max_open_sstables = config.maxOpenSSTables; cConfig.log_to_file = config.logToFile ? 1 : 0; cConfig.log_truncation_at = config.logTruncationAt; + cConfig.max_memory_usage = config.maxMemoryUsage; int result = tidesdb_open(&cConfig, &db_); checkResult(result, "failed to open database"); @@ -800,6 +801,7 @@ Config TidesDB::defaultConfig() config.maxOpenSSTables = cConfig.max_open_sstables; config.logToFile = cConfig.log_to_file != 0; config.logTruncationAt = cConfig.log_truncation_at; + config.maxMemoryUsage = cConfig.max_memory_usage; return config; }