thraxil / cask

content addressed storage cluster with REST interface
BSD 3-Clause "New" or "Revised" License
4 stars 0 forks source link

Project status #37

Open clrxbl opened 1 year ago

clrxbl commented 1 year ago

Just stumbled upon this project and I'm just wondering what is the state of the project currently, is it safe to be used in e.g. production environments?

This project seems like a good contender to replace our usage of Consul's key-value store which we currently abuse & CAS seems like a better solution for our usecase.

thraxil commented 1 year ago

Hi @clrxbl!

So, yeah, the status is in a bit of a weird spot. I've been running a 10 node cask cluster for about 9 years (the life of this codebase) and storing a few TB of my own data (my music collection, raw photos, DVD rips, backups, etc.) and it's been reliable and stable (I've lost and replaced hard drives but it recovers like it should and I haven't lost any data).

But, I never really promoted this project or pushed it beyond my own use-cases. I don't really know of anyone else using it for production.

So, I'd consider it stable and maintained, but really only for my own fairly narrow use-case. Eg, I'm not really using the S3 integration (and I dropped Dropbox and other integrations when their APIs changed and I didn't have bandwidth to set up new accounts, etc. just to keep them running). When I originally designed cask, security also wasn't a major concern of mine, so SSL support is pretty minimal and it all pretty much expects that it's going to be running on a private network. If your needs are similar, it might be fine.

Otherwise, I do keep it updated as far as security updates for dependencies and fixing any bugs that I encounter (that just hasn't happened in a while for me because my usage is so stable). I'm also happy to accept contributions and improvements.

I've done my share of abusing Consul KV in my day, so I have an idea where you're coming from. Relevant for comparison, I'd say:

clrxbl commented 1 year ago

I've already had to raise Consul KV's 512k limit to 1 or 2MB and it keeping more data in memory seems to have been a bit problematic over time as I'm currently dealing with it running out of memory and eating a lot of CPU when there's a lot of applications reading data from it at once.

I've also had to deal with Consul's cluster recovery being very annoying in the past aswell e.g. leader election never electing a leader, but I believe versions 1.14+ fixed quite a few issues regarding that & leader election.

I'd be using Cask internally only so the concerns about security I'm generally okay with and I don't intend on using S3 either.

Thanks for the in-depth reply, I'll be sure to look at cask again to re-evaluate my options, it seems like an interesting project.