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