Roman Gershman
5715b8ebbb
Use compact object as our MainValue type
2022-02-24 14:11:50 +02:00
Roman Gershman
aa2136a406
Add CompactObject that will represent all the possible dragonfly types
...
Specifically, it act as union for int,string, set, zset and other types
that exist in Redis API. In order to be more memory friendly, CompactObject
incorporates inline storage that will be used for SSO.
2022-02-24 14:11:43 +02:00
Roman Gershman
ea399e3e5a
Identify multi-blpop interaction bug.
...
Now it fails on missing functionality without deadlocking.
2022-01-13 13:10:34 +02:00
Roman Gershman
fc63eec1b6
Add BLPOP support
2022-01-12 08:59:22 +02:00
Roman Gershman
0cf2f57bf2
Fix expiry bug in AddOrFind function
...
Also add more test coverage.
Fix a bug where iterators might get invalidated between Renamer hops.
Initial work on BLPOP transaction.
2022-01-12 08:48:41 +02:00
Roman Gershman
a82c409006
Update state of things
2022-01-09 20:43:49 +02:00
Roman Gershman
6ed248efdf
more planning for the next milestones
2022-01-08 20:36:52 +02:00
Roman Gershman
0c14be51d4
Add detailed status regarding the first milestone (Egg)
2022-01-08 19:39:30 +02:00
Roman Gershman
e7071b73b1
Refactor server commands into server_family.
...
Introduce FlushDb. Minor cleanups and renamings.
2022-01-08 11:07:31 +02:00
Roman Gershman
76286e33bf
Add more dragonfly tests
2022-01-07 18:46:57 +02:00
Roman Gershman
35fa69c928
Add EXEC transaction support. Introduce dragonfly_test.cc
2022-01-06 15:48:51 +02:00
Roman Gershman
9e5a5ea2f2
Introduce Rename command
2022-01-05 00:56:58 +02:00
Roman Gershman
29cdcb96ec
Add generic_family_test. Minor cleanups
2022-01-04 15:11:37 +02:00
Roman Gershman
5a7a67fbcf
Introduce list_family_test
2022-01-04 10:47:49 +02:00
Roman Gershman
6b7ed73753
Implement client side resp parsing to be used in tests
2022-01-04 01:16:24 +02:00
Roman Gershman
a4d8ded6ce
Add string_family_test.cc unit test
...
Add unit test helper code that we will leverage for writing more unit tests.
Numerous fixes in the transactional code. Allow controlling of expiration clock
in unit-test environment with configurable task synchronization. The latter is enabled
for prod and disable in the tests.
2022-01-03 11:20:08 +02:00
Roman Gershman
d64b4e01ea
Implement basic list operations
...
Fix redis linker dependencies. Bring more redis (BSD-3) code.
Fix bugs related to multi-database redis.
Introduce multiple types for redis values.
2022-01-02 10:40:16 +02:00
Roman Gershman
b1b0213cd2
Add bunch of redis files
...
Files are taken from redis commit e84ccc3f566f78344b098c3eef6e371653bc311b
We need low-level redis datastructures for encoding values that are not strings,
i.e. lists, sets, zsets etc.
2021-12-27 10:03:29 +02:00
Roman Gershman
55ee0563b0
Consolidate generic commands under generic_family. Add Del, Echo, Ttl and select commands
2021-12-26 17:25:49 +02:00
Roman Gershman
b1f32e5ebf
Add MGet and MSet commands
2021-12-23 15:11:46 +02:00
Roman Gershman
ebd404ff5d
Introduce VLL transactions
2021-12-22 17:17:52 +02:00
Roman Gershman
a0dfb3171a
Fix checkout directive
2021-12-21 11:29:59 +02:00
Roman Gershman
08767afa1e
Add ci badge to README
2021-12-21 11:07:29 +02:00
Roman Gershman
1b52488ee9
Add github ci workflow
2021-12-21 10:50:46 +02:00
Roman Gershman
7fe07f8e4f
Introduce TxQueue and IntentLock for VLL algo
2021-12-20 22:46:51 +02:00
Roman Gershman
ac2eb7d45c
Adding expiry functionality.
...
1. Major refactoring
2. LICENSE is updated with commons clause.
3. Server is built as "dragonfly"
2021-12-20 11:42:55 +02:00
Roman Gershman
a69c967321
Add debug populate command
2021-12-07 08:27:11 +02:00
Roman Gershman
45294f8c2f
Fix reply batching.
2021-11-30 21:01:09 +02:00
Roman Gershman
6c5e4dad3b
Rename main binary to midi-redis
2021-11-30 10:11:59 +02:00
Roman Gershman
e7dc509fed
Add prometheus-like metric support and allow connection affinity according to INCOMING_CPU
2021-11-29 21:50:08 +02:00
Roman Gershman
d7b22ca582
Add APACHE-2.0 license. Fix file headers everywhere
2021-11-28 09:29:26 +02:00
Roman Gershman
6d32e56fbb
Update README.md
2021-11-24 14:17:44 +02:00
Roman Gershman
18525d2b5e
Introduce some pipelining support.
...
Also some refactoring.
2021-11-24 14:09:53 +02:00
Roman Gershman
9a6e8e31be
Add basic GET command for both mc and redis
2021-11-23 17:56:31 +02:00
Roman Gershman
5ebbfa5a64
Adding memcached protocol support for dragonfly
2021-11-23 12:39:35 +02:00
Roman Gershman
d4b708d33c
Introduce basic memcached parser
2021-11-22 09:43:43 +02:00
Roman Gershman
9282d96d00
Add tls support and config flags simulating redis configuration params
2021-11-19 18:00:14 +02:00
Roman Gershman
bf714b1a64
Introduce command registry and dispatcher entry point.
...
Change set/ping commands to work with registry mapping.
Registry commands are defined according to redis spec.
2021-11-18 18:38:20 +02:00
Roman Gershman
9c1b1e495d
Rename async to helio
2021-11-18 17:14:05 +02:00
Roman Gershman
38478cf069
Add connection context that will serve us as an interface between command handler and the service
2021-11-17 16:38:32 +02:00
Roman Gershman
ec78c8a2af
Add SET command and thread local db slice
2021-11-17 16:33:36 +02:00
Roman Gershman
48589604fc
Bind redis parser to dragonfly connection
2021-11-17 16:33:34 +02:00
Roman Gershman
f2bc27e283
Add redis parser + test
2021-11-17 16:32:14 +02:00
Roman Gershman
2bce379341
Add dragonfly skeleton: listener, connection and main
2021-11-17 16:32:08 +02:00
Roman Gershman
90516b53dd
Add async library to the project
2021-11-16 09:59:13 +02:00
Roman Gershman
503aa8af52
Initial commit
2021-11-16 09:41:42 +02:00