Skip to main content

On This Page

Valkey Performance Improvements with Madelyn Olson

2 min read
Share

These articles are AI-generated summaries. Please check the original sources for full details.

Improving Valkey with Madelyn Olson

Madelyn Olson, a maintainer of the Valkey project and a Principal Software Development Engineer at Amazon ElastiCache and Amazon MemoryDB, discusses the recent performance improvements in Valkey. Valkey emerged as a community-driven fork of Redis after the 2024 license change, and its maintainers have optimized memory usage and improved throughput.

Why This Matters

The technical reality of achieving high performance in caching systems like Valkey is rooted in understanding the intricacies of memory management and hash table design. Ideal models often overlook the complexities of real-world workloads, leading to potential performance regressions. In Valkey’s case, the maintainers aimed to save memory without degrading performance, resulting in significant improvements.

Key Insights

  • Valkey is fully backwards-compatible with Redis 7.2, making migrations simple and supported by major cloud providers.
  • The new hash table design in Valkey 8 and 9 reduces memory usage through smarter layouts, fewer allocations, and cache-aware probing.
  • Valkey’s performance is measured in terms of throughput, with a goal of achieving a quarter of a million requests per second per core.

Working Example

// Example of Valkey's hash table structure (simplified)
struct valkey_hash_table {
    // Bucket array
    struct bucket *buckets;
    // Dictionary per slot
    struct dictionary *dicts;
};

struct bucket {
    // Key-value pair
    struct key_value *kv;
    // Next pointer (optimized using SwissTable strategy)
    struct bucket *next;
};

Practical Applications

  • Use Case: Valkey can be used as a drop-in replacement for Redis in caching workloads, providing high availability and scalability.
  • Pitfall: Failing to consider the memory usage and performance characteristics of Valkey can lead to suboptimal caching strategies.

References:

Continue reading

Next article

DataFrames in Java: A Powerful Tool for Data-Oriented Programming

Related Content