Commit Graph

829 Commits

Author SHA1 Message Date
Hampus Wessman
64f201c2aa Fix crash when pipelining several blocking commands. 2011-07-28 13:50:44 +02:00
Pieter Noordhuis
bb831c313c Fix adding bulk reply when getcwd fails 2011-07-27 16:22:28 +02:00
Pieter Noordhuis
4d6bf65c42 Wait for Lua to be built before linking redis-server 2011-07-27 14:47:02 +02:00
Pieter Noordhuis
2d7162bb1d HDEL: Abort deleting fields when hash is removed 2011-07-27 12:29:40 +02:00
antirez
80e87a461a Close the listening sockets. Apparently this allows faster restarts. 2011-07-22 12:11:40 +02:00
antirez
adae85cdae prepareForShutdown() fixed for correctness regarding what to do with AOF and RDB persistence on exit. 2011-07-22 11:52:21 +02:00
antirez
f790bd028c Added a 'runtest' script that is responsible to check if Tcl is available and run the test. This is invoked from Makefile as well. 2011-07-15 17:20:57 +02:00
antirez
319bb48c01 top level Makefile now just a proxy. Doing make clean inside src now does a full clean including deps, not just Redis source. Thanks to Pieter for the top level Makefile proxy trick. 2011-07-13 19:15:22 +02:00
antirez
4dd444bb4a Replicate EVALSHA as EVAL taking a dictionary of sha1 -> script source code. 2011-07-13 15:38:03 +02:00
antirez
70ecddc9f4 scripting.txt file removed, content merged into the TODO file 2011-07-13 12:04:02 +02:00
antirez
331bf3292f when building redis-server use LINK and not CC as prefix in the output 2011-07-12 12:58:32 +02:00
antirez
5f54619494 Fix for a typo left after merging. 2011-07-12 12:43:05 +02:00
antirez
0681c5ad84 master branch merged into scripting. 2011-07-12 12:39:16 +02:00
antirez
e6fcb5b30d make test depends on redis-check-aof as well. 2011-07-11 14:48:45 +02:00
antirez
6b91a11e3e removed --file argument from test invocation inside Makefile 2011-07-11 13:46:09 +02:00
antirez
52c863ddac use tclsh8.5 not only in which but also in the actual test execution. 2011-07-11 11:18:46 +02:00
antirez
d4edba6f43 explicitly use tclsh8.5 to run the test 2011-07-11 11:17:05 +02:00
antirez
09e2d9eeba Take a pointer to the relevant entry of the command table in the client structure. This is generally a more sounding design, simplifies a few functions prototype, and as a side effect fixes a bug related to the conversion of EXPIRE -1 to DEL: before of this fix Redis tried to convert it into an EXPIREAT in the AOF code, regardless of our rewrite of the command. 2011-07-08 12:59:30 +02:00
antirez
812ecc8b10 don't process EXPIRE with negative TTL or EXPIREAT with time in the past if we are a slave too (see http://groups.google.com/group/redis-db/browse_thread/thread/5a931fefb88b16d5). Also propagate it as DEL. 2011-07-07 16:24:37 +02:00
Hampus Wessman
040b0ade7d Don't expire keys while loading AOF.
They will be expired (and a DEL will be logged) after the loading is done
instead.
2011-07-07 16:08:30 +02:00
antirez
cabe03eb75 more valgrind friendly test 2011-07-06 15:22:00 +02:00
antirez
5a9dd97c7c childrens -> children in INFO output field names. This is a backward incompatible change, but really a minimal one. 2011-07-02 10:52:28 +02:00
antirez
6504634019 no more allocation stats info in INFO, useless now that we have jemalloc. 2011-07-02 10:31:16 +02:00
antirez
2cb6828480 Added an unique ID field to every slow log entry. 2011-06-30 17:36:15 +02:00
antirez
de32c37c06 More redis.conf self-documentation. Now even queries that took exactly server.slow_log_slower_than are logged, as this is not exact but is more intuitive for people, and a value of 0 will force every query to be logged. 2011-06-30 15:54:05 +02:00
antirez
35a6044140 slow log configuration implemented 2011-06-30 15:47:15 +02:00
antirez
404345d8e5 DEUBG SLEEP implemented 2011-06-30 13:31:44 +02:00
antirez
daa70b1798 First implementation of the slow log feature 2011-06-30 13:27:32 +02:00
antirez
ef67a2fc3c Partial fix for a problem with AOF and BRPOP. We have at least a single evidence of an AOF that ended with a BRPOP call against an empty list, causing later issues at run time. Now the problem is detected while loading the AOF at startup, even if it is still to understand how the corrupted AOF was generated. 2011-06-29 16:11:23 +02:00
antirez
994ed2bc55 unstable merge conflicts resolved 2011-06-25 12:29:24 +02:00
antirez
d5b36c5114 Merge remote branch 'origin/unstable' into unstable 2011-06-25 12:22:59 +02:00
antirez
c9d0c3623a diskstore removed 2011-06-25 12:22:03 +02:00
Salvatore Sanfilippo
a004de0f15 Merge pull request #63 from djanowski/tcl
Add warning when `tcl` is not available to run tests
2011-06-24 09:59:37 -07:00
Damian Janowski
b3bc4452d2 Avoid bug reports when Tcl is not installed. 2011-06-24 13:56:06 -03:00
antirez
c1c9d551da Fix for bug 561 and other related problems 2011-06-20 17:19:36 +02:00
antirez
634bae94fb useless call removed, thanks to Pieter for spotting this 2011-06-20 16:42:37 +02:00
antirez
f85cd526c1 DB API refactoring. The changes were designed together with Pieter Noordhuis. 2011-06-20 16:42:16 +02:00
antirez
3e2a0bf44a Makefile deps updated 2011-06-20 11:58:54 +02:00
antirez
e93d36a638 It is now possible to build with: make 32bit USE_JEMALLOC=yes 2011-06-20 11:54:57 +02:00
antirez
7d9ba15669 Added -ldl when linking against jemalloc, needed on Linux 2011-06-20 11:54:35 +02:00
antirez
fec5a664f8 Fixed INFO implementation to use the new allocator name define 2011-06-20 11:54:08 +02:00
antirez
9e62dc17da Makefile modified to build with jemalloc 2011-06-20 11:52:15 +02:00
antirez
16cd4acdee ZMALLOC related stuff removed from config.h. They are now defined in zmalloc.h 2011-06-20 11:35:29 +02:00
antirez
29d04257b0 forward-ported changes in zmalloc.c/h to support jemalloc build 2011-06-20 11:34:04 +02:00
antirez
07486df6fe new INFO filed master_link_down_since_seconds 2011-06-17 16:16:46 +02:00
antirez
591f29e0f5 Use a safe iterator while saving the DB, since the getExpire() function will access the iterating dictionary. 2011-06-17 15:41:22 +02:00
antirez
0d1650f8a9 Updated to unstable 2011-06-14 18:06:39 +02:00
Hampus Wessman
0b17517c7c Fix automatic rewrite starting too early.
Slight adjustment in growth calculation.
2011-06-12 07:27:01 +02:00
antirez
9e40bce3fa different message on BGREWRITEAOF when it is just scheduled and not started. 2011-06-10 18:35:16 +02:00
antirez
2c6cc5e502 minor code aesthetic change 2011-06-10 18:13:57 +02:00
antirez
19b46c9a09 Make sure an automatic rewrite only gets triggered when no other child is in execution. 2011-06-10 15:15:29 +02:00
antirez
0ec932208e CONFIG SET/GET support for new automatic AOF rewrite parameters 2011-06-10 15:14:10 +02:00
antirez
c66bf1fa32 correctly set AOF base size field in server structure 2011-06-10 14:56:45 +02:00
antirez
d630abcdaf Added new INFO fields related to the new AOF auto rewrite feature 2011-06-10 14:52:47 +02:00
antirez
4f948300bc Fixed bug in AOF rewrite not working because of integer overflow 2011-06-10 14:47:12 +02:00
antirez
73b9e8aedf debugging printf removed 2011-06-10 14:44:06 +02:00
antirez
4ff34b6adb AOF auto rewrite percentage option parsing fixed 2011-06-10 14:43:11 +02:00
antirez
50528f0eea Merge remote branch 'pietern/unstable-bench' into unstable 2011-06-10 14:28:14 +02:00
antirez
e3d27a7261 Avoid division by zero issues in the automatically triggered AOF rewrite feature. 2011-06-10 14:25:27 +02:00
antirez
e087b6d7a1 Merge remote branch 'origin/unstable' into unstable 2011-06-10 12:39:40 +02:00
antirez
b333e23997 automatic AOF rewrite first implementation. Still to be tested. 2011-06-10 12:39:23 +02:00
Hampus Wessman
db6cea11c4 Fix Makefile colors.
echo with escape sequences isn't portable. Use printf instead.
2011-06-09 16:38:18 +02:00
antirez
45029d37cb Two fixes for replication: Slave performs the AOF rewrite at the right point. Non blocking connect also uses readable handler as with old Linux kernels like 2.6.18 on connection refused the writable even is not fired (kernel bug). 2011-06-09 15:39:12 +02:00
antirez
73e718675b Better colorized Makefile implementation, inspired by git makefile 2011-06-08 17:09:18 +02:00
antirez
936c4ab64b touch less pages in decrRefCount 2011-06-03 17:33:23 +02:00
Pieter Noordhuis
294cd536e0 There is no debug mode in benchmark tool 2011-06-01 09:22:19 -07:00
Pieter Noordhuis
39bf440243 Provide custom command to benchmark against via args 2011-06-01 09:22:19 -07:00
Pieter Noordhuis
fc05e8c850 More const's in redis-benchmark.c 2011-06-01 09:22:19 -07:00
antirez
3f7b2b1f30 Variadic ZREM 2011-05-31 20:15:18 +02:00
antirez
3738ff5f32 Fix for the variadic version of SREM. Regression test added. 2011-05-31 20:14:29 +02:00
antirez
ef231a7c56 Variadic ZADD 2011-05-31 17:47:34 +02:00
Pieter Noordhuis
632e4c09ac Make replication faster (biggest gain for small number of slaves) 2011-05-30 12:45:07 +02:00
antirez
615e414c5d INFO now contains the time (in usecs) needed to fork() in order to persist. The info is available in the stats section of INFO. 2011-05-29 15:17:29 +02:00
antirez
43222f253a Merge remote branch 'pietern/unstable-replnonblock' into unstable 2011-05-29 14:26:01 +02:00
antirez
18f63d8d51 redis-cli: -i (interval) implemented, to wait the specified number of seconds (decimal digits are allowed) between commands. 2011-05-28 15:41:08 +02:00
antirez
442c748d84 redis-cli: Use the repetiton prefix after a reconnection. 2011-05-28 15:25:48 +02:00
antirez
4d19e3443c redis-cli in REPL mode is now able to send the same command multiple times, prefixing the command with a number as in "10 ping" 2011-05-28 15:13:55 +02:00
antirez
a45f9a1a1d redis-cli no longer aborts in repl-mode on error, and retries to reconncet with the server at every command issued if the state is not connected. Also the prompt shows the server we are connected to. 2011-05-28 15:04:12 +02:00
antirez
3bb818df40 Make sure error and status replies emitted by Lua scripts can never have more than a newline, otherwise it is a protocol violation and clients will desync. 2011-05-25 12:32:50 +02:00
antirez
e927a24610 Fix for wrong error level detection in redis.log() 2011-05-25 12:32:50 +02:00
antirez
288f811fea All commands exported by Redis to Lua scripts are now inside the redis table. Implemented redis.log() function. 2011-05-25 12:32:50 +02:00
antirez
7229d60d03 EVALSHA implemented 2011-05-25 12:32:49 +02:00
antirez
82c6b8257a Now it is possible to return multi bulks of multi bulks from Lua, just returning tables of tables. The new conversion of the Null bulk and multi bulk type is the Lua false type. 2011-05-25 12:32:49 +02:00
antirez
da386cdf33 for performance reasons only set the debug hook if the time limit is enabled. 2011-05-25 12:32:49 +02:00
antirez
87c219243c Lua max exec time fixes: redisLog() to log the event moved before the lua_error() call that does a long jump so never returns. Aesthetic fixes in error message. 2011-05-25 12:32:49 +02:00
antirez
bcc72bc381 call the Lua hook with minor frequency. It is already enough to call it every 100000 istructions for near millisecond precision. 2011-05-25 12:32:48 +02:00
antirez
eeffcf380f Lua scripts max execution time 2011-05-25 12:32:48 +02:00
antirez
8c3402dffa Lua memory usage in INFO 2011-05-25 12:32:48 +02:00
antirez
40531be0e3 call lua_gc() for incremental garbage collection. Likely there is to tune this at some point. 2011-05-25 12:32:48 +02:00
antirez
c2a7dd85ae Lua scripting: Honor SELECT command in both ways 2011-05-25 12:32:47 +02:00
antirez
09ab5591fa Fixed a problem in the script engine that crashed the server if the reply was not stored just int the static buffer of the client structure. 2011-05-25 12:32:47 +02:00
antirez
0d916763af Status replies converted in a special way like errors in the Lua <-> Redis conversion code. 2011-05-25 12:32:47 +02:00
antirez
e8092bf601 Scripting doc updated 2011-05-25 12:32:47 +02:00
antirez
497fc8775f Eval command table fixed to return the keys arguments of the command. We use zunionInterGetKeys() as it ZUNION/ZINTER have exactly the same semantic with a prefixed number of keys followed by key names. 2011-05-25 12:32:47 +02:00
antirez
171ef6813d TODO updated 2011-05-25 12:32:46 +02:00
antirez
379789cc52 Fixed nul bulk parsing in Redis protocol to Lua type convertion. Check for bad Lua types as arguements of the redis() Lua command. 2011-05-25 12:32:46 +02:00
antirez
67e829dce5 Scripting todo list updated 2011-05-25 12:32:46 +02:00
antirez
10a6da7af4 Multi bulk to Lua table now working 2011-05-25 12:32:46 +02:00
antirez
3791000f15 Fixed arity detection of Redis command executed from Lua script. Error reporting from Lua fixed. More work on the Redis reply to lua conversion code. 2011-05-25 12:32:45 +02:00
antirez
532e0f5ded full conversion from Lua return value to redis reply. Partial conversion from Redis reply to Lua type. 2011-05-25 12:32:45 +02:00
antirez
4ae5b5e163 pupulate the Lua global tables KEYS and ARGV before executing the script 2011-05-25 12:32:45 +02:00
antirez
00b7541b21 function to access to Redis command from Lua renamed from r() to redis() 2011-05-25 12:32:45 +02:00
antirez
7b72272790 when creating not connected clients do not add them into the clients list, otherwise they will be subject to timeouts and other stuff 2011-05-25 12:32:44 +02:00
antirez
7156f43c04 Correctly glue the reply buffer. For now returned as it is to Lua, but will be converted into Lua native type later. 2011-05-25 12:32:44 +02:00
antirez
0f1d64ca57 Lua call of Redis command work in progress: sorry I have to go to the cinema to watch the Source Code movie 2011-05-25 12:32:44 +02:00
antirez
7585836e6e Lua function creation on EVAL, basic Lua return type to Redis protocol convertion done. 2011-05-25 12:32:43 +02:00
antirez
21d3294c70 makefile adapted to link against lua lib and to pass the 32bit flag to Lua building system 2011-05-25 12:32:43 +02:00
antirez
efc3408748 Fix for Pub/Sub system, introduced in Redis 2.2.6 with the new copy-on-write safe iterator semantics. In the hope this is the last bug I introduced this way. 2011-05-25 12:32:15 +02:00
antirez
d200342ac2 Fixed typo in comment 2011-05-24 10:35:58 +02:00
Pieter Noordhuis
890a2ed989 Configurable synchronous I/O timeout 2011-05-22 12:58:18 +02:00
Pieter Noordhuis
b075621fb7 Minor changes in non-blocking repl. connect 2011-05-22 12:51:09 +02:00
Pieter Noordhuis
a330913999 Non-blocking connect with master 2011-05-19 18:54:57 +02:00
antirez
521ddcce14 Fix for ZUNIONSTORE bug when there is an empty set among input sets. Regression test added. 2011-05-19 17:58:52 +02:00
antirez
330c90b018 fmacros in utils.c to avoid warning about strcasecmp() 2011-05-16 17:20:27 +02:00
antirez
cb16b6c389 Fixed misuse of the new iterator semantics in ZUNIONSTORE 2011-05-15 17:28:06 +02:00
antirez
d070abe44c Fix for a possible bug related to ZINTER/UNIONSTORE called with the same source set more than one time. 2011-05-15 15:33:01 +02:00
antirez
dd1eefa4f3 Fixed SINTER[STORE] problem related to the new copy on write safe iterator 2011-05-15 12:18:00 +02:00
Pieter Noordhuis
041d8e2a5c Fix up rdbWriteRaw to return number of bytes written 2011-05-14 12:47:42 +02:00
Pieter Noordhuis
7271198cf0 Use rio.h functions in aof.c 2011-05-14 12:36:22 +02:00
Pieter Noordhuis
fd535c5862 More rioRead() 2011-05-14 12:32:50 +02:00
Pieter Noordhuis
221782ccc6 Move rdbLoad* to top; update comments 2011-05-13 23:24:19 +02:00
Pieter Noordhuis
f1d8e4968e Make RDB types/opcodes explicit; load/save object type 2011-05-13 22:14:39 +02:00
Pieter Noordhuis
2e4b0e7727 Abstract file/buffer I/O to support in-memory serialization 2011-05-13 17:31:00 +02:00
antirez
defb5f66a0 removed assert causing an illegal memory access. This was responsible of crashes during BLPOP and other list blocking operations. 2011-05-11 09:50:57 +02:00
antirez
6b52ad87c0 RDB version signature bumped to 2, now that direct saving of specially encoded types is implemented 2.2 instances are no longer able to read rdb files produced by 2.4 or unstable. 2011-05-10 11:31:37 +02:00
antirez
4b53e7365c Introduced a safe iterator interface that can be used to iterate while accessing the dictionary at the same time. Now the default interface is consireded unsafe and should be used only with dictNext() 2011-05-10 10:15:50 +02:00
antirez
f13cb0d9de DEBUG DIGEST additional lookup needed for VM removed from unstable branch that does not have VM at all 2011-05-10 10:08:01 +02:00
antirez
6901fe7729 Useless statement removed 2011-05-10 10:07:04 +02:00
antirez
df541beae3 when Redis fails accepting a new connection reports the error at WARNING and not VERBOSE error level. Thanks to offby1 for proposing this in the Redis mailing list. #backport-candidate 2011-05-07 11:47:34 +02:00
antirez
0caa750748 clear importing/exporing state when appropriate on SETSLOT or ADDSLOTS cluster commands 2011-05-06 16:08:10 +02:00
antirez
f9cbdcb1a6 CLUSTER SETSLOT command and some refactoring of the cluster command 2011-05-06 15:44:09 +02:00
antirez
f384df8302 CLUSTER DELSLOTS 2011-05-06 13:38:27 +02:00
antirez
a7b058dae6 Fixed semantics of CLUSTER SETSLOT, SELECT now only denied in cluster mode if selected DB is not 0 so that MIGRATE still works well. 2011-05-05 18:10:02 +02:00
antirez
46834808fe CLUSTER SETSLOT STABLE fixed 2011-05-05 17:56:12 +02:00
antirez
4763ecc9ad missing return caused protocol desync in CLUSTER SETSLOT 2011-05-05 17:52:19 +02:00
antirez
0276e5545c Fixed problem in cluster redirection due to a stupid typo 2011-05-05 17:50:14 +02:00
Pieter Noordhuis
3edbcab95a Extra tests for string2ll 2011-05-05 16:32:22 +02:00
Pieter Noordhuis
c040cbd625 Check seplen and len before malloc'ing "tokens" 2011-05-05 16:32:22 +02:00
Pieter Noordhuis
bf9fd5ffa2 Check for \n after finding \r 2011-05-05 16:32:22 +02:00
Pieter Noordhuis
32f99c5128 Show memory allocator in INFO output 2011-05-05 16:32:18 +02:00
Pieter Noordhuis
edf23aff0e Use string2ll in ziplist code (faster) 2011-05-05 16:26:51 +02:00
Pieter Noordhuis
5d08193126 Tests for string2ll; move isObject* to object.c 2011-05-05 16:26:50 +02:00
Pieter Noordhuis
af0e51f2e1 Move code 2011-05-05 16:25:48 +02:00
Pieter Noordhuis
5282562117 More allocators 2011-05-05 16:25:48 +02:00
Pieter Noordhuis
ded614f803 Inline sdslen and sdsavail (thanks to @bitbckt) 2011-05-05 16:25:48 +02:00
Pieter Noordhuis
5af302011c Use custom string2ll and strchr 2011-05-05 16:25:48 +02:00
Pieter Noordhuis
b7d3bf5157 Fix ziplist regression and update stresser 2011-05-05 15:16:51 +02:00
antirez
eda827f8b7 cluster import/export of hash slots implemented in the query redirection engine 2011-05-05 11:13:21 +02:00
antirez
a5dce40726 if /dev/urandom is not available use rand() to get a random node name 2011-05-04 10:30:22 +02:00
antirez
35845afba0 Better pretty printed makefile output 2011-05-04 10:17:05 +02:00