Roman Gershman
3a4c36c1f2
Refactor code in tiered storage
2022-05-06 13:36:09 +03:00
Roman Gershman
2d6251ca83
Add circleci config.yml
2022-05-05 13:38:22 +03:00
Roman Gershman
5568205b34
More work on tiered storage.
...
1. Reads from external storage support now o_direct mode.
2. Simplify write unloading logic. Make pending buffer a ring buffer with
a predefined capacity.
3. Add more tiered stats to info command
2022-05-05 12:05:05 +03:00
Roman Gershman
7f06e223f7
Statically link boost into dragonfly
2022-05-04 15:55:03 +03:00
Roman Gershman
b6ed08edb7
Fix a typo
2022-05-03 11:58:09 +03:00
Roman Gershman
5c191e31d4
Prepare transactional code to cope with irregular multi-key commands like ZUNIONSTORE
2022-05-01 22:23:19 +03:00
Roman Gershman
b1f993377b
Add update hooks to zset and hset families
2022-04-30 22:56:44 +03:00
Roman Gershman
370d4cd0ee
support lua scripts loading
2022-04-30 22:21:05 +03:00
Roman Gershman
5c9cee171c
Add SCRIPT EXISTS subcommand
2022-04-30 16:58:36 +03:00
Roman Gershman
0582c5750a
Add misssing update hooks for list family
2022-04-29 20:48:25 +03:00
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