mastodon / mastodon

Your self-hosted, globally interconnected microblogging community
https://joinmastodon.org
GNU Affero General Public License v3.0
47.25k stars 7k forks source link

Concider: Replacement of Redis due to license change #29729

Open soupglasses opened 8 months ago

soupglasses commented 8 months ago

Pitch

Redis recently relicenced their software suite to a no longer free software license effectively making it a proprietary dependency to running Mastodon.

I propose changing it.

We can continue to use Redis-compatible key-value stores. This is low effort and requires no code changes, and is mostly a testing and documentation change.

  1. KeyDB, a multithreaded fork of Redis, funded and developed by Snap Inc. BSD-3 licensed, should work basically as a drop in replacement today. Previous discussion: #13204
  2. KVRocks, a distributed key value store, built on top of RocksDB to be compatible with the Redis protocol. Apache 2.0 licensed.
  3. Redict, hard fork of Redis 7.2.4 before the license change, made by Drew DeVault. LGPL 3.0-only licensed.

Now, alternatively, we could look into replacing Redis as a protocol entirely with another key-value store. This is a much larger task, but to exhaust the options available notable alternatives here would be:

  1. Memcached, A mature but simpler in-memory key-value store. BSD-3 licensed.
  2. RocksDB, A persistent key-value store, funded and developed by Facebook/Meta. Dual-licensed as GPL 2.0-only and Apache 2.0.
  3. Apache Ignite, "a distributed database for high-performance computing with in-memory speed". Apache 2.0 licensed.

Motivation

Mastodon is an open source project, depending upon non-opensource projects would remove the possibility to run mastodon with open source software, which is now the current state after the Redis license change. Therefore this default should be changed officially.

soupglasses commented 8 months ago

A practical issue is that Linux distributions will be in the next few months be looking into removing Redis. So bare-metal installs will become more difficult.

viktorix commented 8 months ago

Another new fork by former Redis contributors (and AWS employees) is placeholderkv (they're looking for a permanent name)

NoaHimesaka1873 commented 8 months ago

Another new fork by former Redis contributors (and AWS employees) is placeholderkv (they're looking for a permanent name)

And this got renamed to "Valkey" and got adopted by Linux Foundation, so it seems like the best choice for now.

nomad-geek commented 7 months ago

Adding my vote to this change. Support Free OSS.

Morethanevil commented 6 months ago

I vote for this change too. Valkey seems to be the most promising candidate

thomas992 commented 5 months ago

I second Valkey.

Morethanevil commented 3 months ago

Any news on this?

madolson commented 2 days ago

Is there any update on this? It looks like the docker compose file is now relying on the proprietary version of Redis. (The license was formally changed in 7.4, which is now the head of 7-alpine). The snapshots in Redis 7.4 are not compatible with other Valkey or other engines, so maybe at the very least that file should pin the version to 7.2-alpine to retain compatibility.