Skip to content

Releases: olric-data/olric

v0.5.0-beta.7

25 Jul 20:27

Choose a tag to compare

v0.5.0-beta.7 Pre-release
Pre-release

What is Olric?

Olric is a distributed, in-memory data structure store. It's designed from the ground up to be distributed, and it can be used both as an embedded Go library and as a language-independent service.

With Olric, you can instantly create a fast, scalable, shared pool of RAM across a cluster of computers.

Olric is implemented in Go and uses the Redis protocol. That means Olric has client implementations in all major programming languages.

Olric is highly scalable and available. Distributed applications can use for distributed caching, clustering, and Publish-Subscribe messaging.

It is designed to scale out to hundreds of members and thousands of clients. When you add new members, they automatically discover the cluster and linearly increase the memory capacity. Olric offers simple scalability, partitioning (sharding), and re-balancing out-of-the-box. It does not require any extra coordination processes. With Olric, when you start another process to add more capacity, data and backups are automatically and evenly balanced.

See Samples section, and API docs on pkg.go.dev to get started!

Here is the seventh beta of the v0.5.x tree. It includes the following improvements:

  • Bring back pipelining feature to Golang client #174,
  • Add RefreshMetadata method to the Client interface,
  • Add ErrConnRefused error type,
  • Delete returns the number of deleted keys,
  • Smart routing: ClusterClient can calculate the partition owner for the given key,
  • Improve documentation.

Sample pipelining

func ExamplePipeline() {
	c, err := NewClusterClient([]string{"127.0.0.1:3320"})
	if err != nil {
		// Handle this error
	}
	dm, err := c.NewDMap("mydmap")
	if err != nil {
		// Handle this error
	}

	ctx := context.Background()

	pipe, err := dm.Pipeline()
	if err != nil {
		// Handle this error
	}

	futurePut, err := pipe.Put(ctx, "key-1", "value-1")
	if err != nil {
		// Handle this error
	}

	futureGet := pipe.Get(ctx, "key-1")

	err = pipe.Exec(context.Background())
	if err != nil {
		// Handle this error
	}

	err = futurePut.Result()
	if err != nil {
		// Handle this error
	}

	gr, err := futureGet.Result()
	if err != nil {
		// Handle this error
	}
	value, err := gr.String()
	if err != nil {
		// Handle this error
	}
	fmt.Println(value)
}

v0.5.0-beta.6

05 Jul 22:09

Choose a tag to compare

v0.5.0-beta.6 Pre-release
Pre-release

Here is the sixth beta of the v0.5.x tree. It includes the following improvements:

  • Add DM.INCRBYFLOAT command,
  • Fix corrupt cursor problems in DM.SCAN implementation in the clients.

v0.5.0-beta.5

16 Jun 21:38

Choose a tag to compare

v0.5.0-beta.5 Pre-release
Pre-release

Here is the fifth beta of the v0.5.x tree. It includes the following improvements:

  • DM.DEL takes multiple keys

v0.5.0-beta.4

21 May 10:10

Choose a tag to compare

v0.5.0-beta.4 Pre-release
Pre-release

Here is the forth beta of the v0.5.x tree. It includes the following improvements:

  • Fix wrong cursor alignment in iterator implementations

v0.4.5

13 May 21:38

Choose a tag to compare

This release includes the following fixes and improvements:

  • Memory leak, related to 137 (bug: dead loop while expand kvstore)

Thank you @justinfx and @ShawnHsiung for their contributions!

v0.5.0-beta.3

30 Apr 22:06

Choose a tag to compare

v0.5.0-beta.3 Pre-release
Pre-release

Here is the second beta of the v0.5.x tree. It includes the following improvements:

  • DMap compaction deletes non-empty fragments after some time #160
  • olricd panics if the CLI parameters are invalid. #161
  • olricd crashes if another node works on host:port #159

Install with the following command:

go get github.com/buraksezer/[email protected]

v0.5.0-beta.2

18 Apr 17:46

Choose a tag to compare

v0.5.0-beta.2 Pre-release
Pre-release

Here is the second beta of the v0.5.x tree. It includes the following improvements:

  • Crash while benchmarking #153,
  • Improve integration tests.

Install with the following command:

go get github.com/buraksezer/[email protected]

v0.4.4

17 Apr 09:16

Choose a tag to compare

This release includes the following fixes and improvements:

Thank you @randall-fulton for your contributions!

v0.5.0-beta.1

10 Apr 08:35

Choose a tag to compare

v0.5.0-beta.1 Pre-release
Pre-release

Here is the first beta of the v0.5.x tree. It includes the following improvements:

  • Fix inconsistencies in the Client API,
  • Better Docker setup.

Install with the following command:

go get github.com/buraksezer/[email protected]

v0.5.0-alpha.4

03 Apr 22:26

Choose a tag to compare

v0.5.0-alpha.4 Pre-release
Pre-release

Here is the fourth alpha of v0.5.x tree. It includes the following improvements:

  • Add IdleClose configuration parameter to close idle connections,
  • Extract KeepAlivePeriod logic from v0.4.x tree,
  • Integration tests for eviction methods.

Install with the following command:

go get github.com/buraksezer/[email protected]