diff options
author | Antonin Kral <a.kral@bobek.cz> | 2011-03-17 00:05:43 +0100 |
---|---|---|
committer | Antonin Kral <a.kral@bobek.cz> | 2011-03-17 00:05:43 +0100 |
commit | 582fc32574a3b158c81e49cb00e6ae59205e66ba (patch) | |
tree | ac64a3243e0d2121709f685695247052858115c8 /db/dur_stats.h | |
parent | 2761bffa96595ac1698d86bbc2e95ebb0d4d6e93 (diff) | |
download | mongodb-582fc32574a3b158c81e49cb00e6ae59205e66ba.tar.gz |
Imported Upstream version 1.8.0
Diffstat (limited to 'db/dur_stats.h')
-rw-r--r-- | db/dur_stats.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/db/dur_stats.h b/db/dur_stats.h new file mode 100644 index 0000000..5f5a188 --- /dev/null +++ b/db/dur_stats.h @@ -0,0 +1,46 @@ +// @file dur_stats.h + +namespace mongo { + namespace dur { + + /** journaling stats. the model here is that the commit thread is the only writer, and that reads are + uncommon (from a serverStatus command and such). Thus, there should not be multicore chatter overhead. + */ + struct Stats { + Stats(); + void rotate(); + BSONObj asObj(); + unsigned _intervalMicros; + struct S { + BSONObj _asObj(); + void reset(); + + unsigned _commits; + unsigned _earlyCommits; // count of early commits from commitIfNeeded() or from getDur().commitNow() + unsigned long long _journaledBytes; + unsigned long long _writeToDataFilesBytes; + + unsigned long long _prepLogBufferMicros; + unsigned long long _writeToJournalMicros; + unsigned long long _writeToDataFilesMicros; + unsigned long long _remapPrivateViewMicros; + + // undesirable to be in write lock for the group commit (it can be done in a read lock), so good if we + // have visibility when this happens. can happen for a couple reasons + // - read lock starvation + // - file being closed + // - data being written faster than the normal group commit interval + unsigned _commitsInWriteLock; + + unsigned _dtMillis; + }; + S *curr; + private: + S _a,_b; + unsigned long long _lastRotate; + S* other(); + }; + extern Stats stats; + + } +} |