antirez
fda2b30346
createLatencyReport(): compile before commit avoids commits.
2014-07-08 17:17:08 +02:00
antirez
924dc9731f
createLatencyReport(), fix mount option name.
2014-07-08 17:12:21 +02:00
antirez
51e01c0450
createLatencyReport(): initialize all advices to zero.
2014-07-08 17:11:56 +02:00
antirez
7fb90a670e
LATENCY DOCTOR first implementation complete.
2014-07-08 17:05:56 +02:00
antirez
57e931debc
Fix analyzeLatencyForEvent() MAD computation.
2014-07-08 12:56:45 +02:00
antirez
2a232dfa9a
LATENCY DOCTOR: initial draft and events summary output.
2014-07-08 11:31:46 +02:00
antirez
19853db892
Latency: low level time series analysis implemented.
2014-07-07 15:00:01 +02:00
antirez
b2604dc58c
LATENCY SAMPLES renamed LATENCY HISTORY.
2014-07-07 12:35:24 +02:00
antirez
f8934657b2
LATENCY RESET implemented.
2014-07-07 12:34:54 +02:00
antirez
2de5bab368
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-05 15:42:24 +02:00
antirez
895409ca78
Log AOF diff sizes in MBs instead of bytes.
2014-07-05 12:37:44 +02:00
antirez
93cd75bbe0
aofChildWriteDiffData() better handling of free blocks.
2014-07-05 01:11:28 +02:00
antirez
ac33c049c6
redis-benchmark: abort when all clients are disconnected.
2014-07-04 17:52:18 +02:00
antirez
20a0959964
Fine tuning of aofReadDiffFromParent() calls trigger.
2014-07-04 17:51:03 +02:00
antirez
cc24447a1a
Use amount of I/O not ops to trigger aofReadDiffFromParent().
2014-07-04 16:03:46 +02:00
antirez
62f9d34c56
aofChildWriteDiffData(): write as much as possible.
2014-07-04 15:54:20 +02:00
antirez
30c42f12b0
Handle write failure in AOF parent -> child ACK.
2014-07-04 15:37:49 +02:00
antirez
75ef41058d
Use a timeout when reading parent ack from AOF child.
2014-07-04 15:35:01 +02:00
antirez
2fa9fb647f
Send AOF diffs from parent to child to improve latency.
2014-07-04 15:27:23 +02:00
antirez
57852ff207
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-04 11:51:30 +02:00
antirez
a99766fda1
Fixed conditional for aof-write-pending-fsync latency event selection.
2014-07-02 17:42:29 +02:00
antirez
f0f9d583ad
Dependencies updated.
2014-07-02 17:04:14 +02:00
antirez
1f665d6e82
Cast void* to char* to avoid waring in latencyCommand().
2014-07-02 16:56:08 +02:00
antirez
e3c0125b70
Properly initialize min/max in latency.c.
2014-07-02 16:55:34 +02:00
antirez
a887af34e1
latencyStartMonitor() modified to avoid warnings.
2014-07-02 16:53:44 +02:00
antirez
53ae687d59
Latency monitor: specialize delayed aof writes events.
2014-07-02 16:45:45 +02:00
antirez
a53c734094
LATENCY GRAPH: filling under the curve is more readable.
2014-07-02 16:37:53 +02:00
antirez
aa16f87b87
LATENCY GRAPH implemented.
2014-07-02 16:31:22 +02:00
antirez
6f20482a86
latencyTimeSeries structure max field type fixed.
2014-07-02 16:14:28 +02:00
antirez
9d4d810861
Free labels in freeSparklineSequence().
2014-07-02 12:49:14 +02:00
antirez
1766d91697
LATENCY LATEST: add the max field.
2014-07-02 12:40:38 +02:00
antirez
e173f7a0e3
Latency monitor trheshold value is now configurable.
...
This commit adds both support for redis.conf and CONFIG SET/GET.
2014-07-02 12:28:17 +02:00
antirez
cc4df5a6b8
ASCII sparklines generation API.
2014-07-02 10:13:53 +02:00
antirez
ed4980243a
License added to latency.h.
2014-07-02 10:06:58 +02:00
antirez
b809676a9e
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-01 17:23:59 +02:00
antirez
de88bc63d5
Latency monitor: more hooks around the code.
2014-07-01 17:19:08 +02:00
antirez
f35abe2ff5
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-01 17:12:09 +02:00
antirez
83beaa886c
LATENCY LATEST implemented.
2014-07-01 16:17:33 +02:00
antirez
753b707d2a
Latency monitor: command duration is in useconds. Convert.
2014-07-01 16:09:02 +02:00
antirez
551bee86b4
LATENCY SAMPLES implemented.
2014-07-01 16:07:13 +02:00
antirez
8612e6de88
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-01 11:47:08 +02:00
antirez
d7a07a2012
Latency monitor: basic samples collection.
2014-07-01 11:30:15 +02:00
antirez
0afb7a48c0
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:29:12 +02:00
antirez
54157bc49e
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:08:24 +02:00
antirez
612bc784fc
Test: fix instances.tcl restart_instance abort error.
2014-06-30 12:06:27 +02:00
antirez
683f41adf2
DEBUG CMDKEYS moved to COMMAND GETKEYS.
2014-06-27 12:22:15 +02:00
antirez
885b6fc577
COMMAND COUNT subcommand added.
2014-06-27 12:11:15 +02:00
antirez
a92ae77740
COMMAND: fix argument parsing.
...
This fixes detection of wrong subcommand (that resulted in the default
all-commands output instead) and allows COMMAND INFO to be called
without arguments (resulting into an empty array) which is useful in
programmtically generated calls like the following (in Ruby):
redis.commands("command","info",*mycommands)
Note: mycommands may be empty.
2014-06-27 12:05:54 +02:00
antirez
7fd0149d34
COMMANDS command renamed COMMAND.
2014-06-27 12:01:29 +02:00
antirez
9bf6921f3d
COMMANDS command: remove static + aesthetic changes.
...
Static was removed since it is needed in order to get symbols in stack
traces. Minor changes in the source code were operated to make it more
similar to the existing Redis code base.
2014-06-27 11:59:48 +02:00