-
Type: Improvement
-
Resolution: Done
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Performance
-
Service Arch
Mongo currently uses gettimeofday() for all posix interval metrics. As this function is not monotonic, we may see anomalies under certain conditions; e.g. VMM live migration, some SMP process migrations, system sleep/suspend/hibernate, NTP or system date changes, TSC-related kernel or VMM bugs, etc.
The FineClock class (src/mongo/db/stats/fine_clock.h) implements a monotonic clock source, however the code is currently Linux specific and unused. The goal here would be to make this class fully functional on all platforms and ensure performance is >= gettimeofday(). It may also be worth migrating the win32 code from boost::xtime to QueryPerformanceCounter() or similar as boost::xtime has been deprecated.
- is duplicated by
-
SERVER-6444 when time (ticks) go backwards Timer overflows
- Closed
-
SERVER-6550 db.currentOp() incorrectly reports insert secs_running as 1271310
- Closed
-
SERVER-2886 Many commands being executed for 1271310319ms, mongo
- Closed
-
SERVER-10603 Absurd query times in log
- Closed
-
SERVER-4924 Use CLOCK_MONOTONIC for timing rather than gettimeofday
- Closed
- is related to
-
SERVER-15122 Result of gettimeofday() is not checked
- Closed
- related to
-
SERVER-6452 Replace time(0) calls
- Backlog
-
SERVER-16763 mongod terminate due to mongo::DBTryLockTimeoutException during longevity test with wiredTiger
- Closed
-
SERVER-18562 YCSB load phase (insert only) push 16 core machine to 100 % due to high resoultion timers
- Closed
-
SERVER-4709 Strange timing of operations reported in logs
- Closed