Skip to content

v0.7.0

Latest
Compare
Choose a tag to compare
@buraksezer buraksezer released this 26 May 19:37

What is Olric?

Olric provides a simple way to create a fast, scalable, and shared pool of RAM across a cluster of machines.
It's a distributed, in-memory key/value store and cache, written entirely in Go and designed specifically for distributed environments.

Flexible Deployment:

  • Embedded Go Library: Integrate Olric directly into your Go applications.
  • Standalone Service: Run Olric as a language-independent service.

Key Features:

  • Effortless Scalability: Designed to handle hundreds of members and thousands of clients. New nodes auto-discover the cluster and linearly increase capacity.
  • Automatic Distribution: Provides partitioning (sharding) and data re-balancing out-of-the-box, requiring no external coordination services. Data and backups are automatically balanced when capacity is added.
  • Wide Client Support: Uses the standard Redis Serialization Protocol (RESP), ensuring client libraries are available in nearly all major programming languages.
  • Common Use Cases: Ideal for distributed caching, managing application cluster state, and implementing publish-subscribe messaging.

See Docker and Samples sections to get started!

Join our Discord server!

This release includes the following fixes and improvements:

  • Improved read performance with parallelized quorum fetches
    When ReadQuorum > 1, Olric now fetches key/value pairs from replicas in parallel rather than sequentially. This significantly reduces read latency in distributed deployments, especially under high load or when some nodes are slow to respond.

  • Parallelized read repair for faster consistency convergence
    The read-repair mechanism, which ensures consistency across replicas after a read, has been optimized to run in parallel. This enhancement speeds up data convergence and reduces blocking time for read operations that trigger repairs.

  • Implemented AUTH command for password-based authentication
    Introduced support for a Redis-compatible AUTH command. This allows clients to authenticate using a configured password before issuing any commands. It's primarily designed for environments requiring lightweight access control and is compatible with RESP clients supporting the AUTH command.