RavenDB 4.0 Release Candidate 2 Is Out
RavenDB 4.0 Release Candidate 2 Is Out
RavenDB 4.0 is getting ready for its GA release with its latest release candidate! Come check out what's included in this release and where you can get it!
Join the DZone community and get the full member experience.Join For Free
RavenDB vs MongoDB: Which is Better? This White Paper compares the two leading NoSQL Document Databases on 9 features to find out which is the best solution for your next project.
It has been two months since the first release candidate of RavenDB 4.0, and the team has been hard at work. Looking at the issues resolved in that time frame, there are over 500 of them, and I couldn’t be happier with the result.
RavenDB 4.0 RC2 is out now! Get it here (for Windows, Linux, OSX, Raspberry PI, and Docker).
When we were going through the list of issues for this release, I noticed something really encouraging. The vast majority of them were things that would never make it into the release highlights. These are the kind of issues that are all about spit and polish. Anything from giving better error messages to improving the first few minutes of your setup and installation to just getting things done. This is a really good thing at this stage in the release cycle. We are done with features and big ticket stuff. Now, it's time to finishing grinding through all the myriads of details and small fixes that make a product really shine.
That said, there was still a bunch of really cool stuff that was cooking for a long time and that we could only now really call "complete." This list includes:
- Authentication and authorization: The foundation for this was laid a long time ago, with X509 client certificates used for authenticating clients against RavenDB 4.0 servers. The past few months had us building the user interface to manage these certificates, define permissions, and access across the cluster.
- Facet and MoreLikeThis queries: This is a feature that was available in RavenDB for quite some time and is now available as an integral part of the RavenDB Query Language. I’m going to have separate posts to discuss these, but they are pretty cool, albeit specialized ways to look at your data.
- RQL improvements: We made RQL a lot smarter, allowing more complex queries and projections. Spatial support has been improved and is now much easier to work with and reason about using just raw RQL queries.
- Server dashboard: Allows you to see exactly what your servers are doing and is meant to be something that the Ops team can just hang on the wall and stare at in amazement, realizing just how much the database can do.
- Operations: The operations team generally has a lot of new things to look at in this release. SNMP monitoring is back, and a significant amount of time was spent on fixing errors — that is, making sure that admins have clear and easy-to-understand errors and a path to fix them. Traffic monitoring and live tracing of logs are also available directly in the studio now. CSV import/export is also available in the Studio, as well as Excel integration for business people. Automatic backup processes are also available now for scheduled backups for both local and cloud targets, and admins have more options to control the database, i.e. compaction of databases after large deletes to restore space to the system.
- Patching, querying, and expiring UI: This was mostly exposing existing functionality and improving the number of details that we provide by default, i.e. allowing users to define auto-expiration policies for documents with time to live. On the querying side, we are showing a lot more information. My favorite feature here is that the studio can now show the result of including documents, which makes it easy to see how this feature can save you in network roundtrips. Queries and patching now have a much nicer UI and also support some really cool intelligence.
- Performance: Most of the performance work was already done, but we were able to identify some bottlenecks on the client side and significantly reduce the amount of work it takes to save data to the database. This especially affects bulk insert operations, but the effect is actually widespread enough to impact most of the client operations.
- Advanced Linq support: A lot of work was put into the Linq provider (again) to enable more advanced scenarios and more complex queries.
- ETL processes are now exposed and allow you to define both RavenDB and SQL databases as targets for automatic ETL from a RavenDB instance.
- Cluster-wide atomic operations: Dubbed compare-and-exchange after the similar assembly instruction, this basic building block allows you to build very complex distributed behaviors in a distributed environment without any hassle, relying on RavenDB consensus to verify that such operations are truly atomic.
- Identity support: Identities are now fully supported in the client and operate as cluster-wide operations, meaning you can rely on them being unique cluster-wide.
Users provided really valuable feedback, finding a lot of pitfalls and stuff that didn’t make sense or flow properly. That was a lot of help in reducing friction and getting things flowing smoothly.
There is another major feature that we worked on during this time: the setup process. It may sound silly, but this is probably the one that I’m most excited about in this release — excited enough that I’ll have a whole separate post for it, coming soon!
Published at DZone with permission of Oren Eini, CEO RavenDB , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.