Tuesday, May 1, 2018

Forking Redis Followup

This past Thursday, I announced the forking of Redis for SSL + Transactions + performance improvements, as well as the release of an updated redis-benchmark client to benchmark your Redis + SSL system. You can read all of it here.

What I didn't know, is that 7 days earlier an engineer for AWS named Madelyn Olson had submitted a PR to provide SSL support to Redis. I missed that PR, and the earlier RCP in my searches. Later Thursday evening, Salvatore stated that he'd be accepting the PR. Having since read the PR, I like her code better than mine, and she solves some ssl buffering and no-disk replication problems better than the solutions I had in mind. Benchmarking her changes sees 5-10% better performance than my changes in the few tests I've run, and reading code tells me that she recognized better integration points, and built a better SSL/TLS integration with fewer memcopies.

So I'm definitely going to be using Madelyn's SSL changes instead of mine, even if I did spend 9 weeks on my changes. Better code is better code. Kudos Madelyn. :)

Salvatore doesn't seem interested in my benchmark changes for more/better metrics and plotting, based on his most recent email. You can always compile from my sources, and I'll try to make it an easy patch to cherry-pick if you just want that one thing, after Madelyn's changes have been merged.

I've also been asked to rename the project, which is not entirely surprising. That will happen in the next few weeks, with a replacement README that points you to the correct place at the original repository location.

For transactions and faster startup; given how many people read my original release notes (12k+), and how much money was donated / pledged ($0), I'm going to go out on a limb and think that folks aren't all that interested in donating money, and instead are looking to get something completely free and open source, or a commercial release to outsource their risk.

As such, instead of spending the next 3-6 weeks finishing and tuning the last of my SSL/TLS changes for that open source release (which no longer seem necessary, given Madelyn's PR), I'm going to spend a bit more time cleaning up my transactions work, get some benchmarks in, provide datasets and timing for my faster startup time work, and do all of the necessary project renames. I don't know when I'll be releasing more than just benchmark changes and/or renames, but I'm working on it 5-6 days a week.

I might do some short videos on the hilarity of someone else beating you to release software, which has happened 3 times in the last 6 months. We will see.

Again, if you're interested in Lua and other transactions with rollbacks, I've got you covered, just let me know. More is in the works for my fork than what I've announced, but I don't like talking unless I've got something done enough to demo. I hope you are solving your problems, and that my fork can help solve more.