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
Roman Gershman
067e1c3b62
Allow calling a redis function from interpreter.
...
Introduce a translator that converts redis response to lua result coming from redis.call
Add tests.
2022-02-24 14:11:51 +02:00
Roman Gershman
4cff2d8b7d
Export redis.* functions in lua scripts
2022-02-24 14:11:51 +02:00
Roman Gershman
7a2f4baeec
Wire support for redis.call and redis.pcall commands
2022-02-24 14:11:51 +02:00
Roman Gershman
fc56a8e61a
Replica: add a state machine that continously pulls data from the master
2022-02-24 14:11:51 +02:00