summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* PFSELFTEST: less false positives.antirez2014-07-231-2/+10
| | | | | | | This is just a quickfix, for the nature of the test the right way to fix it is to average the error of N runs, since otherwise it is always possible to get a false positive with a bad run, or to minimize too much this possibility we may end testing with too much "large" error ranges.
* Remove useless var and check in zunionInterGenericCommand().antirez2014-07-221-2/+1
|
* ZUNIONSTORE reimplemented for speed.antirez2014-07-221-33/+60
| | | | | | | | | | | | | | | | | The user @kjmph provided excellent ideas to improve speed of ZUNIONSTORE (in certain cases by many order of magnitude), together with an implementation of the ideas. While the ideas were sounding, the implementation could be improved both in terms of speed and clearness, so that's my attempt at reimplementing the speedup proposed, trying to improve by directly using just a dictionary with an embedded score inside, and reusing the single-pass aggregate + order-later approach. Note that you can't apply this commit without applying the previous commit in this branch that adds a double in the dictEntry value union. Issue #1786.
* Add double field in dict.c entry value union.antirez2014-07-221-0/+5
|
* CLUSTER RESET: Flush dataset if node is a slave.antirez2014-07-221-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | For non-empty masters, CLUSTER RESET is denied, and the user requires to start to reset a node by explicitly clearing it with FLUSHALL. However CLUSTER RESET when executed with slaves don't have this restrictions since data is just a replica of the master, and with read-only slaves it is also not possible to remove the data set. However the node was turned from slave to master after a reset, without touching the old slave data. This is 99.99% of times not appropriate and forces full resets to follow this path to work with both slave and master nodes: FLUSHALL CLUSTER RESET HARD FLUSHALL Since we need the first flushall for masters, and the second for slaves. This commit changes the behavior so that CLUSTER RESET removes the data set of a slave node during a reset, in the moment it gets turned into a master, so the new pattern is simply: FLUSHALL (that may fail for slaves) CLUSTER RESET
* Cluster: fix redis-trib --from all.antirez2014-07-211-0/+4
|
* redis-trib: allow to reshard in non-interactive way.antirez2014-07-181-37/+82
| | | | | | The introduction of --from --to --slots --yes options allow to reshard from cli in an automated way from scripts. The code is ugly and needs refactoring as soon as we get it in RC / stable release.
* PING: backward compatible error for wrong number of args.antirez2014-07-181-1/+2
|
* tryObjectEncoding(): use shared objects with maxmemory and non-LRU policy.antirez2014-07-181-1/+3
| | | | | | | | In order to make sure every object has its own private LRU counter, when maxmemory is enabled tryObjectEncoding() does not use the pool of shared integers. However when the policy is not LRU-based, it does not make sense to do so, and it is much better to save memory using shared integers.
* Variadic PING with support for Pub/Sub.antirez2014-07-161-2/+22
| | | | | | | | | PING can now be called with an additional arugment, behaving exactly like the ECHO command. PING can now also be called in Pub/Sub mode (with one more more subscriptions to channels / patterns) in order to trigger the delivery of an asynchronous pong message with the optional payload. This fixes issue #420.
* PubSub clients refactoring and new PUBSUB flag.antirez2014-07-164-8/+18
| | | | | | | | | | | The code tested many times if a client had active Pub/Sub subscriptions by checking the length of a list and dictionary where the patterns and channels are stored. This was substituted with a client flag called REDIS_PUBSUB that is simpler to test for. Moreover in order to manage this flag some code was refactored. This commit is believed to have no effects in the behavior of the server.
* RDB: load string objects directly as EMBSTR objects when possible.antirez2014-07-161-5/+6
|
* Fix OBJECT aritymichael-grunder2014-07-112-2/+2
| | | | | | | | | | | | | | | Previously, the command definition for the OBJECT command specified a minimum of two args (and that it was variadic), which meant that if you sent this: OBJECT foo When cluster was enabled, it would result in an assertion/SEGFAULT when Redis was attempting to extract keys. It appears that OBJECT is not variadic, and only ever takes 3 args. https://gist.github.com/michael-grunder/25960ce1508396d0d36a
* Fix typo in LATENCY DOCTOR output.antirez2014-07-111-1/+1
|
* LATENCY HISTORY returns empty array if no data is available.antirez2014-07-101-2/+5
| | | | Previously we returned an error.
* Fixed a few missing newline in createLatencyReport().latencyantirez2014-07-091-2/+2
|
* createLatencyReport(): compile before commit avoids commits.antirez2014-07-081-1/+1
|
* createLatencyReport(), fix mount option name.antirez2014-07-081-1/+1
|
* createLatencyReport(): initialize all advices to zero.antirez2014-07-081-3/+3
|
* LATENCY DOCTOR first implementation complete.antirez2014-07-085-6/+185
|
* Fix analyzeLatencyForEvent() MAD computation.antirez2014-07-081-3/+3
|
* LATENCY DOCTOR: initial draft and events summary output.antirez2014-07-083-2/+86
|
* Latency: low level time series analysis implemented.antirez2014-07-072-0/+60
|
* LATENCY SAMPLES renamed LATENCY HISTORY.antirez2014-07-071-2/+2
|
* LATENCY RESET implemented.antirez2014-07-071-4/+39
|
* Better "final read from parent" algorithm in rewriteAppendOnlyFile*(.antirez2014-07-051-8/+11
| | | | | | | | 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.
* Log AOF diff sizes in MBs instead of bytes.antirez2014-07-051-3/+3
|
* aofChildWriteDiffData() better handling of free blocks.antirez2014-07-051-4/+7
|
* redis-benchmark: abort when all clients are disconnected.antirez2014-07-041-0/+5
|
* Fine tuning of aofReadDiffFromParent() calls trigger.antirez2014-07-041-4/+27
|
* Use amount of I/O not ops to trigger aofReadDiffFromParent().antirez2014-07-041-2/+5
|
* aofChildWriteDiffData(): write as much as possible.antirez2014-07-041-11/+15
|
* Handle write failure in AOF parent -> child ACK.antirez2014-07-041-1/+8
|
* Use a timeout when reading parent ack from AOF child.antirez2014-07-041-2/+8
|
* Send AOF diffs from parent to child to improve latency.antirez2014-07-042-6/+151
|
* Use fsync instead of aof_fsync in final AOF sync.antirez2014-07-041-1/+1
| | | | | This happens in the child process so we don't care about latency: better to sync metadata as well.
* Fixed conditional for aof-write-pending-fsync latency event selection.antirez2014-07-021-1/+1
|
* Dependencies updated.antirez2014-07-021-35/+51
|
* Cast void* to char* to avoid waring in latencyCommand().antirez2014-07-021-1/+1
|
* Properly initialize min/max in latency.c.antirez2014-07-021-1/+1
|
* latencyStartMonitor() modified to avoid warnings.antirez2014-07-021-0/+2
|
* Latency monitor: specialize delayed aof writes events.antirez2014-07-021-4/+16
|
* LATENCY GRAPH: filling under the curve is more readable.antirez2014-07-021-1/+1
|
* LATENCY GRAPH implemented.antirez2014-07-024-6/+66
|
* latencyTimeSeries structure max field type fixed.antirez2014-07-021-1/+1
|
* Free labels in freeSparklineSequence().antirez2014-07-021-0/+4
|
* LATENCY LATEST: add the max field.antirez2014-07-021-1/+2
|
* Latency monitor trheshold value is now configurable.antirez2014-07-021-0/+14
| | | | This commit adds both support for redis.conf and CONFIG SET/GET.
* ASCII sparklines generation API.antirez2014-07-024-1/+230
|
* License added to latency.h.antirez2014-07-021-0/+33
|