antirez
2f39a3e87c
RDB files now embed a crc64 checksum. Version of RDB bumped to 5.
2012-04-09 22:40:41 +02:00
antirez
38b3cb4770
Fixed compilation of new rio.c changes (typos and so forth.)
2012-04-09 12:36:44 +02:00
antirez
ec83eacbde
Add checksum computation to rio.c
2012-04-09 12:33:09 +02:00
antirez
04c1bc9106
For coverage testing use exit() instead of _exit() when termiating saving children.
2012-04-07 12:11:23 +02:00
antirez
400fcb9e04
Removed dead code: function rdbSaveTime() is no longer used since RDB now saves expires in milliseconds.
2012-04-07 02:03:29 +02:00
antirez
4d44b997ce
Write RDB magic using a REDIS_RDB_VERSION define that is defined inside rdb.h
2012-03-31 17:08:40 +02:00
antirez
83cfdfba4b
Fixed memory leak in hash loading.
2012-03-23 20:24:34 +01:00
antirez
877f76610d
RDB hashes loading, fixed another bug in the loading of HT-encoded hashes: when the hash entry is too big for ziplist, add the field, then convert. The code used to break before the new entry was inserted, resulting into missing fields in the loaded Hash object.
2012-03-13 11:00:18 +01:00
antirez
3d03cba03b
RDB hashes loading fixed removing the assertion that failed every time an HT-encoded hash was loaded.
2012-03-13 09:49:11 +01:00
antirez
f32d32de59
RDB version is no 4, because small hashes are now encoded as ziplists, so older versions of Redis will not understand this format.
2012-03-10 12:35:31 +01:00
antirez
afadac1728
Merge conflicts resolved.
2012-03-09 22:07:45 +01:00
antirez
a380c4ad9c
Refuse writes if can't persist on disk.
...
Redis now refuses accepting write queries if RDB persistence is
configured, but RDB snapshots can't be generated for some reason.
The status of the latest background save operation is now exposed
in the INFO output as well. This fixes issue #90 .
2012-03-07 13:05:53 +01:00
Pieter Noordhuis
cf230ceee6
Don't expire keys when loading an RDB after a SYNC
...
The cron is responsible for expiring keys. When keys are expired at
load time, it is possible that the snapshot of a master node gets
modified. This can in turn lead to inconsistencies in the data set.
A more concrete example of this behavior follows. A user reported a
slave that would show an monotonically increase input buffer length,
shortly after completing a SYNC. Also, `INFO` output showed a single
blocked client, which could only be the master link. Investigation
showed that indeed the `BRPOP` command was fed by the master. This
command can only end up in the stream of write operations when it did
NOT block, and effectively executed `RPOP`. However, when the key
involved in the `BRPOP` is expired BEFORE the command is executed, the
client executing it will block. The client in this case, is the master
link.
2012-02-16 17:21:13 +01:00
Pieter Noordhuis
a40390001d
Test that zipmap from RDB is correctly converted
2012-01-25 13:28:11 -08:00
Pieter Noordhuis
ae204e5428
Encode small hashes with a ziplist
2012-01-02 22:14:10 -08:00
antirez
4aa527ba09
some RDB server struct fields renamed.
2011-12-21 12:22:13 +01:00
antirez
0bb9c8b70d
more AOF server struct fields renamed.
2011-12-21 12:17:02 +01:00
antirez
c93ee2bcad
Fixed issues with expire introduced with latest millisecond resolution feature. Many time_t were not converted to long long, and one time() call was not replaced with mstime().
2011-11-12 01:04:27 +01:00
antirez
11872466e3
Fixed a few typos
2011-11-09 21:59:27 +01:00
antirez
d70e1d465c
Fixed bug breaking rdbSaveMillisecondTime() in 32 bit systems. Thanks to @anydot (Přemysl Hrubý)
2011-11-09 18:47:48 +01:00
antirez
027876589d
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
d6c3b3004e
dict.c API names modified to be more coincise and consistent.
2011-11-08 17:07:55 +01:00
antirez
e4bc5b7339
A past commit removed the inclusion of redis.h from rdb.c, completely breaking 32 bit builds under Linux.
2011-10-23 10:42:16 +02:00
antirez
0a5ca33f90
Exit with Fatal error at startup if the RDB file signature or version is wrong.
...
Ref: issue #103
2011-10-14 16:59:38 +02:00
antirez
357f49db2f
replaced redisAssert() with redisAssertWithInfo() in a shitload of places.
2011-10-04 18:43:03 +02:00
antirez
3ad12623d4
rioInitWithFile nad rioInitWithBuffer functions now take a rio structure pointer to avoid copying a structure to return value to the caller.
2011-09-22 16:00:40 +02:00
antirez
dbdf74ddfd
merge conflicts resolved
2011-09-22 15:15:26 +02:00
antirez
59f09141f5
diskstore removed
2011-06-25 12:22:03 +02:00
antirez
0b00199553
DB API refactoring. The changes were designed together with Pieter Noordhuis.
2011-06-20 16:42:16 +02:00
antirez
d537a7b296
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
2d138989e3
minor code aesthetic change
2011-06-10 18:13:57 +02:00
antirez
0798b88e34
automatic AOF rewrite first implementation. Still to be tested.
2011-06-10 12:39:23 +02:00
antirez
00b2ab2c8d
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
Pieter Noordhuis
9a22de6ad0
Fix up rdbWriteRaw to return number of bytes written
2011-05-14 12:47:42 +02:00
Pieter Noordhuis
15788d3c5a
More rioRead()
2011-05-14 12:32:50 +02:00
Pieter Noordhuis
78feade83d
Move rdbLoad* to top; update comments
2011-05-13 23:24:19 +02:00
Pieter Noordhuis
43b1feb2f0
Make RDB types/opcodes explicit; load/save object type
2011-05-13 22:14:39 +02:00
Pieter Noordhuis
ce9195ad16
Abstract file/buffer I/O to support in-memory serialization
2011-05-13 17:31:00 +02:00
antirez
4e6eb6cb28
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
Pieter Noordhuis
26d798bbf3
Update target encoding for sorted set from rdb
2011-04-06 16:38:34 +02:00
Pieter Noordhuis
a6ca3077d4
Test for ENCODING_SKIPLIST instead of ENCODING_RAW
2011-04-06 16:17:07 +02:00
Pieter Noordhuis
e82797ebac
Typo
2011-04-06 16:15:15 +02:00
Pieter Noordhuis
b254ad427c
Merge branch 'unstable' into unstable-zset
...
Conflicts:
src/object.c
2011-04-06 16:15:01 +02:00
antirez
b2b9d54320
Cluster branch merged to unstable.
2011-03-29 17:51:15 +02:00
Pieter Noordhuis
940daef2c4
Encode sorted set after loading from dump
2011-03-10 17:50:13 +01:00
Pieter Noordhuis
855bf7b0f8
Persistence code for encoded sorted sets
2011-03-09 13:16:38 +01:00
antirez
844510446a
fix type in rdbSaveKeyValuePair() when saving an intset. Don't merge this commit into 2.2 as will not apply cleanly.
2011-02-28 17:55:05 +01:00
antirez
547eead3ee
direct saving of specially encoded types implemented for lists and sets too
2011-02-28 17:53:47 +01:00
antirez
eea47938d3
define name typo fixed
2011-02-28 17:36:12 +01:00
antirez
7efbda2d64
save ziplist encoded type as a different type id. Done as separated commit since this is the part that will not merge cleanly in 2.2
2011-02-28 17:06:09 +01:00