Skip to main content

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 a bytes.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 a bytes.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 a bytes.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 a bytes.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 a bytes.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 a bytes.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.

Getting Started Relevance