Commit Graph

4915 Commits

Author SHA1 Message Date
034f39f14d LATENCY HISTORY returns empty array if no data is available.
Previously we returned an error.
2014-07-18 12:20:56 +02:00
ef7c1fbcef Test: enable latency monitor in the default config.
This way as a side effect of running the test we also stress the latency
monitor data collection.
2014-07-18 12:20:56 +02:00
93c6ea6c6f Test: AOF rewrite during write load. 2014-07-18 12:20:56 +02:00
959667ffe1 Fixed a few missing newline in createLatencyReport(). 2014-07-18 12:20:56 +02:00
c9ddd141dd createLatencyReport(): compile before commit avoids commits. 2014-07-18 12:20:56 +02:00
1b6d614f2c createLatencyReport(), fix mount option name. 2014-07-18 12:20:56 +02:00
44de3a9cfb createLatencyReport(): initialize all advices to zero. 2014-07-18 12:20:56 +02:00
a117fd2a44 LATENCY DOCTOR first implementation complete. 2014-07-18 12:20:56 +02:00
31e1e30aa6 Fix analyzeLatencyForEvent() MAD computation. 2014-07-18 12:20:56 +02:00
9ed02e137c LATENCY DOCTOR: initial draft and events summary output. 2014-07-18 12:20:56 +02:00
c7f1aa74d7 Latency: low level time series analysis implemented. 2014-07-18 12:20:56 +02:00
9a037792b6 LATENCY SAMPLES renamed LATENCY HISTORY. 2014-07-18 12:20:56 +02:00
7c6a028a3a LATENCY RESET implemented. 2014-07-18 12:20:56 +02:00
cc7b10cb52 Better "final read from parent" algorithm in rewriteAppendOnlyFile*(.
We now wait up to 1 second for diff data to come from the parent,
however we use poll(2) to wait for more data, and use a counter of
contiguous failures to get data for N times (set to 20 experimentally
after different tests) as an early stop condition to avoid wasting 1
second when the write traffic is too low.
2014-07-18 12:20:56 +02:00
d721e6e5c3 Log AOF diff sizes in MBs instead of bytes. 2014-07-18 12:20:56 +02:00
e615539cc7 aofChildWriteDiffData() better handling of free blocks. 2014-07-18 12:20:55 +02:00
f0a58bfaba redis-benchmark: abort when all clients are disconnected. 2014-07-18 12:20:55 +02:00
d3514edd3e Fine tuning of aofReadDiffFromParent() calls trigger. 2014-07-18 12:20:55 +02:00
180c9143b9 Use amount of I/O not ops to trigger aofReadDiffFromParent(). 2014-07-18 12:20:55 +02:00
e05cd36326 aofChildWriteDiffData(): write as much as possible. 2014-07-18 12:20:55 +02:00
9494c84523 Handle write failure in AOF parent -> child ACK. 2014-07-18 12:20:55 +02:00
896256210f Use a timeout when reading parent ack from AOF child. 2014-07-18 12:20:55 +02:00
576056d973 Send AOF diffs from parent to child to improve latency. 2014-07-18 12:20:55 +02:00
ca2db2bcb9 Use fsync instead of aof_fsync in final AOF sync.
This happens in the child process so we don't care about latency:
better to sync metadata as well.
2014-07-18 12:20:55 +02:00
74423be7a5 Fixed conditional for aof-write-pending-fsync latency event selection. 2014-07-18 12:20:55 +02:00
7989b612af Dependencies updated. 2014-07-18 12:20:55 +02:00
289e83f1c9 Cast void* to char* to avoid waring in latencyCommand(). 2014-07-18 12:20:55 +02:00
a7dc975a81 Properly initialize min/max in latency.c. 2014-07-18 12:20:55 +02:00
b2d6266521 latencyStartMonitor() modified to avoid warnings. 2014-07-18 12:20:55 +02:00
cd5c13e12f Latency monitor: specialize delayed aof writes events. 2014-07-18 12:20:55 +02:00
231e016235 LATENCY GRAPH: filling under the curve is more readable. 2014-07-18 12:20:55 +02:00
3bd6917b0d LATENCY GRAPH implemented. 2014-07-18 12:20:55 +02:00
6fb6609600 latencyTimeSeries structure max field type fixed. 2014-07-18 12:20:55 +02:00
9bc408493e Free labels in freeSparklineSequence(). 2014-07-18 12:20:55 +02:00
b58c960eb2 LATENCY LATEST: add the max field. 2014-07-18 12:20:55 +02:00
a9d9898680 Latency monitor trheshold value is now configurable.
This commit adds both support for redis.conf and CONFIG SET/GET.
2014-07-18 12:20:55 +02:00
b71a980687 ASCII sparklines generation API. 2014-07-18 12:20:55 +02:00
e817f6c013 License added to latency.h. 2014-07-18 12:20:55 +02:00
0f674f3368 Latency monitor turned off by default.
It is not a good idea to bloat the code with gettimeofday() calls if the
instance is working well, and turning monitoring on at runtime is a
joke.
2014-07-18 12:20:55 +02:00
2b5a0e8066 Latency monitor: more hooks around the code. 2014-07-18 12:20:55 +02:00
372484ab8e Latency monitor: don't add new samples in the same second.
Instead we update the old sample with the new latency if it is greater.
2014-07-18 12:20:55 +02:00
5e56590198 LATENCY LATEST implemented. 2014-07-18 12:20:55 +02:00
485a5908c0 Latency monitor: command duration is in useconds. Convert. 2014-07-18 12:20:55 +02:00
41c9d1c08f LATENCY SAMPLES implemented. 2014-07-18 12:20:55 +02:00
44cf7395a2 Latency monitor: collect slow commands.
We introduce the distinction between slow and fast commands since those
are two different sources of latency. An O(1) or O(log N) command without
side effects (can't trigger deletion of large objects as a side effect of
its execution) if delayed is a symptom of inherent latency of the system.

A non-fast command (commands that may run large O(N) computations) if
delayed may just mean that the user is executing slow operations.

The advices LATENCY should provide in this two different cases are
different, so we log the two classes of commands in a separated way.
2014-07-18 12:20:55 +02:00
62ca4bd438 Latency monitor: basic samples collection. 2014-07-18 12:20:55 +02:00
4a7fca7c07 Fix Solaris compilation due to ctime_r() call.
Introduced in Redis 2.8.10 because of a change in Sentinel.
This closes issue #1837.
2014-06-30 16:28:22 +02:00
f884be6854 Redis 2.9.56 (Redis 3.0.0 beta-7). 3.0.0-beta7 2014-06-30 12:11:22 +02:00
05b6b147ec Test: find_available_port: check that cluster port is free as well.
The function will only return ports that have also port+10000 free, so
that Redis Cluster instances can be executed at the returned port.
2014-06-30 12:11:22 +02:00
a5aa3b6491 Test: fix instances.tcl restart_instance abort error. 2014-06-30 12:11:22 +02:00