1
0
Fork 0
mirror of https://github.com/dragonflydb/dragonfly.git synced 2024-12-14 11:58:02 +00:00
Commit graph

36 commits

Author SHA1 Message Date
Roman Gershman
737c5fed71 Introduce SmallString as another option for CompactObject 2022-02-24 15:22:59 +02:00
Roman Gershman
edff35ae3e Pass correct memory resource to compact object 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
29f5052c4d Add alpine-dev container to test matrix 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
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
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
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
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
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
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
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
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
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
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
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
29cdcb96ec Add generic_family_test. Minor cleanups 2022-01-04 15:11:37 +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
7fe07f8e4f Introduce TxQueue and IntentLock for VLL algo 2021-12-20 22:46:51 +02:00