|
|
@@ -889,14 +889,24 @@ MemoryStore::Stats MemoryStore::getStats() const {
|
|
|
|
|
|
Stats stats = stats_;
|
|
|
|
|
|
- // Calculate estimated memory
|
|
|
+ // Calculate estimated memory (documents + version history)
|
|
|
std::shared_lock<std::shared_mutex> globalLock(globalMutex_);
|
|
|
stats.estimatedMemoryBytes = 0;
|
|
|
for (const auto& [name, coll] : collections_) {
|
|
|
std::shared_lock<std::shared_mutex> collLock(coll->mutex);
|
|
|
+
|
|
|
+ // Count document memory
|
|
|
for (const auto& [id, doc] : coll->documents) {
|
|
|
stats.estimatedMemoryBytes += estimateDocumentSize(doc);
|
|
|
}
|
|
|
+
|
|
|
+ // Count version history memory
|
|
|
+ for (const auto& [docId, history] : coll->versionHistory) {
|
|
|
+ for (const auto& ver : history) {
|
|
|
+ // Estimate version entry size: data + metadata
|
|
|
+ stats.estimatedMemoryBytes += ver.data.dump().size() + 256;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return stats;
|