I'm working on a small key-value database, written in C++ and powered by RocksDB. It started as a hobby, but I am trying to slowly turn it into a stable project.
The project is called BerylDB. A PHP API was released a couple of days ago, and currently working on a NodeJS gateway. I'm super excited about the project and actively improving its functionalities. The server is fully modular, which means that components can be loaded/unloaded as required. In addition to data storage, the server has channels, and clients can subscribe to them. This make it a great solution for real time analytics.
The ultimate goal of this project is to have a community of custom modules that users may be interested on. This may be useful for developers and/or companies requiring specific needs.
I'm open to collaborations! If you happen to have interested in databases, please let me know. I am on Discord. Any kind of collaboration or feedback would be appreciated. If you work for an startup or need high speed performance, please let me know!
Interested in this project! Ever since Redis become much more than a KV, I've been seeking something a bit simpler. I'll admit, Redis is simple to get stared with, but there is a lot to learn once you do.
What goals does Beryl have, both short and long? Does it aim to compete with Redis? Can you host a cluster of BerylDB instances? What type of benchmarks are you seeing?
I am currently working on a cluster system. I am gauging whether to use the Raft consensus algorithm, or the typical master-slave replication schema. Not only that, but I am working on this as we speak.
As your question about long-term goals goes: I am interested in real time analytics, so hopefully we can deploy a SaaS-based platform. I am working hard to make our modules developer-friendly, so you can have access to C++ speeds with little coding. These are dreams for now, as we are just getting started, I hope you understand.
BerylDB is still in beta, and your input is appreciated.
I was equally confused (read the headline, asked "how is that different from RocksDB?", and then read the explanation that it was based on RocksDB), but it sounds like this is actually an alternative to Redis, not RocksDB. So the difference is that it's exposed over a network, rather than embedded locally.
It says the network key should be "Name of global network". Not sure what that is, and I don't see anything using it, printing it, etc. What's this for?
I'll research a bit on providing a different approach. I am now thinking about returning arrays (containing a $status var), but will remain open to ideas.
Both the redis and memcached PHP apis return boolean false when their equivalent of get() is called and no such key exists.
Personally, I'd stick with that and raise an exception on network and similar types of errors. PHP also supports trigger_error() but there doesn't seem to be top level guidance on errors vs exceptions. Try/catch just seems more straightforward to me.
Looks interesting! Do you have plans to add aggregations and analytics functions? It seems like you can do simple counting with TOUCH but I didn’t see any SUM etc. Can it run in-memory or just on disk? If in-memory how does it benchmark vs Redis? Thanks and congrats on the launch!
Neat!.
Feature request:
1) Please consider adding a rust helper library
2) Please consider making backups and fault-tolerance easier than current solutions
Haha this is cute the author has now changed it to have the quotes. I think they misunderstood, but,--hello!-- my suggestion to the author is check out the shownew page and see the format of the submissions there and alter the title to reflect those. then it will show up on the shownew page and could hit the show page.
I hope everyone is having a great week!!
I'm working on a small key-value database, written in C++ and powered by RocksDB. It started as a hobby, but I am trying to slowly turn it into a stable project.
The project is called BerylDB. A PHP API was released a couple of days ago, and currently working on a NodeJS gateway. I'm super excited about the project and actively improving its functionalities. The server is fully modular, which means that components can be loaded/unloaded as required. In addition to data storage, the server has channels, and clients can subscribe to them. This make it a great solution for real time analytics.
The ultimate goal of this project is to have a community of custom modules that users may be interested on. This may be useful for developers and/or companies requiring specific needs.
I'm open to collaborations! If you happen to have interested in databases, please let me know. I am on Discord. Any kind of collaboration or feedback would be appreciated. If you work for an startup or need high speed performance, please let me know!
Discord: https://discord.gg/H6HVxeDq
Docs: https://docs.beryl.dev/
Server repository: https://github.com/beryldb/beryldb
Client (command line): https://github.com/beryldb/beryldb-cli
PHP API: https://github.com/beryldb/php-beryl