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
b2953293cd
Simplify cursor encoding and state clearly cursor valid range
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
8d19a6211d
Introduce versioned bucket support for MVCC operations
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
d086341996
Add HashCode support to CompactObject
2022-02-24 14:11:51 +02:00
Roman Gershman
c46e624e70
Model dashtable iterator as close as possible to std iterator
2022-02-24 14:11:51 +02:00
Roman Gershman
ff9e13c1c5
Add dash table
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
ee15f98142
Use container in CI
2022-02-24 14:11:50 +02:00
Roman Gershman
286da5e409
Improve ccache config
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
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