NoSQL Zone is brought to you in partnership with:

Ayende Rahien is working for Hibernating Rhinos LTD, a Israeli based company producing developer productivity tools for OLTP applications such as NHibernate Profiler (nhprof.com), Linq to SQL Profiler(l2sprof.com), Entity Framework Profiler (efprof.com) and more. Ayende is a DZone MVB and is not an employee of DZone and has posted 479 posts at DZone. You can read more from them at their website. View Full User Profile

RavenDB 2.0.3 Stable Release!

03.25.2013
| 978 views |
  • submit to reddit

We have just released the next stable build 2330 of RavenDB 2.0. You can find it here. This release contains a lot of bug fixes, improvements, streamlining and some interesting new stuff.

The full change log is actually here, because we found a bug in 2325 (ironically, it was a bug in how it reported its build number).

Breaking Changes:

  • SQL Replication script / configuration change (more below).

Features:

  • More debug / visibility endpoints (user info, changes traffic, map/reduce data, etc).
  • Better highlighting support.
  • Spatial Search will sort by distance by default.
  • Better indexing for TimeSpan values.
  • Can do more Parallel Work in Map/Reduce indexes now.

Improvements:

  • Map/Reudce indexes tune themselves automatically.
  • Better Periodic Backup behavior when there is no new writes.
  • Better handling of transactions during documents put with high number of referencing documents.
  • Better use of alerts.
  • Better float support.

Studio:

  • Better import/export UI.

Bug fixes:

  • Can backup & restore even in the presence of corrupt / missing indexes.
  • LoadDocument with map/reduce indexes cause issues.
  • Allow to change the number of cached requests on the client side without NRE.
  • Fixing Unique Constraints bundle with null unique properties.
  • Forbidden error when running as a non admin user in the studio.
  • Better support for indexing nullable properties with HasValue.
  • Fixed a problem with replication of deleted documents when adding a new node in the topology.
  • Support export / import with versioning bundle.

SQL Replication Breaking Changes

With SQL Replication, it became apparent that we missed a pretty big use case.  Deletions.

Deletions is something that we didn’t handle, and couldn’t handle using the existing format. It was a touch call, but we decided to make a breaking change here.

Now, you need to define all the tables that you’ll be working with (as well as the order we will be writing to them). Assuming that we have a User document, and we want to replicate to Users and UsersGroups tables, we would have:

        replicateToUsers({

           Name: this.Name

        })

         

        for(var i = 0; i < this.Groups.length; i++) {

          replicateToUsersGroups({

              Group: this.Groups[i]

          });

        }

This replaced the sqlReplicate calls. Note that this is a hard breaking reset. When you upgrade, you’ll need to update all of your SQL Replication definitions (but you keep the replication state, you won’t have to start replicating from scratch).








Published at DZone with permission of Ayende Rahien, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)