dump_restore.go
dump_restore.go - Overview
This file provides functionality for serializing and deserializing various data types used within the DiceDB, enabling persistence and restoration of data. It supports string
, int
, set
, JSON
, ByteArray
, Dequeue
, Bloom Filter
, Sorted Set
, and CountMinSketch
object types.
Detailed Documentation
Functions
rdbDeserialize(data []byte) (*object.Obj, error)
: Deserializes a byte array into a DiceDB object.- Purpose: Converts a byte array, presumably read from storage, back into a usable DiceDB object with its type and value.
- Parameters:
data []byte
: The byte array to deserialize.
- Returns:
*object.Obj
: A pointer to the deserialized DiceDB object.error
: An error if deserialization fails.
readString(buf *bytes.Reader) (interface{}, error)
: Reads a string from abytes.Reader
.- Purpose: Reads a length-prefixed string from the buffer.
- Parameters:
buf *bytes.Reader
: The buffer to read from.
- Returns:
interface{}
: The string that was read.error
: An error, if any.
readInt(buf *bytes.Reader) (interface{}, error)
: Reads an integer from abytes.Reader
.- Purpose: Reads a 64-bit integer from the buffer.
- Parameters:
buf *bytes.Reader
: The buffer to read from.
- Returns:
interface{}
: The integer that was read.error
: An error, if any.
readSet(buf *bytes.Reader) (interface{}, error)
: Reads a set of strings from abytes.Reader
.- Purpose: Reads a length-prefixed set of strings from the buffer.
- Parameters:
buf *bytes.Reader
: The buffer to read from.
- Returns:
interface{}
: The set of strings that was read.error
: An error, if any.
rdbSerialize(obj *object.Obj) ([]byte, error)
: Serializes a DiceDB object into a byte array.- Purpose: Converts a DiceDB object into a byte array for storage.
- Parameters:
obj *object.Obj
: The DiceDB object to serialize.
- Returns:
[]byte
: The serialized byte array.error
: An error if serialization fails.
writeString(buf *bytes.Buffer, str string) error
: Writes a string to abytes.Buffer
.- Purpose: Writes a length-prefixed string to the buffer.
- Parameters:
buf *bytes.Buffer
: The buffer to write to.str string
: The string to write.
- Returns:
error
: An error, if any.
writeInt(buf *bytes.Buffer, intVal int64)
: Writes an integer to abytes.Buffer
.- Purpose: Writes a 64-bit integer to the buffer.
- Parameters:
buf *bytes.Buffer
: The buffer to write to.intVal int64
: The integer to write.
writeSet(buf *bytes.Buffer, setItems map[string]struct{}) error
: Writes a set of strings to abytes.Buffer
.- Purpose: Writes a length-prefixed set of strings to the buffer.
- Parameters:
buf *bytes.Buffer
: The buffer to write to.setItems map[string]struct{}
: The set of strings to write.
- Returns:
error
: An error, if any.
appendChecksum(data []byte) []byte
: Appends a CRC64 checksum to the given byte array.- Purpose: Adds a checksum to the data for integrity verification.
- Parameters:
data []byte
: The data to append the checksum to.
- Returns:
[]byte
: The data with the appended checksum.