Extend DUMP & RESTORE commands to support Garnet objects
- Dominant language
- C#
- Stars
- 12k
- Forks
- 703
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 36
Description
### Feature request type
enhancement
### Is your feature request related to a problem? Please describe
The [`DUMP`](https://redis.io/docs/latest/commands/dump/) command serializes a value at a specified key and dumps the serialized value to the client. The serialized value can then be deserialized and stored using the [`RESTORE`](https://redis.io/docs/latest/commands/restore/) command.
Currently, Garnet supports the DUMP & RESTORE commands for string values only. We're looking for help implementing this command for all other supported object types (Set, SortedSet, HashSet, List).
### Describe the solution you'd like
Extend implementation of `DUMP` and `RESTORE` command in Garnet to support objects.
**References:**
Serialization format [specification](https://rdb.fnordig.de/file_format.html).
Existing `DUMP` and `RESTORE` code in [KeyAdminCommands.cs](https://github.com/microsoft/garnet/blob/main/libs/server/Resp/KeyAdminCommands.cs) (see: `NetworkDUMP` and `NetworkRESTORE`)
### Describe alternatives you've considered
_No response_
### Additional context
_No response_
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in libs/server/Resp/KeyAdminCommands.cs with NetworkDUMP and NetworkRESTORE, then compare the referenced serialization format specification with the existing string support. Extend the commands for Set, SortedSet, HashSet, and List objects, and verify that each supported object can be dumped and restored using the specified format.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100