36 #include <wiredtiger.h> 38 #include "mongo/base/string_data.h" 40 #include "mongo/platform/atomic_word.h" 41 #include "mongo/stdx/mutex.h" 42 #include "mongo/util/string_map.h" 79 const std::string& storageUri,
80 const bool readOnly =
false);
87 void store(StringData
uri, std::shared_ptr<SizeInfo> sizeInfo);
89 std::shared_ptr<SizeInfo>
load(StringData
uri)
const;
94 void flush(
bool syncToDisk);
103 using Buffer = StringMap<std::shared_ptr<SizeInfo>>;
~SizeInfo()
Definition: wiredtiger_size_storer.h:67
const bool _readOnly
Definition: wiredtiger_size_storer.h:98
friend WiredTigerSizeStorer
Definition: wiredtiger_size_storer.h:74
const WiredTigerSession _session
Definition: wiredtiger_size_storer.h:97
The WiredTigerSizeStorer class serves as a write buffer to durably store size information for MongoDB...
Definition: wiredtiger_size_storer.h:57
Copyright (C) 2014 MongoDB Inc.
Definition: bson_collection_catalog_entry.cpp:38
Buffer _buffer
Definition: wiredtiger_size_storer.h:106
StringMap< std::shared_ptr< SizeInfo > > Buffer
Definition: wiredtiger_size_storer.h:103
This is a structure that caches 1 cursor for each uri.
Definition: wiredtiger_session_cache.h:65
AtomicInt64 dataSize
Definition: wiredtiger_size_storer.h:71
WT_CURSOR * _cursor
Definition: wiredtiger_size_storer.h:101
AtomicInt64 numRecords
Definition: wiredtiger_size_storer.h:70
void flush(bool syncToDisk)
Writes all changes to the underlying table.
Definition: wiredtiger_size_storer.cpp:127
stdx::mutex _bufferMutex
Definition: wiredtiger_size_storer.h:105
SizeInfo is a thread-safe buffer for keeping track of the number of documents in a collection and the...
Definition: wiredtiger_size_storer.h:66
std::shared_ptr< SizeInfo > load(StringData uri) const
Definition: wiredtiger_size_storer.cpp:92
AtomicBool _dirty
Definition: wiredtiger_size_storer.h:75
~WiredTigerSizeStorer()
Definition: wiredtiger_size_storer.cpp:68
stdx::mutex _cursorMutex
Definition: wiredtiger_size_storer.h:100
void store(StringData uri, std::shared_ptr< SizeInfo > sizeInfo)
Ensure that the shared SizeInfo will be stored by the next call to flush.
Definition: wiredtiger_size_storer.cpp:73
std::string uri
Definition: wiredtiger_standard_record_store_test.cpp:367