Closed zz-jason closed 8 months ago
Attention: 321 lines
in your changes are missing coverage. Please review.
Comparison is base (
f20a677
) 35.55% compared to head (a5da2c0
) 35.86%.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
remaining static variables that may affect the transaction execution in one LeanStore instance:
➜ find source -name "*.hpp" | xargs grep "static " | grep -v "const" | grep -v "void" | grep -v "inline" | grep -v "{" | grep -v "counters" | grep -v "(" | grep -v thread_local | grep -v Tracing | grep -v Debug | grep -v Jump
2:3:5:7:16:24:32:60:75:114:source/LeanStore.hpp: static FlagListString sPersistedStringFlags;
3:4:6:8:17:25:33:61:76:115:source/LeanStore.hpp: static FlagListS64 sPersistedS64Flags;
4:5:7:9:19:27:35:65:82:123:source/concurrency-recovery/Worker.hpp: static std::atomic<u64> sGlobalMinFlushedGSN;
5:6:8:10:20:28:36:66:83:124:source/concurrency-recovery/Worker.hpp: static std::atomic<u64> sGlobalMaxFlushedGSN;
6:7:9:12:22:30:38:68:87:128:source/concurrency-recovery/Worker.hpp: static std::unique_ptr<std::atomic<u64>[]> sActiveTxId;
7:8:10:13:23:31:39:69:88:129:source/concurrency-recovery/Worker.hpp: static std::shared_mutex sGlobalMutex;
8:9:11:14:24:32:40:70:89:130:source/concurrency-recovery/Worker.hpp: static std::atomic<TXID> sOldestActiveTx;
9:10:12:15:25:33:41:71:90:131:source/concurrency-recovery/Worker.hpp: static std::atomic<TXID> sOldestActiveShortTx;
10:11:13:16:26:34:42:72:91:132:source/concurrency-recovery/Worker.hpp: static std::atomic<TXID> sNetestActiveLongTx;
11:12:14:17:27:35:43:73:92:133:source/concurrency-recovery/Worker.hpp: static std::atomic<TXID> sWmkOfAllTx;
12:13:15:18:28:36:44:74:93:134:source/concurrency-recovery/Worker.hpp: static std::atomic<TXID> sWmkOfShortTx;
Introduce the new API in
include/leanstore/Store.hpp
, and try to manage all the global resources (files, threads) in anLeanStore
object, so that we can have multipleLeanStore
objects in one process, which enables multi-tenant. The direct benefit is that we can run parallel tests where each test has its ownLeanStore
object.