Pieter Noordhuis
cc4f65fea4
Use safe dictionary iterator from KEYS
...
Every matched key in a KEYS call is checked for expiration. When the key
is set to expire, the call to `getExpire` will assert that the key also
exists in the main dictionary. This in turn causes a rehashing step to
be executed. Rehashing a dictionary when there is an iterator active may
result in the iterator emitting duplicate entries, or not emitting some
entries at all. By using a safe iterator, the rehash step is omitted.
2012-05-01 10:52:03 +02:00
antirez
4cb8bb2952
Never used function stringObjectEqualsMs() removed.
2012-04-07 02:10:48 +02:00
antirez
70381bbf82
expireGenericCommand(): better variable names and a top-comment that describes the function's behavior.
2012-04-05 15:52:08 +02:00
Premysl Hruby
c6bf4a0034
for (p)expireat use absolute time, without double recomputation
2012-04-05 15:46:21 +02:00
Premysl Hruby
d48d1309c6
fix mstime() ommited while comparing if key is already expired
2012-04-05 15:46:15 +02:00
Premysl Hruby
b57dbdbba3
remove disk-store related comments
2012-03-27 18:46:51 +02:00
Premysl Hruby
024f213b12
fix time() instead of mstime() in expireIfNeeded
2012-03-27 17:31:21 +02:00
antirez
355f859134
Use less memory when emitting the protocol, by using more shared objects for commonly emitted parts of the protocol.
2012-02-04 08:58:37 +01:00
antirez
b80b1c5914
Only incremnet stats for key miss/hit when the key is semantically accessed in read-only.
2012-02-01 21:51:20 +01:00
antirez
89f6f6abcf
setKey(): call the higher level wrapper setModifiedKey() instead of touchWatchedKey() even if currently they are exactly the same.
2012-01-30 10:27:50 +01:00
antirez
f48cd4b90c
some RDB server struct fields renamed.
2011-12-21 12:22:13 +01:00
antirez
ff2145adac
more AOF server struct fields renamed.
2011-12-21 12:17:02 +01:00
antirez
e394114d95
AOF refactoring, now with three states: ON, OFF, WAIT_REWRITE.
2011-12-21 10:31:34 +01:00
antirez
4ab8695d53
New script timeout semantics and SCRIPT KILL implemented. SHUTDOWN NOSAVE and SHUTDOWN SAVE implemented.
2011-11-18 14:10:48 +01:00
antirez
12d293ca6e
high resolution expires API modified to use separated commands. AOF transation to PEXPIREAT of all the expire-style commands fixed.
2011-11-10 17:52:02 +01:00
antirez
52d46855d9
TTL, EXPIRE and EXPIREAT now support the milliseconds input/output form
2011-11-09 18:05:35 +01:00
antirez
7dcc10b65e
Initial support for key expire times with millisecond resolution. RDB version is now 3, new opcoded added for high resolution times. Redis is still able to correctly load RDB version 2. Tests passing but still a work in progress. API to specify milliseconds expires still missing, but the precision of normal expires is now already improved and working.
2011-11-09 16:51:19 +01:00
antirez
c0ba9ebe13
dict.c API names modified to be more coincise and consistent.
2011-11-08 17:07:55 +01:00
antirez
13cd1515f9
FLUSHALL now prevents rdbSave() from resetting the dirty counter, so that the command will get replicated and put inside the AOF. This fixes issue #142
2011-10-17 10:31:47 +02:00
antirez
42a6fcd6c5
FLUSHALL will only perform a blocking SAVE if RDB persistence is configured.
2011-10-17 10:31:34 +02:00
antirez
4ab18a3331
Fix for bug #128 about the RENAME command.
2011-10-10 15:21:19 +02:00
antirez
eab0e26e03
replaced redisAssert() with redisAssertWithInfo() in a shitload of places.
2011-10-04 18:43:03 +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
c9d0c3623a
diskstore removed
2011-06-25 12:22:03 +02:00
antirez
f85cd526c1
DB API refactoring. The changes were designed together with Pieter Noordhuis.
2011-06-20 16:42:16 +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
484354ff95
CLUSTER GETKEYSINSLOT implemented
2011-04-29 16:17:58 +02:00
antirez
c772d9c6e7
take a hashslot -> keys index, will be used for cluster rehasing
2011-04-28 19:00:33 +02:00
antirez
ecc9109434
Cluster branch merged to unstable.
2011-03-29 17:51:15 +02:00
antirez
4b61ca460c
fixed a bug in RENAME getKeys() function
2011-03-28 18:46:22 +02:00
antirez
6e1b9b58ec
bug fixed in zunionstore specific getKeys() implementation
2011-03-28 18:21:06 +02:00
antirez
b4b5144694
Fixes to the new preloading / key discovery APIs
2011-03-28 17:54:42 +02:00
antirez
9791f0f8ce
new preloading implemented, still EXEC not handled correctly, everything to test
2011-03-23 18:09:17 +01:00
antirez
15db4aa006
TTL command fixed to work reliably with diskstore
2011-03-04 15:49:01 +01:00
antirez
3a73be7524
master-slave replication fixed, it was not listing any key using KEYS command in the slave.
2011-01-14 09:53:57 +01:00
antirez
69bfffb4a7
test adapted to run with diskstore, and a few bugs fixed
2011-01-09 18:25:34 +01:00
antirez
36c17a53b6
source reshaped a bit to play well with a bgsaving thread, still work to do, does not compile.
2011-01-07 18:15:14 +01:00
antirez
5ab7bbfc27
fixed logging level for debugging message
2011-01-03 17:40:10 +01:00
antirez
5d46e370b7
diskstore more fixes
2011-01-03 17:18:37 +01:00
antirez
c15a3887e0
diskstore bug fixing and negative cache proper implementation
2011-01-03 10:47:39 +01:00
antirez
120b9ba8f8
FLUSHALL / FLUSHDB for diskstore implemented
2011-01-03 10:17:39 +01:00
antirez
4942145d72
fixed a bug in diskstore
2011-01-02 21:39:17 +01:00
antirez
9a3730289f
blocking load fixed with the new design
2011-01-01 21:39:48 +01:00
antirez
3be00d7ed6
implemented a different approach to IO scheduling, so object->storage is no longer used, instead there is a queue and hash table of IO tasks to process, and it is always possible to know what are the scheduled and acrtive IO operations against every single key.
2011-01-01 21:35:56 +01:00
antirez
aa81e4d5f4
minor changes to doc and comments
2010-12-31 18:23:31 +01:00
antirez
d934e1e85b
negative caching implemented
2010-12-31 17:32:59 +01:00
antirez
a440ecf0d3
major bug and a dead lock fixed
2010-12-31 14:30:24 +01:00
antirez
ad01a25553
blocking load of keys on lookup -- nor tested, nor finished
2010-12-31 00:18:17 +01:00
antirez
4e941ecacb
short but important comment added
2010-12-30 19:20:23 +01:00