Commit graph

73 commits

Author SHA1 Message Date
Roman Gershman
bb7b205bff Switch to using absl flags 2022-05-30 06:45:09 +03:00
Roman Gershman
1490eb5c3c Implement parsing of replication stream from redis 2022-05-28 21:24:07 +03:00
Roman Gershman
166ca73559 Rdb save opens file for writes in direct mode. More work on dashtable docs 2022-05-22 22:34:05 +03:00
Roman Gershman
543979875a Fixes #37. 2022-05-21 07:09:46 +03:00
Roman Gershman
343dd22ce5 Fixes #21.
1. Snapshot now passed db index and rdb save handles by inserting select opcodes when needed.
2. Fix few more bugs in CVCUponInsert.
3. Save lua scripts.
2022-05-20 23:25:41 +03:00
Roman Gershman
599c786c16 This CR fixes #36.
1. Fix a bug in dash table related to snapshotting.
2. Rewrite GlobalState code and make state transitions atomic and well defined.
3. Fix Save/Flush semantics by capturing snapshotted tables together with the snapshot.
2022-05-20 12:35:28 +03:00
Roman Gershman
30cf9541c2 Add reference counting to DbTable. The will help us to implement flushing the tables in parallel with snapshotting 2022-05-17 14:21:28 +03:00
Roman Gershman
797c8121b1 Limit table growth according to maxmemory.
1. Make EngineShardSet to be a process singleton instead of a variable passed everywhere.
2. Implement a heuristic of updating free memory per shard.
3. Make sure that SET command returns OOM when a database reaches its limits.
2022-05-16 08:19:32 +03:00
Roman Gershman
370d4cd0ee support lua scripts loading 2022-04-30 22:21:05 +03:00
Roman Gershman
ec64f4e9e1 Simplify testing framework. Run(...) now returns RespExpr instead of vector of RespExpr 2022-04-22 10:31:51 +03:00
Roman Gershman
6e5de7ac59 Passover cleanups.
1. Add ttl with reload test.
2. Removed several LOG(FATAL) messages and replaced them with error propagation.
3. Added scan test for all the options.
2022-04-13 11:52:59 +03:00
Roman Gershman
997d2dcb69 more work on rdb load.
1. Added support of loading of compressed strings.
2. Verified we load expiry info.
3. Extended supported expiry period to 4 years (previously I set 1 year).
2022-04-13 10:50:19 +03:00
Roman Gershman
cafabce161 Support loading of zset, hset entries 2022-04-12 21:21:03 +03:00
Roman Gershman
bfcefd932d Support rdb loading.
1. Basic support of sets and hsets. No intset or dict-based hset yet.
2. Make sure that rdbloader actually loads the data into shards.
3. Support object metadata like expiry time.
4. Support lists loading.
2022-04-12 16:39:25 +03:00
Roman Gershman
7f8346cded Implement DEBUG RELOAD option.
Fix c++ and openssl deprecation warnings.
2022-04-12 11:29:42 +03:00
Roman Gershman
d03cea5e36 Code simplifications.
1. Sets do not use anymore redis encoding constants in our codebase.
2. rdb_save serializes now expiry information as well.
3. db_slice provides a simplified api to translate from absolute time to ExpirePeriod.
4. common_types.h is renamed to common.h. cached memory usage variables are moved there.
2022-04-07 11:01:10 +03:00
Roman Gershman
92ebb74500 Add ZSET serialization 2022-04-06 17:17:33 +03:00
Roman Gershman
ba1314201c Implement list serialization 2022-04-05 12:04:03 +03:00
Roman Gershman
a845e9bce1 Implement serialization of HSET 2022-04-04 12:07:27 +03:00
Roman Gershman
167f949c5a Support LIST, SET for rdb save 2022-04-02 19:57:52 +03:00
Roman Gershman
92475dd47a Unify mimalloc memory management 2022-03-10 19:29:41 +02:00
Roman Gershman
28a2db1044 Implement hset method 2022-03-02 19:06:49 +02:00
Roman Gershman
b8521828e3 Add Dockerfile for prod container. Reorganize source tree to be docker-build friendly. 2022-02-25 10:03:42 +02:00
Renamed from server/rdb_test.cc (Browse further)