1
0
Fork 0
mirror of https://github.com/dragonflydb/dragonfly.git synced 2024-12-14 11:58:02 +00:00
Commit graph

2780 commits

Author SHA1 Message Date
Roman Gershman
362f1f4ec4 Integrate UpdateHooks into set-family code 2022-04-29 19:54:41 +03:00
Roman Gershman
f65d6308c7 Some small refactorings around DbSlice::AddOrFind.
Code clean-ups in string-family in preparation for the work on
point in time snapshotting for other types.
2022-04-29 17:47:12 +03:00
Roman Gershman
afd52d5571 Clean-ups in transaction code. 2022-04-29 15:50:20 +03:00
Roman Gershman
2966d04743 Allow external allocations for sizes greater than 1MB 2022-04-29 09:38:01 +03:00
Roman Gershman
0daa221ff5 Add extent tree for later usage in the external allocator 2022-04-29 07:16:32 +03:00
Roman Gershman
1481cb9d57 Finish RPOPLPUSH 2022-04-28 20:16:56 +03:00
Roman Gershman
b36c16b314 Implement single shard use-case for rpoplpush. Some BLPOP related refactoring 2022-04-28 19:05:51 +03:00
Roman Gershman
d3764efbca Add CONFIG RESETSTAT command. Start working on RPOPLPUSH 2022-04-27 23:50:03 +03:00
Roman Gershman
72e90bb729 More work on blocking commands like BLPOP.
Fixes #1 and fixes #24.
2022-04-27 10:42:35 +03:00
Roman Gershman
344731d255 Bug fixes.
1. Fixes #26
2. Fixes #28
2022-04-25 19:08:21 +03:00
Roman Gershman
d3d30fbbaf Add RenameNx. Fix #30 2022-04-25 15:41:41 +03:00
Roman Gershman
8ae7436a22 Reverse range for reverse z-commands. Fixes #27 2022-04-25 15:38:29 +03:00
Roman Gershman
69c8658be4 Fix handling on non-float values in INCRBYFLOAT. Fixes #22 2022-04-25 12:07:50 +03:00
Roman Gershman
2c8cb23098 Few improvements.
1. Docker build now builds for arm64 as well.
2. Add bind option to specify on which interface the server should listen.
3. Automatically deduce maxmemory setting.
2022-04-25 12:06:31 +03:00
Roman Gershman
d64a0c6f0e Add ZSCAN command 2022-04-25 00:14:40 +03:00
Roman Gershman
b50428d1a6 More work on tiered storage.
1. External allocator now allocates blocks that are multiples of 8KB and are aligned to 8KB.
   This allows to use it with O_DIRECT files. 4KB was enough but since we can group small strings within
   a single block anyway, we can increase minimal block sizes.
2. Fix constants dependencies within external allocator. Improve code structure.
3. Limit string offloading to string sizes below 2MB. Currently we do not support external allocations of larger sizes.
2022-04-23 22:03:12 +03:00
Roman Gershman
a9ada45b10 Limit the maximum number of active in-flight write requests 2022-04-22 21:13:27 +03:00
Roman Gershman
8d312a92e1 Add tiered storage stats 2022-04-22 18:07:35 +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
f1c5e4d702 Remove redundant redis files 2022-04-22 00:07:31 +03:00
Roman Gershman
7b9bad35e9 Support external storage for GET requests 2022-04-21 23:37:53 +03:00
Roman Gershman
dce0ce3d69 Add COMMAND COUNT option 2022-04-21 23:26:29 +03:00
Roman Gershman
69911a95ac Add ZREMRANGEBYLEX and ZREVRANGEBYSCORE commands. 2022-04-20 23:51:48 +03:00
Roman Gershman
d8697463dc Adding ZLEXCOUNT and ZRANGEBYLEX commands. 2022-04-20 21:50:29 +03:00
Roman Gershman
0f19e60a81 Track active io requests in tiered storage 2022-04-20 19:06:05 +03:00
Roman Gershman
7c29ea445f Add HSCAN and HINCRBYFLOAT commands 2022-04-19 22:21:54 +03:00
Roman Gershman
a5b59dde25 Add KEYS command 2022-04-19 11:38:32 +03:00
Roman Gershman
b74c5398a4 Add very initial code for tiered storage for strings 2022-04-19 08:31:23 +03:00
Roman Gershman
f2c05a277d Add LINSERT and INCRBYFLOAT commands 2022-04-18 19:45:57 +03:00
Roman Gershman
e163747023 CompactObject can now represent an pointer to external storage 2022-04-18 18:12:54 +03:00
Roman Gershman
f113d29918 Fix several bugs.
Fix #17, also fix #14, fix #10 and fix #16.
2022-04-18 01:17:47 +03:00
Roman Gershman
e5a3a83bae Organize code and make the write asynchronous 2022-04-14 21:31:31 +03:00
Roman Gershman
bc92ace19c Add safe cursor API to dash table 2022-04-14 21:31:31 +03:00
Roman Gershman
ad3bdbf499 Optional feature (POC) - store values on the external storage (SSD).
1. Add ExternalAllocator that provides files ranges to write to.
2. Add IoMgr that wraps files and allows sending asynchronous requests.
3. Add POC that writes string values when a new entry is added.
   The original values kept are still kept in memory.
2022-04-13 22:11:25 +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
d2b6907f2d Improve docker entry point script.
Change default port to 6379.
Log data directory path.
2022-04-08 08:54:53 +03:00
Roman Gershman
49781e8daf Some bug fixes.
closes #19 and closes #20.
2022-04-08 06:53:22 +03:00
Roman Gershman
5ef63f41d2 Fix bugs related to error reporting.
1. Fix #9
2. SINTER now reports error if some of its keys are of wrong type.
2022-04-07 12:01:18 +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
fa70267729 Add ZRANK,ZCOUNT,ZREVRANK.
1. Fix #12 - return number of added items for non-increment usecase.
2. Fix #15 - fix double precision response. I use a different printing algorithm that of Redis
   therefore there could be string differences between 2 systems. However, both replies should
   be equivalent numerically.
3. Fix #13.  Reject ZADD with LT and GT options together.
4. Fix #11 - return correct error when parsing invalid scores.
2022-04-06 22:54:10 +03:00
Roman Gershman
92ebb74500 Add ZSET serialization 2022-04-06 17:17:33 +03:00
Roman Gershman
abbefd0bc4 More bug fixes.
1. RENAME now unblocks blpop/brpop.
2. Fix a deadlock bug with blpop running with the same key multiple times.
2022-04-06 10:32:42 +03:00
Roman Gershman
1fc9f11e76 Bug fixes.
1. Fix crash when calling BLPOP on the same key several times.
2. Extend RENAME functionality to cover all data-types.
   Before that it worked only for strings and that also was incorrect.
2022-04-05 23:20:05 +03:00
Roman Gershman
c6e4e97865 List fixes.
1. Fix blocked_clients statistic.
2. Add HELLO decorator.
3. Non-list keys should not wake blpop/brpop commands.
4. Fix Info output whitespacing.
2022-04-05 18:45:58 +03:00
Roman Gershman
948fbce4bd Fix GETRANGE and ascii packing bugs 2022-04-05 14:46:26 +03:00
Roman Gershman
ba1314201c Implement list serialization 2022-04-05 12:04:03 +03:00