Roman Gershman
fc56a8e61a
Replica: add a state machine that continously pulls data from the master
2022-02-24 14:11:51 +02:00
Roman Gershman
d1f6f6d410
Implement serialization of most lua data types that are returned to caller
2022-02-24 14:11:51 +02:00
Roman Gershman
8fbe19d3c5
Add (lua) interpreter with lua 5.4.4
...
Small fixes all around.
2022-02-24 14:11:51 +02:00
Roman Gershman
8a3207f23e
Add skeleton of replication manager and initial support of replicaof command
2022-02-24 14:11:51 +02:00
Roman Gershman
cf3d208f81
Add skeleton for replica/sync commands
2022-02-24 14:11:51 +02:00
Roman Gershman
b56408b51a
Add rdb_test
2022-02-24 14:11:51 +02:00
Roman Gershman
4db619b081
Add rdb_load basic parsing. No data filling yet
2022-02-24 14:11:51 +02:00
Roman Gershman
7d5ad8cc5b
Serve http requests from redis port
2022-02-24 14:11:51 +02:00
Roman Gershman
e68977a7bf
Fix Populate bug
2022-02-24 14:11:51 +02:00
Roman Gershman
5c5c789ac7
dragonfly_connection
...
Recognize http1.1 protocol upon connection connect.
Pass disconnect event to running transactions.
2022-02-24 14:11:51 +02:00
Roman Gershman
b83c201e30
Add global state to the server to prevent multiple exclusive operations to run concurrently
2022-02-24 14:11:51 +02:00
Roman Gershman
254e640a19
Introduce per-shard MiMemoryResource
2022-02-24 14:11:51 +02:00
Roman Gershman
7ee6bd8471
Implement snapshot consistency under the write load
2022-02-24 14:11:51 +02:00
Roman Gershman
a8a05949b0
Hook snapshot with db_slice so that it would be possible to maintain snapshot isolation during concurrent writes
2022-02-24 14:11:51 +02:00
Roman Gershman
f119e66199
Refactor Populate command. Name the helper fibers
2022-02-24 14:11:51 +02:00
Roman Gershman
65f35f2cac
Some improvements to snapshotting algo.
...
Rename rdb_snapshot.h to snapshot.h since it's not related to the underlying serialization format.
2022-02-24 14:11:51 +02:00
Roman Gershman
3f80b89e19
Implement TYPE and SCAN commands. Update readme with the progress
2022-02-24 14:11:51 +02:00
Roman Gershman
ec91b2c026
Add mimalloc as the default allocator for redis structures
2022-02-24 14:11:51 +02:00
Roman Gershman
af1fe6e114
Introduce dbslice versioning
2022-02-24 14:11:51 +02:00
Roman Gershman
ce46ba7cb1
Introduce snapshot isolation using versioned buckets
2022-02-24 14:11:51 +02:00
Roman Gershman
069ed12c68
Introduce a naive snapshot flow and implement SaveBody for string/list entries
2022-02-24 14:11:51 +02:00
Roman Gershman
7af6aef4c7
Add consumer part of RdbSave flow
2022-02-24 14:11:51 +02:00
Roman Gershman
d3ccd5b836
Implement Save of rdb header/epilog
2022-02-24 14:11:51 +02:00
Roman Gershman
ba72e70de5
Wire SAVE and LASTSAVE commands
...
SAVE has a dummy implementation that will be replaced in the next commits.
2022-02-24 14:11:51 +02:00
Roman Gershman
7a839b6081
Fix size() bug in dashtable
...
add more stats to info command
fix warnings in -O3 mode.
2022-02-24 14:11:51 +02:00
Roman Gershman
f4cfce143c
Switch PrimeTable to DashTable
2022-02-24 14:11:51 +02:00
Roman Gershman
97fbf69260
Use DashTable for ExpireTable
2022-02-24 14:11:51 +02:00
Roman Gershman
5923c22d99
Expose some connection-level stats
2022-02-24 14:11:50 +02:00
Roman Gershman
0d57b25124
Sync with the latest version of helio
2022-02-24 14:11:50 +02:00
Roman Gershman
e88d995618
Fix consistency bug in watched code
...
CI improvements
2022-02-24 14:11:50 +02:00
Roman Gershman
fac4bf0354
Add INCR/DECR commands
2022-02-24 14:11:50 +02:00
Roman Gershman
5715b8ebbb
Use compact object as our MainValue type
2022-02-24 14:11:50 +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
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
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
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