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

137 commits

Author SHA1 Message Date
Roman Gershman
770fe0fe47 Memory accounting
Bring back application level used-memory tracking.
Use internal mimalloc api for extracting comitted memory stats.
This is much better performance-wise because calling mi_heap_visit_blocks
becomes very slow for larger database sizes.
2022-03-11 01:25:01 +02:00
Roman Gershman
92475dd47a Unify mimalloc memory management 2022-03-10 19:29:41 +02:00
Roman Gershman
09fb05c0e1 Add memcached flush_all command.
Simplify reply code - remove the redundant class.
2022-03-10 19:15:51 +02:00
Roman Gershman
8054ed4f3a Implement directory shrinkage when we flush the database 2022-03-09 09:06:11 +02:00
Roman Gershman
5dcb50dbaa INFO: Add command and error stats 2022-03-08 19:11:52 +02:00
Roman Gershman
abec283247 Implement SETEX command 2022-03-07 23:11:43 +02:00
Roman Gershman
3c1b600e79 Implement hkeys,hvals, hmget and hgetall commands 2022-03-07 23:00:26 +02:00
Roman Gershman
71272c4ee1 Implement SPOP action 2022-03-06 18:18:29 +02:00
Roman Gershman
f09f516636 Add zcard, zscore, zrem methods 2022-03-06 08:46:48 +02:00
Roman Gershman
6b869b41a7 Implement ZADD 2022-03-05 23:42:35 +02:00
Roman Gershman
2bdde23e1f Limit the expiration range 2022-03-05 21:35:49 +02:00
Roman Gershman
c94d109cff Use FlatSet for Redis SETS
Add FlatSet data structure.
Use FlatSet and get rid of t_set functions.
Fix Hash bug. Add memory comparison test
2022-03-05 20:20:30 +02:00
Roman Gershman
a58ed46f1e compact_object cleanups 2022-03-04 22:08:02 +02:00
Roman Gershman
2213c1b38b Add HKEYS command. Account for listpack blobs 2022-03-04 14:06:48 +02:00
Roman Gershman
b3e5730377 Add some hash set commands 2022-03-03 09:34:53 +02:00
Roman Gershman
3f0fcbf99f Factor out client connections module into a separate library called facade 2022-03-03 01:59:29 +02:00
Roman Gershman
28a2db1044 Implement hset method 2022-03-02 19:06:49 +02:00
Roman Gershman
7ffbadd305 Add t_hash.c file.
Add some compact_object tests for set,hset,zset interfaces.
Enable memory leak checking for mimalloc allocator in compact_object_test.
2022-03-01 12:35:07 +02:00
Roman Gershman
8c95facb47 Add skeleton for zset and hset commands 2022-02-28 23:19:24 +02:00
Roman Gershman
f255d17a72 Add decorators for commands like ROLE,BGSAVE,UNLINK. Improve memory usage tracking 2022-02-28 17:36:45 +02:00
Roman Gershman
668a51cafa Add most of SET commands (SADD, SCARD etc). Add set_family_test 2022-02-27 22:44:22 +02:00
Roman Gershman
3f7e3a5a0a Add memcached version and delete commands 2022-02-27 18:04:38 +02:00
Roman Gershman
edf74d2494 Add tcp_nodelay flag that is by default on 2022-02-27 15:40:20 +02:00
Roman Gershman
d1291be0b7 Add ubuntu flavoured docker image of dragonfly 2022-02-25 20:19:01 +02:00
Roman Gershman
a859cf2fc8 Add docker release action 2022-02-25 18:45:12 +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
Roman Gershman
e3d7f0a34e Use 8->7 bit encoding for ascii strings in compact_object 2022-02-24 23:35:14 +02:00
Roman Gershman
7445b20548 More work on memcached API
1. Fix memcached ttl semantics.
2. For incr/decr commands if a key does not exist - return NOT_FOUND.
2022-02-24 17:14:03 +02:00
Roman Gershman
737c5fed71 Introduce SmallString as another option for CompactObject 2022-02-24 15:22:59 +02:00
Roman Gershman
a93940913b Add support for incr/decr/quit memcache commands 2022-02-24 14:11:51 +02:00
Roman Gershman
fcb58efe15 Improve memory allocations with pipeline mode 2022-02-24 14:11:51 +02:00
Roman Gershman
edff35ae3e Pass correct memory resource to compact object 2022-02-24 14:11:51 +02:00
Roman Gershman
8072e79aab Add memcached append/prepend commands.
Implement these commands for redis as well (different semantics for non-existing keys)
Fix some mc parsing bugs.
Improve mc test.
2022-02-24 14:11:51 +02:00
Roman Gershman
667b2fa99c Add support for memcached stats command 2022-02-24 14:11:51 +02:00
Roman Gershman
b6857e3f41 MemcacheParser: add support for stats command 2022-02-24 14:11:51 +02:00
Roman Gershman
3d8af8b413 Implement memcache get for multiple keys. Fetch flag values as well 2022-02-24 14:11:51 +02:00
Roman Gershman
b3c9836682 Add tests for memcache commands. Handle flags metadata 2022-02-24 14:11:51 +02:00
Roman Gershman
8d2d49d782 Add AUTH command for 1.0 API 2022-02-24 14:11:51 +02:00
Roman Gershman
29f5052c4d Add alpine-dev container to test matrix 2022-02-24 14:11:51 +02:00
Roman Gershman
b606613762 Add more IO stats 2022-02-24 14:11:51 +02:00
Roman Gershman
b82fb72fc5 Add basic metrics to INFO command 2022-02-24 14:11:51 +02:00
Roman Gershman
e1c852dfcc Initial support for lua transactions.
Extend multi-transactions to scripts. Differentiate between incremental and instant locking
for multi-transactions.
2022-02-24 14:11:51 +02:00
Roman Gershman
b1829c3fe0 Allow custom argument validators. Expand transaction argument parsing to commands like EVAL 2022-02-24 14:11:51 +02:00
Roman Gershman
cc53bde091 Dragonfly Dispatch is called from lua script 2022-02-24 14:11:51 +02:00
Roman Gershman
07df3f2b95 Simplify serialization logic in Interpreter 2022-02-24 14:11:51 +02:00
Roman Gershman
c567a70244 Add SCRIPT LOAD/EVALSHA 2022-02-24 14:11:51 +02:00
Roman Gershman
ec70cc9e9f Add ScriptMgr class
Write SCRIPT command into ServerFamily class.
2022-02-24 14:11:51 +02:00
Roman Gershman
ab5031472e Small fixes
1. Remove CO::STALE modifier since it's not relevant for now.
2. Propertly wire CallFromScript function to be called from redis.call.
3. Define 3rd party lua dependency as part of dragonfly project.
4. Add ARGV/KEYS arrays to lua scripts
2022-02-24 14:11:51 +02:00
Roman Gershman
ce721ced90 Get rid of SendRespBlob in RedisReplyBuilder 2022-02-24 14:11:51 +02:00
Roman Gershman
501dc4208d Refactoring of ReplyBuilder
Now ConnectionContext does not inherit from it.
As a result we will be able to pass semantic information
into ReplyBuilder instead of syntactic. This should help with
parsing back "redis.call" responses.
2022-02-24 14:11:51 +02:00