New forked Redis variant

126 views
Skip to first unread message

Josiah Carlson

unread,
Apr 26, 2018, 10:58:36 AM4/26/18
to redi...@googlegroups.com
Hey folks,

Probably the only/last time I'll post this here, but I'm forking Redis for a collection of reasons. You can see the announcement, read the features, and see the benchmarks:


Regards,
Dr. Josiah Carlson
Author of Redis in Action, open source, and more

Itamar Haber

unread,
Apr 26, 2018, 12:24:29 PM4/26/18
to Redis DB
Hello Josiah,

What are your reasons?

Cheers,
Itamar

--
You received this message because you are subscribed to the Google Groups "Redis DB" group.
To unsubscribe from this group and stop receiving emails from it, send an email to redis-db+u...@googlegroups.com.
To post to this group, send email to redi...@googlegroups.com.
Visit this group at https://groups.google.com/group/redis-db.
For more options, visit https://groups.google.com/d/optout.

Salvatore Sanfilippo

unread,
Apr 26, 2018, 12:59:45 PM4/26/18
to redi...@googlegroups.com
Hello Josiah,

It's great that you are still working at improving Redis. You know that I don't think certain features like rollbacks are a good fit, but I want to merge the SSL patch that AWS contributed a few days ago, and I may also merge the changes you did to soeedup loading if they look in line with the project other concerns.

I've nothing against people forking but another possibility could be for you to leverage modules to implement the rollback that you are interested in, and for SSL as I said there is going to be an official implementation. The speedups so far are a bit vague since there is any information but we can work on that.

Cheers
Salvatore

Josiah Carlson

unread,
Apr 27, 2018, 1:18:01 AM4/27/18
to redi...@googlegroups.com
Hello Salvatore and Itamar,

If SSL is making it in, then that is one less thing that I have to worry about. Awesome. I'd been referring to https://redis.io/topics/encryption any time someone asked me about it. Glad to see that change. That might just change what I spend the next 3-6 weeks doing. I only wish it could have changed what I spent the last 9 weeks doing. :P Such is life. I'll have to run some benchmarks tonight.

Less self-deprecating humor aside, the module system offers ~80% of what I need, and the last 20% isn't worth arguing or fighting with you to add. Which is more or less why I'm forking. There are things that I need from Redis that I'm not willing to fight someone over or about, I *need* them. So putting in a request, waiting on a PR, etc., to *maybe* get functionality that I think should have been there already (transactions PR was created 33 months ago), doesn't seem worth it to me. I'd rather just start with what I'm allowed to start with, cut out what I don't want, add what I do, and see where it takes me. I've got a list of about a dozen things that I need to do that hasn't seen any movement in the 8 years I've been using Redis, and it kind of makes me sad. So I'm going to make me happy.

TL;DR; I walked the proposals path in Python land for 4-5 years, never found success there. I haven't historically found success with requesting features/additions in Redis, despite whatever "standing" I had in the community, or the relationship I had with your employer. I try not to do things I don't find success in. So I'm done requesting, I'm forking. I will create what I need.

Regarding the speedup code, some of it is MIT licensed. You seem to require everything to be BSD 3-clause licensed per COPYING and CONTRIBUTING. Some of my SSL stuff is derived from MIT licensed stuff, which is another reason why I wasn't worrying about PRs, etc.

If you are traveling home from Redisconf, I wish you safe travels.
 - Josiah


On Thu, Apr 26, 2018 at 9:59 AM, Salvatore Sanfilippo <ant...@gmail.com> wrote:
Hello Josiah,

It's great that you are still working at improving Redis. You know that I don't think certain features like rollbacks are a good fit, but I want to merge the SSL patch that AWS contributed a few days ago, and I may also merge the changes you did to soeedup loading if they look in line with the project other concerns.

I've nothing against people forking but another possibility could be for you to leverage modules to implement the rollback that you are interested in, and for SSL as I said there is going to be an official implementation. The speedups so far are a bit vague since there is any information but we can work on that.

Cheers
Salvatore

Il gio 26 apr 2018, 07:58 Josiah Carlson <josiah....@gmail.com> ha scritto:
Hey folks,

Probably the only/last time I'll post this here, but I'm forking Redis for a collection of reasons. You can see the announcement, read the features, and see the benchmarks:


Regards,
Dr. Josiah Carlson
Author of Redis in Action, open source, and more

--
You received this message because you are subscribed to the Google Groups "Redis DB" group.
To unsubscribe from this group and stop receiving emails from it, send an email to redis-db+unsubscribe@googlegroups.com.

To post to this group, send email to redi...@googlegroups.com.
Visit this group at https://groups.google.com/group/redis-db.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Redis DB" group.
To unsubscribe from this group and stop receiving emails from it, send an email to redis-db+unsubscribe@googlegroups.com.

Salvatore Sanfilippo

unread,
Apr 27, 2018, 11:16:50 AM4/27/18
to redi...@googlegroups.com
Ok Josiah, I understand your POV, and open source allows forking as a
right, so have fun coding.

I've just two requests to avoid confusion within the community:

1. Please pick a name for your fork instead of using Redis. I really
want the Redis name to be associated with exactly the source code that
I control directly, and that people are used to find stable and
functional. In theory you can do even a much better work than I did,
but I've no control on your work, so please just fork with a different
name. So far all the forks changed name fortunately.

2. Please make sure that the name is also replaced in the user-facing
stuff, like in INFO, output "foobar_server" instead of "redis_server",
so that it's clear is not Redis, especially in crash reports,
otherwise it is very likely that we'll get confusion about what such
an object is, and get the bug reports that inevitably will arise.

As a third point, and this is not a request but a kind hope to have a
community of good citizens: try to release the changes under the BSD
license.
Because otherwise we create a monoculture where people get from Redis
and return nothing back. This is happening already enough with the
cloud. For instance while I was *not* doing all the things you wanted,
I did modules and streams and PSYNC2 and so forth, that you probably
as one of the best person to assemble data structures to solve
problems in our community, will find useful. However if your fork will
be able to incorporate the official change, but not the contrary, it
is unfortunate: legal, but unfortunate. For instance another fork
introduced the concept of GEO indexing in Redis, and thanks to this we
now have GEORADIUS and so forth (plus a lot of work did after, but
still this is how it started). Then the original fork probably was not
used much, but still it hybridated with Redis.

Other than that, happy hacking!
Salvatore
>>> email to redis-db+u...@googlegroups.com.
>>> To post to this group, send email to redi...@googlegroups.com.
>>> Visit this group at https://groups.google.com/group/redis-db.
>>> For more options, visit https://groups.google.com/d/optout.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Redis DB" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to redis-db+u...@googlegroups.com.
>> To post to this group, send email to redi...@googlegroups.com.
>> Visit this group at https://groups.google.com/group/redis-db.
>> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Redis DB" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to redis-db+u...@googlegroups.com.
> To post to this group, send email to redi...@googlegroups.com.
> Visit this group at https://groups.google.com/group/redis-db.
> For more options, visit https://groups.google.com/d/optout.



--
Salvatore 'antirez' Sanfilippo
open source developer - Redis Labs https://redislabs.com

"If a system is to have conceptual integrity, someone must control the
concepts."
— Fred Brooks, "The Mythical Man-Month", 1975.

Josiah Carlson

unread,
Apr 30, 2018, 8:01:09 PM4/30/18
to redi...@googlegroups.com
Replies inline.

On Fri, Apr 27, 2018 at 8:16 AM, Salvatore Sanfilippo <ant...@gmail.com> wrote:
Ok Josiah, I understand your POV, and open source allows forking as a
right, so have fun coding.

I've just two requests to avoid confusion within the community:

1. Please pick a name for your fork instead of using Redis. I really
want the Redis name to be associated with exactly the source code that
I control directly, and that people are used to find stable and
functional. In theory you can do even a much better work than I did,
but I've no control on your work, so please just fork with a different
name. So far all the forks changed name fortunately.

I don't like to break links, so I added this to the top of the readme in the short term before I go and do all of the other cleaning that is necessary:

There should be no ambiguity in the short term. If someone gets confused (they won't), I'll point them to that commit.

2. Please make sure that the name is also replaced in the user-facing
stuff, like in INFO, output "foobar_server" instead of "redis_server",
so that it's clear is not Redis, especially in crash reports,
otherwise it is very likely that we'll get confusion about what such
an object is, and get the bug reports that inevitably will arise.

When I do the cleanup, all but a small number of 'redis' and all logos will be replaced with some other name/logos. The last remaining references to Redis will be necessary for the aspect of compatibility statements, references to other related work, links to your official Redis, various vendors, documentation, etc. I probably won't have time to do that for a few weeks, but again, there should be no confusion from anyone.

As a third point, and this is not a request but a kind hope to have a
community of good citizens: try to release the changes under the BSD
license.

For code that gets released and is derived from BSD source code, of course. But not everything that I'm working on or with is BSD licensed, and I'm not going to limit my choice of solutions to only BSD-licensed solutions.

I went ahead and also read all of the changes in the patch from Madelyn Olson, and commented. It's good code. I'll definitely be using hers instead of mine. If you want my benchmark changes for the graphs and more precise per second rates, let me know and I can set up a PR after hers is merged in.
 
Because otherwise we create a monoculture where people get from Redis
and return nothing back.

I'm not sure what I've been doing other than contributing since I joined the community. Conservatively, I've spent 5000+ hours since 2010 writing emails, blog posts, a book, talks in Chicago, Portland, SF, LA, and authoring 3 other open-source projects relating to Redis. I'm sorry if you don't recognize my previous and/or continuing contributions to the community. Literally all I've done since joining is to give to the community, in the form if time, expertise, and more software.

This is happening already enough with the
cloud. For instance while I was *not* doing all the things you wanted,
I did modules and streams and PSYNC2 and so forth, that you probably
as one of the best person to assemble data structures to solve
problems in our community, will find useful. However if your fork will
be able to incorporate the official change, but not the contrary, it
is unfortunate: legal, but unfortunate. For instance another fork
introduced the concept of GEO indexing in Redis, and thanks to this we
now have GEORADIUS and so forth (plus a lot of work did after, but
still this is how it started). Then the original fork probably was not
used much, but still it hybridated with Redis.

As "one of the best", I answered any and all questions because every problem the community had and still has are clearly solvable with a bare minimum of effort. The community is just missing someone who knows and cares enough to answer the questions. I stopped caring because it didn't matter how much time I'd sunk into supporting Redis, my words and efforts made *no difference* to the direction of any aspect of the Redis project, except to improve its adoption, and bring more people to ask questions. As stated before, that's not enough for me; I need Redis to be something more than what it is.

And I honestly think modules are the wrong choice for 99.9% of users and uses for several different reasons. But I've never been a part of the Redis decision making process, and I'm certainly not going to convince you of an alternate solution here (or anywhere), as my opinion didn't matter when I was posting here daily. Why would it matter now? And I don't want to get into trading feature for feature of what you did instead of what I wanted, because had you been interested in *any* of the things that I had been talking about, I'd have written and maintained at least 99% of it.

I wanted to work with you on all of the changes that I've already made and will make. I emailed you (and your employer) in 2015 about them, stating what they were and what I wanted in terms of software. What I was willing to contribute in terms of time, where it could go, etc. In the 6 months that followed, that turned into some phone calls, me helping with Sphinx docs and a time series whitepaper for your employer, and you saying that you weren't interested in the ideas I was trying to communicate.

It kind of makes it hard to contribute, or want to contribute, when the guy who merges doesn't want to hear what you've got, or have conversations about what Redis could be with a few small changes (and an extra engineer or two). Now, all I'm doing is building the software you *literally* didn't want to hear about in 2015. And now you want to be able to merge when I'm done, because you want me to be a good member of the community, and because other Redis forks died?

You are a funny guy Salvatore, and I'm not going to make any promises.

 - Josiah



>>> To post to this group, send email to redi...@googlegroups.com.
>>> Visit this group at https://groups.google.com/group/redis-db.
>>> For more options, visit https://groups.google.com/d/optout.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Redis DB" group.
>> To unsubscribe from this group and stop receiving emails from it, send an

>> To post to this group, send email to redi...@googlegroups.com.
>> Visit this group at https://groups.google.com/group/redis-db.
>> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Redis DB" group.
> To unsubscribe from this group and stop receiving emails from it, send an

> To post to this group, send email to redi...@googlegroups.com.
> Visit this group at https://groups.google.com/group/redis-db.
> For more options, visit https://groups.google.com/d/optout.



--
Salvatore 'antirez' Sanfilippo
open source developer - Redis Labs https://redislabs.com

"If a system is to have conceptual integrity, someone must control the
concepts."
       — Fred Brooks, "The Mythical Man-Month", 1975.
--
You received this message because you are subscribed to the Google Groups "Redis DB" group.
To unsubscribe from this group and stop receiving emails from it, send an email to redis-db+unsubscribe@googlegroups.com.

Salvatore Sanfilippo

unread,
May 1, 2018, 7:33:39 AM5/1/18
to redi...@googlegroups.com
Hello Josiah,

I feel like it is not useful to argue given the tone of your email. I'll just say that for branding protection (not just confusion) I ask you formally to remove any reference from the Redis name from your fork. Other than that I've no problems with people forking, which is why I chose to write open source. Good hacking.

Cheers,
Salvatore

Replies inline.


>>> To post to this group, send email to redi...@googlegroups.com.
>>> Visit this group at https://groups.google.com/group/redis-db.
>>> For more options, visit https://groups.google.com/d/optout.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Redis DB" group.
>> To unsubscribe from this group and stop receiving emails from it, send an

>> To post to this group, send email to redi...@googlegroups.com.
>> Visit this group at https://groups.google.com/group/redis-db.
>> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Redis DB" group.
> To unsubscribe from this group and stop receiving emails from it, send an

> To post to this group, send email to redi...@googlegroups.com.
> Visit this group at https://groups.google.com/group/redis-db.
> For more options, visit https://groups.google.com/d/optout.



--
Salvatore 'antirez' Sanfilippo
open source developer - Redis Labs https://redislabs.com

"If a system is to have conceptual integrity, someone must control the
concepts."
       — Fred Brooks, "The Mythical Man-Month", 1975.

--
You received this message because you are subscribed to the Google Groups "Redis DB" group.
To unsubscribe from this group and stop receiving emails from it, send an email to redis-db+u...@googlegroups.com.

To post to this group, send email to redi...@googlegroups.com.
Visit this group at https://groups.google.com/group/redis-db.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Redis DB" group.
To unsubscribe from this group and stop receiving emails from it, send an email to redis-db+u...@googlegroups.com.

Pierre Chapuis

unread,
May 2, 2018, 4:05:11 AM5/2/18
to Redis DB
Le mardi 1 mai 2018 02:01:09 UTC+2, Josiah Carlson a écrit :

As a third point, and this is not a request but a kind hope to have a
community of good citizens: try to release the changes under the BSD
license.

For code that gets released and is derived from BSD source code, of course. But not everything that I'm working on or with is BSD licensed, and I'm not going to limit my choice of solutions to only BSD-licensed solutions.

Not going to bother answering the rest of this thread because I don't like where this is going, and IANAL (but I have been dealing with this Open Source licensing stuff a few times)...

The MIT license explicitly gives licensees the right to sublicense. This means basically anyone can take any MIT code and re-license it as something else, provided they also keep the original license alongside it. In general this is done for GPL or Apache2, but I am pretty sure any of you can relicense this code as BSD.
Reply all
Reply to author
Forward
0 new messages