35 votes

The race to replace Redis

27 comments

  1. [3]
    vord
    Link
    Ultimately one of the biggest problems with moving to these commercial-restricted versions of open licences is that they often cease to be GPL-compatible. You can't combine and redistribute SSPL...

    Ultimately one of the biggest problems with moving to these commercial-restricted versions of open licences is that they often cease to be GPL-compatible.

    You can't combine and redistribute SSPL and GPL code. And that's problematic because that's how we arrived at the situation where distributing OpenZFS with Linux is technically illegal.

    15 votes
    1. [2]
      Carrow
      Link Parent
      Huh, I'd been reading about ZFS lately and felt I had a knowledge gap, this certainly answers some questions I had. Here's the article about it for interested folks:...

      Huh, I'd been reading about ZFS lately and felt I had a knowledge gap, this certainly answers some questions I had. Here's the article about it for interested folks:

      https://sfconservancy.org/blog/2016/feb/25/zfs-and-linux/

      6 votes
      1. sparkle
        Link Parent
        Interesting, I assume that the Debian solution is how Proxmox is able to distribute ZFS? It's been a long time since I set up Proxmox with ZFS but I feel like I do recall there being some warnings...

        Interesting, I assume that the Debian solution is how Proxmox is able to distribute ZFS? It's been a long time since I set up Proxmox with ZFS but I feel like I do recall there being some warnings about the incompatible licensing when installing it since it's not enabled by default.

        1 vote
  2. skybrian
    Link
    From the article: ... ...

    From the article:

    [I]t should be apparent that code contribution is beside the point. Redis is a venture-backed company that has taken more than $350 million in funding over many rounds since 2011. The company, and its investors, seem to have calculated that they can safely move away from open source to try to capture more revenue.

    They have some reason to believe this is the case, if MongoDB's results are any guide. [...]

    Is it good for business? MongoDB has kept growing, adding customers, and brought in $1.68 billion its last fiscal year. That's more than a 30% increase, and its Atlas database service revenue also increased more than 30%, demonstrating that a lot of companies would rather pay to use the service than try to host it themselves. Despite all that, the company is still losing money—more than $345 million in the same time period.

    But, investors may be more interested in stock price than actual profit. The company's stock started around $33 a share when it went public, but is now more than $350 a share. Redis's investors would likely be happy if it can produce similar results.

    ...

    Venture-backed vendors seem to have, as O'Grady wrote last year, reached a consensus that they can move away from open source. Especially if they are not "actively opposed by other commercial interests, foundations and other interested industry participants". Here, Redis may have miscalculated the industry mood.

    When Hashicorp adopted BSL for its projects last year, a fork of its Terraform project appeared within days and was embraced by the Linux Foundation under the name OpenTofu. On March 28, the foundation announced that it was supporting Valkey, a direct fork of Redis 7.2.4, with Amazon Web Services (AWS), Google Cloud, Oracle, Ericsson, and Snap named as backers of the effort.

    The Valkey fork got its life just a few days after the Redis license change. Olson wrote that she and "various former Redis contributors" had started working on a fork, using the original three-clause BSD license, with "placeholderkv" as a temporary name. Olson, Zhao, Viktor Söderqvist, and Ping Xie were listed as maintainers. According to Olson this was not an AWS fork of Redis, but "just me trying to keep the continuity with the community". KeyDB was considered, but it has diverged to the point that it "is missing a lot of stuff the community is used to".

    The KeyDB fork was created in 2019 for technical, rather than licensing, reasons. The project, which billed itself as "a faster drop in alternative to Redis" was created by John Sully and Ben Schermel, who wanted a multithreaded version and were not able to persuade Redis maintainers to go in that direction. Sully and Schermel started a company, also called KeyDB, that offered a proprietary enterprise version. The entire codebase became fully open source under the three-clause BSD license when KeyDB was acquired by Snap in 2022.

    ...

    Drew DeVault, founder and CEO of SourceHut, has also created a fork named Redict based on Redis 7.2.4, but chose to use the LGPLv3. In his announcement post, he said that the choice of license was "a deliberate one which balances a number of concerns". DeVault wanted a license that was copyleft but "as easy as possible for users to comply" with the license and to ease integrations with Redis-compatible modules or Lua plugins that can be used to perform operations within Redis. He also noted that Redict will have no contributor license agreement (CLA), but contributors would be asked to verify contributions with a developer certificate of origin. Despite his connection to SourceHut, DeVault chose to host Redict on Codeberg to "provide a comfortable and familiar user experience for anyone comfortable with the GitHub-based community" of Redis.

    10 votes
  3. [22]
    unkz
    Link
    Well, my preference would be for Valkey, and given AWS’s involvement it seems inevitable that I’ll end up using it anyway. Redict is GPL which I view as basically poison, and KeyDB is too out of date.

    Well, my preference would be for Valkey, and given AWS’s involvement it seems inevitable that I’ll end up using it anyway. Redict is GPL which I view as basically poison, and KeyDB is too out of date.

    4 votes
    1. [21]
      vord
      Link Parent
      I would like to understand why you think the GPL is poison. I suppose within the context of 'I wish for my end result to be closed source' it makes sense, but that does seem to be a very selfish...

      I would like to understand why you think the GPL is poison.

      I suppose within the context of 'I wish for my end result to be closed source' it makes sense, but that does seem to be a very selfish take on open source.

      The GPL is why Linux succeeded where the BSDs failed.

      18 votes
      1. [4]
        skybrian
        Link Parent
        There are other possible reasons. One reason might be the lawsuits resulting in a legal cloud over BSD? That went on for years. It’s also possible that Linux being just a kernel was better from an...

        There are other possible reasons.

        One reason might be the lawsuits resulting in a legal cloud over BSD? That went on for years.

        It’s also possible that Linux being just a kernel was better from an adoption standpoint, since it encouraged people to make their own distributions, and there sure are a lot of them. Linux having a stable userspace-kernel API makes it easier to swap in new kernel versions.

        Unstable internal API’s did a lot to encourage people to put device drivers in-tree.

        All these reasons are specific to being the kernel of an OS, so they may not apply to other software.

        8 votes
        1. [3]
          vord
          Link Parent
          You make good points WRT it being a kernel, but I feel that it applies equally well for all other software as well. Maintaining a fork that tracks upstream is a task that will always increase in...

          You make good points WRT it being a kernel, but I feel that it applies equally well for all other software as well.

          Maintaining a fork that tracks upstream is a task that will always increase in difficulty as time wears on. Unless there is a significant reason to maintain it yourself, you will reduce your own burden by sending your changes upstream.

          So if you don't pass on upstream, the more likely scenario is that you 'freeze' at whichever version introduces a large change and you stop receiving benefits from upstream and start needing to be a maintainer for the whole thing.

          4 votes
          1. [2]
            skybrian
            Link Parent
            It's possible to define a stable plugin API. (This is effectively what browsers do for websites.) It might be possible to define a stable API for a device driver and some people wanted to do that,...

            It's possible to define a stable plugin API. (This is effectively what browsers do for websites.)

            It might be possible to define a stable API for a device driver and some people wanted to do that, but Linus didn't do that, deliberately.

            GCC did the same thing, until Apple got clang and LLVM started, because GCC wasn't meeting their needs. It's possible to block things with a copyleft license for a while, maybe many years, but reinventing the wheel is pretty common in the industry.

            Although it's not a copyleft license, we are seeing this play out with Redis. Linux Weekly News didn't pick a winner, but it sounds like Valkey has a good chance with backing from Amazon and Google. I don't think they'd go for a copyleft license.

            5 votes
            1. vord
              Link Parent
              What I'm hearing is "when you have virtually infinite money, regular rules of maintainence overhead do not apply." While Apple can afford to reinvent the wheel, I'm doubtful that applies to people...

              What I'm hearing is "when you have virtually infinite money, regular rules of maintainence overhead do not apply."

              While Apple can afford to reinvent the wheel, I'm doubtful that applies to people with 1/1000 of the resources.

              6 votes
      2. [16]
        unkz
        Link Parent
        Maybe poison isn't the best word. Maybe a disease or an infection is more appropriate, since that's what it does -- it infects projects and their downstream products with a philosophy that I don't...

        Maybe poison isn't the best word. Maybe a disease or an infection is more appropriate, since that's what it does -- it infects projects and their downstream products with a philosophy that I don't really agree with. I don't want to participate in that, although I have and will when necessary.

        I take particular issue with describing non-GPL open source as being selfish of all things. The GPL to me, is by far the most selfish way of releasing source -- a GPL user is putting legal requirements on users of that source, in order to control them and the future of that source code, so that they (and others) get those future benefits. Contrast that with the MIT or BSD licenses, which are far more selfless (aside from the attribution requirements) -- anyone can do anything they want with the code.

        3 votes
        1. [14]
          vord
          Link Parent
          See, I don't consider "I'm giving this away, with the only condition being that you can't take it and put a lock on it" as being selfish. It's enforced selflessness, which I see as comparable to...

          See, I don't consider "I'm giving this away, with the only condition being that you can't take it and put a lock on it" as being selfish. It's enforced selflessness, which I see as comparable to resolving the paradox of tolerance (we tolerate everything except intolerance). It doesn't impact you or your users in any way other than "you're not allowed to put a lock on it." I see it as a necessary consumer protection hack which provides a much-needed balance against any given developer/company in an age of infinitely strong legal protection for large players.

          While I agree that MIT and BSD style licenses are not inherently selfish, I feel that selfish people tend to gravitate towards them because the GPL prevents a lot of downstream selfish behavior. Not everybody who uses MIT/BSD is selfish, but selfish people aren't using the GPL.

          17 votes
          1. [13]
            TurtleCracker
            Link Parent
            You can't put a lock on it though, even if it is BSD or MIT. As you can see from the very subject of this article. Redis attempted to "lock it" away but people can just fork from the last point it...

            You can't put a lock on it though, even if it is BSD or MIT. As you can see from the very subject of this article. Redis attempted to "lock it" away but people can just fork from the last point it was BSD.

            GPL enforces it's views on all other attached code. BSD, MIT, etc... licensed code advance all human endeavors without restrictions - open source, closed source, non-profit, commercial - it doesn't matter.

            4 votes
            1. [12]
              vord
              (edited )
              Link Parent
              And the only one in your list that the GPL impacts is closed source. Hence why I don't get all the uproar. If you're genuinely commited to open source, the GPL is no barrier. And it's OK to not be...

              And the only one in your list that the GPL impacts is closed source.

              Hence why I don't get all the uproar. If you're genuinely commited to open source, the GPL is no barrier.

              And it's OK to not be committed to open source. I just don't like when (especially companies) are two-faced about it.

              Closed source is competitive advantage via secrecy. And that's a pattern I'd rather see go away...mostly by eroding the legal protections afforded to it.

              10 votes
              1. [11]
                TurtleCracker
                Link Parent
                I think the point is that many people want to be genuinely committed to making good software. There is almost an implicit ideological argument present in the GPL that many do not care about and...

                I think the point is that many people want to be genuinely committed to making good software. There is almost an implicit ideological argument present in the GPL that many do not care about and find restrictive.

                If my code is GPL, then all code using my code must also be GPL. It can't be BSD, even though BSD is open source. It can't be Apache. It must be GPL.

                If my code is BSD, you can integrate any use any license with it you want. You can pull BSD code into a GPL project with no issue, but you can't pull GPL code into a BSD project.

                BSD code can benefit more people and more projects when compared to GPL code.

                6 votes
                1. [9]
                  vord
                  (edited )
                  Link Parent
                  I won't mince words, the GPL is explicitly ideological. There's a manifesto and everything. The whole point of copyleft is to break software secrecy as a tool. To eliminate the use of NDAs and...

                  I won't mince words, the GPL is explicitly ideological. There's a manifesto and everything.

                  The whole point of copyleft is to break software secrecy as a tool. To eliminate the use of NDAs and other restrictive licensing terms. Which commercial entities have a huge problem with, but most individuals, universities, and governments really have no major issue with.

                  11 votes
                  1. [8]
                    TurtleCracker
                    Link Parent
                    That's the issue. I'm interested in writing software, and when I write open source software I want it to help everyone. Not just people that agree with me ideologically.

                    That's the issue. I'm interested in writing software, and when I write open source software I want it to help everyone. Not just people that agree with me ideologically.

                    4 votes
                    1. [7]
                      vord
                      Link Parent
                      Everyone, except people who end up using a closed-source product that contains your code. GPL also covers those people. Ignoring those people is creating an artificial divide between consumers of...

                      Everyone, except people who end up using a closed-source product that contains your code.

                      GPL also covers those people.

                      Ignoring those people is creating an artificial divide between consumers of software and creators of software.

                      12 votes
                      1. [6]
                        TurtleCracker
                        Link Parent
                        I don't think we will agree here. They can simply fork the code at the time prior to it going closed source. I do not view that as a loss of anything. This is literally what is happening in the...

                        I don't think we will agree here. They can simply fork the code at the time prior to it going closed source. I do not view that as a loss of anything.

                        This is literally what is happening in the post of this article and is a feature, not a defect.

                        3 votes
                        1. [5]
                          vord
                          (edited )
                          Link Parent
                          Agreed that we probably won't find common ground, but I'll leave with a totally made up example. Bob releases a wireless display driver as BSD. It works, but there's a small latency bug that's...

                          Agreed that we probably won't find common ground, but I'll leave with a totally made up example.

                          Bob releases a wireless display driver as BSD. It works, but there's a small latency bug that's hard to reproduce. Sony takes the driver, finds and fixes the lag during testing, then deploys it in their new PSVR5.

                          Sony benefited from patching the BSD code. But none of Sony's customers can see their changes, and odds are nobody knows that Bob wrote 95% of the PSVR5 driver...and everyone else using Bob's code is still silently suffering from a weird edge case bug.

                          If Sony were forced to disclose the driver code, some nerd would realize it's Bob's driver, yank the fix and push it upstream. Everybody who uses Bobs driver benefits now, not just Sony.

                          We have to remember that all intellectual property laws are merely societal frameworks intended to bring the most benefit to society. The whole reason we invented patents as we did was so that useful inventions could be copied freely after a time-limited exclusivity.

                          With the sick state of copyright as it exists today, closed source code means that code is defacto cut off forever. The Apollo 11 source code would still be under copyright protection if it was made by a private company, and pretty sure that most computer code from that far back is borderline useless.

                          I contend that there is no societal value to be had by allowing Sony to distribute closed drivers, but there is substantial benefit to any user who asks to see source code getting a copy of it and be permitted to modify and redistrbute accordingly.

                          Would we have Windows if this was the law of the land? Probably not. But we'd still have plenty of games, business software, and operating systems, all of which far more interoperable than they are now.

                          Sure, for infrastructury server stuff like Redis, the MIT and GPL are somewhat comparable. But once you extend that to code that gets shipped to other people the flaws in the BSD license style become more apparent.

                          The WRT54G is still a functional piece of networking gear, recieving security updates 21 years later because the GPL worked.

                          And yes, I legitimately use it, it works fantastic for airgapping all those horrific wifi IoT things and lets me keep my good 2.4GHz network very secure, while using about 3W to do it.

                          13 votes
                          1. [4]
                            TurtleCracker
                            (edited )
                            Link Parent
                            As a counter for your example: Sony needs a wireless display driver. They find one licensed in AGPL. Legal consul explains they cannot use this license. Sony writes a new wireless display driver...

                            As a counter for your example:

                            Sony needs a wireless display driver. They find one licensed in AGPL. Legal consul explains they cannot use this license. Sony writes a new wireless display driver with new behaviors, new defects, and new security issues.

                            The entire premise of your example assumes that a private company would opt to make their entire product GPL and share patches backwards. Most private companies will not do this. They would write their own product from the ground up instead or simply decide the investment cost in producing that product is too high and scrap it.

                            My company uses open source software - but only permissive licenses. We've contributed back to these projects. We've also released components of our own software under Apache 2.0 for others to use.

                            4 votes
                            1. [3]
                              vord
                              Link Parent
                              Oh I get that's how it is today. I just contend that as a society, closed source software isn't a thing that should be legally allowed to exist. And that anything and everything that breaks that...

                              Oh I get that's how it is today.

                              I just contend that as a society, closed source software isn't a thing that should be legally allowed to exist. And that anything and everything that breaks that down even a tiny bit helps.

                              In my world, after Sony writes their own driver from scratch, if I buy their unit I should have the legal right to ask for the human readable source code to modify as I see fit, and to share that code.

                              Binaries should only be seen as a convienience, not some magical seperate good. Like providing me an MP3 download with my CD purchase.

                              9 votes
                              1. [2]
                                TurtleCracker
                                Link Parent
                                I would prefer the world you describe, but it does not exist. The overwhelming majority of companies across the world will not use GPLv3 or AGPL code for any software project.

                                I would prefer the world you describe, but it does not exist. The overwhelming majority of companies across the world will not use GPLv3 or AGPL code for any software project.

                                3 votes
                                1. vord
                                  Link Parent
                                  To that end, the phrase that comes to mind: Be the change you want to be in the world. Write AGPL software. If companies don't want to use it, they'll have to pay some programmers to write...

                                  To that end, the phrase that comes to mind:

                                  Be the change you want to be in the world.

                                  Write AGPL software. If companies don't want to use it, they'll have to pay some programmers to write something else.

                                  6 votes
                2. unkz
                  Link Parent
                  This is precisely it. The GPL prioritizes ideology over innovation.

                  This is precisely it. The GPL prioritizes ideology over innovation.

                  2 votes
        2. pvik
          Link Parent
          The fact you're able to use GPL code, even if you disagree with it's philospphy, is the crux of GPL in my view. GPL was created to make sure code remained free, and from that perspective it makes...

          it infects projects and their downstream products with a philosophy that I don't really agree with. I don't want to participate in that, although I have and will when necessary.

          The fact you're able to use GPL code, even if you disagree with it's philospphy, is the crux of GPL in my view.

          GPL was created to make sure code remained free, and from that perspective it makes sense that the license "infects" projects that use GPL code. You're more than welcome to write your own code from scratch and release it however you see fit, but if you want to build on top of work of other people, who have made the decision to release code for free and under GPL, you need to honor that.

          As you identified GPL does have a philospohy behind it and I think it does a pretty decent job in spreading that philosophy.

          In my opinion the current state of software development owes a lot to GPL licensed code.

          a GPL user is putting legal requirements on users of that source, in order to control them and the future of that source code, so that they (and others) get those future benefits.

          GPL requires that work done on top of GPL code should continue to remain under GPL license and free, and as you correctly identified, everyone benefits from that. It helps build a collaborative process in the open that anyone can contribute to and it makes sure it helps everyone. I would say it's more altruistic, instead of trying to classify it on a spectrum of selfish/selfless.

          15 votes
  4. skybrian
    Link
    Followup article: Why AWS, Google and Oracle are backing the Valkey Redis fork (Tech Crunch) (Despite the headline, it doesn't say anything about Google or Oracle.) It links to an interesting...

    Followup article:

    Why AWS, Google and Oracle are backing the Valkey Redis fork (Tech Crunch)

    (Despite the headline, it doesn't say anything about Google or Oracle.)

    It links to an interesting Hacker News comment by antirez:

    When I chose BSD for Redis, I did it exactly for these reasons. Before Redis, I mostly used the GPL license. Then my beliefs about licensing changed, so I picked the BSD, since it's an "open field" license, everything can happen. One of the things I absolutely wanted, when I started Redis, was: to avoid that I needed some piece of paper from every contributor to give me the copyright and, at the same time, the ability, if needed, to take my fork for my products, create a commercial Redis PRO, or alike. At the same time the BSD allows for many branches to compete, with different licensing and development ideas.

    When authors pick a license, it's a serious act. It's not a joke like hey I pick BSD but mind you, I don't really want you to follow the terms! Make sure to don't fork or change license. LOL. A couple of years ago somebody forked Redis and then sold it during some kind of acquisition. The license makes it possible, and nobody complained. Now Redis Inc. changes license, and other parties fork the code to develop it in a different context. Both things are OK with the license, so both things can be done.

    A different thing is what one believes to be correct or not for the future of some software. That is, if I was still in charge, would I change license? But that's an impossible game to play, I'm away from the company for four years and I'm not facing the current issues with AWS impossible-to-compete-with scenario. I don't know and I don't care, it does not make sense to do such guesswork. What I know for sure is that licensing is a spectrum. I release code under the MIT or BSD, but that's just me. I understand other choices as well. What I don't understand is making the future of open source in the hands of what OSI says it's correct and wrong. Read the terms of the license, and understand if you are fine with them.

    That seems like a good point: if you're going to use BSD, that means you're okay not only with making a fork, but also changing the license. I'm not sure what he's saying about OSI, though. I think it's good for "open source" to have a fixed, consistent meaning, but that doesn't mean non-open source licenses are wrong.

    3 votes