Commit Graph

626 Commits

Author SHA1 Message Date
ba798261ce DEBUG DIGEST implemented, in order to improve the ability to test persistence and replication consistency 2010-05-14 13:41:57 +02:00
b58ba10526 Add SIGTERM shutdown handling. 2010-05-13 16:11:47 -07:00
9682a58fca conflicts resolved 2010-05-13 14:24:41 +02:00
9376e434f0 feed SETEX as SET and EXPIREAT to AOF 2010-05-13 14:15:06 +02:00
32a6651355 very strong speedup in saving time performance when there are many integers in the dataset. Instead of decoding the object before to pass them to the rdbSaveObject layer we check asap if the object is integer encoded and can be written on disk as an integer. 2010-05-13 13:36:42 +02:00
fb82e75cd1 include limits.h otherwise no double precison macros 2010-05-13 11:53:56 +02:00
88e8d89f1e explicitly checks with ifdefs if our floating point and long long assumptions are verified 2010-05-13 10:47:06 +02:00
fe24458996 Yet another version of the double saving code, with comments explaining what's happening there 2010-05-13 10:28:00 +02:00
5107436cdf added overflow check in the double -> long long conversion trick to avoid integer overflows. I think this was not needed in practical terms, but it is safer 2010-05-12 21:51:48 +02:00
8c096b16a1 If a float can be casted to a long long without rounding loss, we can use the integer conversion function to write the score on disk. This is a seriuous speedup 2010-05-12 15:07:39 +02:00
abce5627d7 Merge branch 'vm-speedup' 2010-05-12 11:51:01 +02:00
6485f29382 fix to return error when calling INCR on a non-string type 2010-05-11 22:46:24 +02:00
ad30aa6069 load objects encoded from disk directly without useless conversion 2010-05-11 16:12:22 +02:00
bd59ecfb92 fixed a problem leading to crashes, as keys can't be currently specially encoded, so we can't encode integers at object loading time... For now this can be fixed passing a few flags, or later can be fixed allowing encoded keys as well 2010-05-11 14:30:56 +02:00
ee14da56e6 long long to string conversion speedup applied in other places as well. Still the code has bugs, fixing right now... 2010-05-11 14:13:53 +02:00
e5b7a215e8 hand written code to turn a long long into a string -> very big speed win 2010-05-11 12:13:37 +02:00
bf02809825 added specialized function to compare string objects for perfect match that is optimized for this task 2010-05-11 11:15:36 +02:00
dc05abde89 better use of encoding inforamtion in dictEncObjKeyCompare 2010-05-11 11:02:24 +02:00
1b67773229 CONFIG now can change appendfsync policy at run time 2010-05-10 20:56:54 +02:00
a34e0a2574 CONFIG command now supports hot modification of RDB saving parameters. 2010-05-10 18:50:55 +02:00
89e689c592 while loading the rdb file don't add the key to the dictionary at all if it's already expired, instead of removing it just after the insertion. 2010-05-10 15:26:01 +02:00
585af7e21c minor changes to improve code readability 2010-05-08 03:04:00 +02:00
242a64f3d6 swap objects out directly while loading an RDB file if we detect we can't stay in the vm max memory limits anyway 2010-05-08 02:38:59 +02:00
59305dc7a9 DEBUG POPULATE command for fast creation of test databases 2010-05-07 16:33:47 +02:00
0a6f3f0f8a swap arguments in blockClientOnSwappedKeys to be consistent 2010-05-07 14:33:34 +02:00
3805e04f78 added function that preloads all keys needed to execute a MULTI/EXEC block 2010-05-07 14:22:21 +02:00
739ba0d211 add sanity check to zunionInterBlockClientOnSwappedKeys, as the number of keys used is provided as argument to the function 2010-05-07 12:59:34 +02:00
ca1788b560 make prototype of custom function to preload keys from the vm match the prototype of waitForMultipleSwappedKeys 2010-05-07 12:58:44 +02:00
6f07874621 extract preloading of multiple keys according to the command prototype to a separate function 2010-05-07 12:45:27 +02:00
f3b52411db make append only filename configurable 2010-05-07 11:55:12 +02:00
f4f06efccc don't load value from VM for EXISTS 2010-05-07 11:40:26 +02:00
a0e7e5f516 swap file name pid expansion removed. Not suited for mission critical software... 2010-05-07 09:36:37 +02:00
8b5bb414f1 Swap file is now locked 2010-05-07 09:32:26 +02:00
f424d5f398 Merge branch 'master' into aof-speedup 2010-05-06 23:19:46 +02:00
4132ad8d49 log error and quit when the AOF contains an unfinished MULTI 2010-05-06 22:14:07 +02:00
946342c190 hincrby should report an error when called against a hash key that doesn't contain an integer 2010-05-06 20:38:50 +02:00
28ed1f33ee AOF writes are now accumulated into a buffer and flushed into disk just before re-entering the event loop. A lot less writes but still this guarantees that AOF is written before the client gets a positive reply about a write operation, as no reply is trasnmitted before re-entering into the event loop. 2010-05-06 20:16:14 +02:00
10ce12761a On Linux now fdatasync() is used insetad of fsync() in order to flush the AOF file kernel buffers 2010-05-02 15:05:34 +02:00
dd142b9cd7 New MONITOR output format with timestamp, every command in a single line, string representations 2010-04-29 18:43:51 +02:00
8f63ddca00 AOF is now rewritten on slave after SYNC with master. Thanks to @_km for finding this bug and any others' 2010-04-27 16:58:08 +02:00
526d00a572 SETEX implemented 2010-04-23 19:07:33 +02:00
c8d0ea0ef1 Pub/Sub API change: now messages received via pattern matching have a different message type and an additional field representing the original pattern the message matched 2010-04-23 15:36:00 +02:00
723240057a new units for bytes specification 2010-04-22 15:09:07 +02:00
2b61932933 Now in redis.conf it is possible to specify units where appropriate instead of amounts of bytes, like 2Gi or 4M and so forth 2010-04-22 12:05:51 +02:00
dc4be23ec8 binary safe keys ready implementation of RANDOMKEYS 2010-04-21 11:31:29 +02:00
24df76987e Now that's the right 1.3.10 2010-04-21 10:31:48 +02:00
3bb225d66b Revert "fsync always now uses O_DIRECT on Linux"
This reverts commit 566c3c7a22.
2010-04-21 10:31:16 +02:00
d6fb4d5396 Revert "define __USE_GNU to get O_DIRECT"
This reverts commit 122c049834.
2010-04-21 10:31:08 +02:00
122c049834 define __USE_GNU to get O_DIRECT 2010-04-20 18:29:06 +02:00
566c3c7a22 fsync always now uses O_DIRECT on Linux 2010-04-20 18:25:30 +02:00