Commit Graph

578 Commits

Author SHA1 Message Date
antirez
3be2c9d732 fixed a warning seen with some GCC version under Linux 2010-05-14 22:56:06 +02:00
antirez
5d373da96a ZUNION,ZINTER -> ZUNIONSTORE,ZINTERSTORE 2010-05-14 18:58:37 +02:00
antirez
ba798261ce DEBUG DIGEST implemented, in order to improve the ability to test persistence and replication consistency 2010-05-14 13:41:57 +02:00
Ashley Martens
b58ba10526 Add SIGTERM shutdown handling. 2010-05-13 16:11:47 -07:00
antirez
9682a58fca conflicts resolved 2010-05-13 14:24:41 +02:00
Pieter Noordhuis
9376e434f0 feed SETEX as SET and EXPIREAT to AOF 2010-05-13 14:15:06 +02:00
antirez
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
antirez
fb82e75cd1 include limits.h otherwise no double precison macros 2010-05-13 11:53:56 +02:00
antirez
88e8d89f1e explicitly checks with ifdefs if our floating point and long long assumptions are verified 2010-05-13 10:47:06 +02:00
antirez
fe24458996 Yet another version of the double saving code, with comments explaining what's happening there 2010-05-13 10:28:00 +02:00
antirez
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
antirez
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
antirez
abce5627d7 Merge branch 'vm-speedup' 2010-05-12 11:51:01 +02:00
Pieter Noordhuis
6485f29382 fix to return error when calling INCR on a non-string type 2010-05-11 22:46:24 +02:00
antirez
ad30aa6069 load objects encoded from disk directly without useless conversion 2010-05-11 16:12:22 +02:00
antirez
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
antirez
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
antirez
e5b7a215e8 hand written code to turn a long long into a string -> very big speed win 2010-05-11 12:13:37 +02:00
antirez
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
antirez
dc05abde89 better use of encoding inforamtion in dictEncObjKeyCompare 2010-05-11 11:02:24 +02:00
antirez
1b67773229 CONFIG now can change appendfsync policy at run time 2010-05-10 20:56:54 +02:00
antirez
a34e0a2574 CONFIG command now supports hot modification of RDB saving parameters. 2010-05-10 18:50:55 +02:00
antirez
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
antirez
585af7e21c minor changes to improve code readability 2010-05-08 03:04:00 +02:00
antirez
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
antirez
59305dc7a9 DEBUG POPULATE command for fast creation of test databases 2010-05-07 16:33:47 +02:00
Pieter Noordhuis
0a6f3f0f8a swap arguments in blockClientOnSwappedKeys to be consistent 2010-05-07 14:33:34 +02:00
Pieter Noordhuis
3805e04f78 added function that preloads all keys needed to execute a MULTI/EXEC block 2010-05-07 14:22:21 +02:00
Pieter Noordhuis
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
Pieter Noordhuis
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
Pieter Noordhuis
6f07874621 extract preloading of multiple keys according to the command prototype to a separate function 2010-05-07 12:45:27 +02:00
Pieter Noordhuis
f3b52411db make append only filename configurable 2010-05-07 11:55:12 +02:00
Pieter Noordhuis
f4f06efccc don't load value from VM for EXISTS 2010-05-07 11:40:26 +02:00
antirez
a0e7e5f516 swap file name pid expansion removed. Not suited for mission critical software... 2010-05-07 09:36:37 +02:00
antirez
8b5bb414f1 Swap file is now locked 2010-05-07 09:32:26 +02:00
antirez
f424d5f398 Merge branch 'master' into aof-speedup 2010-05-06 23:19:46 +02:00
Pieter Noordhuis
4132ad8d49 log error and quit when the AOF contains an unfinished MULTI 2010-05-06 22:14:07 +02:00
Pieter Noordhuis
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
antirez
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
antirez
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
antirez
dd142b9cd7 New MONITOR output format with timestamp, every command in a single line, string representations 2010-04-29 18:43:51 +02:00
antirez
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
antirez
526d00a572 SETEX implemented 2010-04-23 19:07:33 +02:00
antirez
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
antirez
723240057a new units for bytes specification 2010-04-22 15:09:07 +02:00
antirez
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
antirez
dc4be23ec8 binary safe keys ready implementation of RANDOMKEYS 2010-04-21 11:31:29 +02:00
antirez
24df76987e Now that's the right 1.3.10 2010-04-21 10:31:48 +02:00
antirez
3bb225d66b Revert "fsync always now uses O_DIRECT on Linux"
This reverts commit 566c3c7a22.
2010-04-21 10:31:16 +02:00
antirez
d6fb4d5396 Revert "define __USE_GNU to get O_DIRECT"
This reverts commit 122c049834.
2010-04-21 10:31:08 +02:00
antirez
122c049834 define __USE_GNU to get O_DIRECT 2010-04-20 18:29:06 +02:00
antirez
566c3c7a22 fsync always now uses O_DIRECT on Linux 2010-04-20 18:25:30 +02:00
antirez
66c8853f9c Fix for MULTI/EXEC and Replication/AOF: now the block is correctly sent as MULTI/..writing operations../EXEC. Ok for slaves but more work needed for the AOF as it should be a write-all-or-nothing business 2010-04-19 18:30:11 +02:00
antirez
7ccd2d0a5f running the test using tcl8.5 directly instead of tclsh that too often it's a symlink to 8.4 2010-04-19 16:11:13 +02:00
antirez
08ee9b570f Fix for a SORT bug introduced with commit 16fa22f1, regression test added 2010-04-18 17:51:15 +02:00
antirez
177727542c Guru mediation -> meditation 2010-04-18 00:03:49 +02:00
Pieter Noordhuis
682c73e87e check eptr inline 2010-04-17 13:06:49 +02:00
Pieter Noordhuis
bd79a6bda0 refactor code that retrieves value from object or replies to client 2010-04-17 13:06:49 +02:00
antirez
4e8dbaf463 Merge branch 'hash' of git://github.com/pietern/redis 2010-04-17 12:54:49 +02:00
antirez
f83c6cb5eb redisAssert(0) => redisPanic("something meaningful") 2010-04-17 12:54:40 +02:00
Pieter Noordhuis
3f973463a7 make sure that the resulting value in hincrby is encoded when possible 2010-04-17 12:46:23 +02:00
Pieter Noordhuis
edc2f63ad9 increment dirty counter after hmset 2010-04-17 12:35:22 +02:00
Pieter Noordhuis
97224de7f9 strip tryObjectEncoding from hashSet, to enable the arguments being encoded in-place 2010-04-17 12:33:43 +02:00
antirez
c651fd9ee3 Added support for Guru Mediation, and raising a guru mediation if refCount <= 0 but decrRefCount is called against such an object 2010-04-17 11:35:05 +02:00
Pieter Noordhuis
55017f9da0 fix small error and memory leaks in SORT 2010-04-16 18:11:57 +02:00
antirez
b4eb9ccdcb Merge branch 'hash-refactor' of git://github.com/pietern/redis 2010-04-16 15:53:44 +02:00
Pieter Noordhuis
b6f07345c9 check object type in lookupKeyByPattern 2010-04-16 13:37:40 +02:00
Pieter Noordhuis
705dad386d make sortCommand aware that lookupKeyByPattern always increased the refcount of the returned value 2010-04-16 13:31:17 +02:00
Pieter Noordhuis
a3f3af860b revert 0c390a to stop using tricks with o->refcount 2010-04-16 13:20:12 +02:00
Pieter Noordhuis
c44d3b56df store the hash iterator on the heap instead of the stack 2010-04-16 12:48:48 +02:00
Pieter Noordhuis
c811bb381d drop inline directive 2010-04-16 12:13:41 +02:00
Pieter Noordhuis
feb8d7e6a6 rename hashReplace to hashSet 2010-04-16 12:12:50 +02:00
Konstantin Merenkov
d4dd6556c3 Don't set expire to keys with ttl=0, remove them immediately. 2010-04-15 21:29:46 +02:00
Pieter Noordhuis
16fa22f12b make sure that cmpobj is in decoded form when sorting by ALPHA (this solves edge case from previous commit where (!sortby && alpha) == 1) 2010-04-15 20:55:34 +02:00
Pieter Noordhuis
6d7d1370c3 enable hash dereference in SORT on BY and GET 2010-04-15 19:16:39 +02:00
Pieter Noordhuis
6e9e463f80 use shared replies for hset 2010-04-15 19:16:39 +02:00
Pieter Noordhuis
0c390abc69 set refcount of string objects retrieved from zipmaps to 0, so we don't have to touch the refcount of the objects inside dicts 2010-04-15 19:16:39 +02:00
Pieter Noordhuis
1f1c769518 added HSETNX 2010-04-15 19:16:39 +02:00
Pieter Noordhuis
7fb16bacae refactor of hash commands to use specialized api that abstracts zipmap and dict apis 2010-04-15 19:16:39 +02:00
Pieter Noordhuis
a71f072f73 move retrieval of long up to prevent an empty hash from being created 2010-04-15 19:16:38 +02:00
antirez
8ca3e9d10b Active rehashing 2010-04-15 18:07:57 +02:00
antirez
5413c40da7 Incrementally rehahsing hash table! Thanks to Derek Collison and Pieter Noordhuis for feedbacks/help 2010-04-15 11:59:13 +02:00
antirez
e6cca5dba6 Does not allow commands other than Pub/Sub commands when there is at least one pattern 2010-04-14 12:12:25 +02:00
Alex McHale
9a22de8270 Fixed a tiny memory leak when loading the configuration file. 2010-04-13 11:48:33 -05:00
antirez
b60bace9f9 Merge branch 'hmget' of git://github.com/pietern/redis 2010-04-13 18:30:55 +02:00
Alex McHale
bbe025e04b Validate numeric inputs. 2010-04-13 10:23:10 -05:00
Alex McHale
e0a62c7fdb Remove trailing whitespace. 2010-04-13 10:21:39 -05:00
antirez
4e27f26863 Now all the commands returning a multi bulk reply against non existing keys will return an empty multi bulk, not a nil one 2010-04-12 16:03:41 +02:00
Pieter Noordhuis
09aeb5790f implemented HMGET 2010-04-12 14:57:38 +02:00
Pieter Noordhuis
d33278d160 implemented HMSET 2010-04-12 12:29:37 +02:00
antirez
05df762175 Sharing of small integer objects: may save a lot of memory with datasets having many of this 2010-04-12 11:38:08 +02:00
antirez
10d91d7fb3 removed a no longer true assert in the VM code 2010-04-09 18:35:24 +02:00
antirez
bdcb92f273 shareobjects feautres killed - no gains most of the time, but VM complexities 2010-04-09 17:13:39 +02:00
antirez
78ebe4c88f use directly the real key object in VM I/O jobs to match by pointer, and to handle different keys with the same name living in different DBs, but being at the same moment in the IO job queues 2010-04-09 17:02:56 +02:00
antirez
884d4b39d4 Prevent hash table resize while there are active child processes in order to play well with copy on write 2010-04-08 20:08:51 +02:00
antirez
5727b9aa94 Merge branch 'issue_218' of git://github.com/pietern/redis 2010-04-08 16:07:26 +02:00
antirez
10c2baa50a -1 not needed... 2010-04-08 16:07:18 +02:00
antirez
6fcb180039 Skiplist theoretical fix 2010-04-08 15:56:21 +02:00
antirez
454eea7c44 Now when a child is terminated by a signal, the signal number is logged as well 2010-04-07 17:36:44 +02:00
Pieter Noordhuis
aa7c29340f use long long reply type for HINCRBY 2010-04-05 16:51:48 +02:00