1. Found dangling transaction pointers that where left in the watch queue. Fix the state machine there.
2. Improved transaction code a bit, merged duplicated code into RunInShard function, got rid of RunNoop.
3. Improved BPopper::Run flow.
4. Added 'DEBUG WATCH' command. Also 'DEBUG OBJECT' now returns shard id and the lock status of the object.
1. Fix memory counting stats. Use memory_usable_size(ptr) for counting used memory.
2. Fix crash when there is I/O error when writing snapshot. Now we return error message.
* Add more documentation about dashtable. Tune expiry heuristics a bit
* Minor lang change
* minor lng changes
Co-authored-by: Roman Gershman <romange@gmail.com>
1. Snapshot now passed db index and rdb save handles by inserting select opcodes when needed.
2. Fix few more bugs in CVCUponInsert.
3. Save lua scripts.
1. Fix a bug in dash table related to snapshotting.
2. Rewrite GlobalState code and make state transitions atomic and well defined.
3. Fix Save/Flush semantics by capturing snapshotted tables together with the snapshot.
1. Stabilized naming scheme for snapshot files.
The behavior is determined by dbfilename flag.
By default it's 'dump'. Dragonfly checks if the flag has an extension
if not, it automatically saves timestamped files (dump*.rdb) and loads the latest file that is available.
In case the flag has extension like 'dump.rdb' it fallbacks to redis behavior of loading and saving to the
same file.
2. Updated the logo url.
This id one by shifting right slots in a stash bucket of the full segment.
In addition, I added eviction related stats to memory and stats section.
I also updated README with the changes. Finally, I added a flag that allows
to disable http-admin console in dragonfly.
1. Make EngineShardSet to be a process singleton instead of a variable passed everywhere.
2. Implement a heuristic of updating free memory per shard.
3. Make sure that SET command returns OOM when a database reaches its limits.
The heart of this feature is ability to bump up entries that has been searched for.
When we bump up an entry withing a dash-table it's moved out of stash buckets or to lower slot ids
within normal buckets. The entry they replace is moved to the place of bumped-up entries.
The next change will be to implement the actual eviction heuristic that will evict keys from the stash buckets.
This will give stash buckets an addition responsibility for caching mode - they will serve as a probation buffer
that holds low-priority or newly added items.
1. Simplify versioning scheme. This also reduces metadata space and increases table capacity
for same memory reservation by ~%5.
2. Fix snapshotting bugs. Recognize duplicate keys during loading.
3. Introduce DEBUG LOAD command to perform manual loading of files.