RavenDB 4.0 Beta1 is now available
I’m really proud to announce that we have released the RavenDB 4.0 beta. It has been a bit over six months of so since the alpha release (I can’t believe it has been that long), and we have been working hard on completing the feature set that we want to have for the final release. We are now ready to unveil RavenDB 4.0 and show you what we can do with it.
Since the alpha release, we completed the refactoring to the clustering infrastructure, so a RavenDB node is always in a cluster (even if just a single one), added attachments, full database encryption and subscriptions, improved indexing performance and performance in general and had done a lot of work to make the database more accessible and easier to use. Cluster scenarios are easier and more robust, you can now take a database and span it on multiple nodes at will and you get the usual RavenDB safety, reliability and fault tolerance.
Users coming from the RavenDB 3.x version will notice (immediately after the studio theme) that everything is much faster. Our internal testing shows anything between 10x to 100x improvement in speed over the previous version.
RavenDB is now capable of handling over 100K req/second for writes (that is over hundred thousands requests per second), and much more for reads, with the caveat that we always hit the network capacity before we hit RavenDB’s capacity. That is per node, so you can scale the number of nodes in the cluster, so can you scale the amount of reads and writes you can handle.
RavenDB 4.0 also comes with much smarter query optimizer, allowing it to generate optimal queries for aggregation in addition to simple queries. And map/reduce in general has been worked heavily to make it much faster and more responsive.
You can download the RavenDB 4.0 beta from our download page, and NuGet package is available by running:
Install-Package RavenDB.Client -Version 4.0.0-beta-40014 -Source https://www.myget.org/F/ravendb/api/v3/index.json
You can run the beta on Windows, Linux, Raspberry PI and Docker, and you can access the live test instance to check it out.
Known issues include:
- Identities aren’t exported / imported
- Cluster operations sometimes stall and timeout.
- The studio currently assumes that the user is administrator.
- Highlighting & spatial searches aren’t supported.
- Deployment in hardened environment is awkward.
- Upgrading from previous versions is only possible via smuggler.
- Custom analyzers are not currently supported.
If you are upgrading from 3.x or the 4.0 Alpha, you’ll need to export the data and import it again. Automatic upgrades will be part of the RC.
Please remember, this is a beta. I included some of the known issues in this post to make sure that you remember that. We expect users to start developing with RavenDB 4.0 from the beta, and API and behavior are pretty fixed now. But you shouldn’t be deploying to production with this, and you should be aware that upgrading from the beta to RC is going to be done using smuggler as well.
We’ll likely have a few beta releases on the road to RC, fixing all the issues that will pop up along the way. Your feedback is crucial at this stage, since subjecting RavenDB to real world conditions is the only way to battle test it.
In the studio, you can use the feedback icon to send us your immediate feedback, and there is also the issue tracker.
Take RavenDB for a spin, setup a node, setup a cluster, see how it all works together. If we did our job right, you should be able to figure out everything on your own, which is good, because the docs are still TBD. Feedback on bugs and issues is important, but I’m also very interested in feedback on the flow. How easy it is to do things, deploy, setup, connect from the client, etc.
Comments
Have anything changed regarding querying of the index? I tried existing application that works on 3.5 and I got the error when querying index.
Also, I noticed that Load<Entity> returns (key, value) pair instead of Entity... why is that?
Dejan, What was the query, and what was the error?
Load(string[])
now returns a dictionary because that is easier to do a match rather than compare ordinals.I am getting following exception
TargetException: Non-static method requires a target. System.Reflection.RuntimeMethodInfo.CheckConsistency(object target)
Same code was working with RavenDB 3.5 without any problems. What is even more interesting is that index is empty at the moment this happens.
I wanted to report this, but I cannot log in (not even as a guest) to the issue tracker you mentioned in this post.
Dejan, Please send a message to our support group at groups.google.com/group/ravendb/ with the full details.
And you need to create a user to be able to create an issue
When will the native mac version of Raven DB 4.0 be released?
Dan, We are planning to work on that during the RC
Comment preview