RavenDb
A category especially for RavenDb given that I'm apparently using it quite a bit right now
Previous entries in the series RavenDB – What’s the difference? RavenDB & CouchDB – Simple Queries One of the recurring features present in the popular document databases is the use of map-reduce functions as the primary way to create views on the stored data. Map Reduce At this point, I could go into a long description of what map/reduce actually is but that kind of thing is available via the use of a convenient google search. The short of it is that you map some data...
posted @ Sunday, June 06, 2010 9:15 PM |
Previous entries in the series
RavenDB – What’s the difference
Once you have a number of documents in the database, you soon want to do more complex operations than simply retrieving a list of them.
Consider therefore the following and rather over-used example document:
1: {
2: title: "Another blog entry",
3: content: 'blah blah blah',
4: category: 'code',
5: author: 'robashton'
6: }
Our example...
posted @ Wednesday, June 02, 2010 8:00 AM |
What we we comparing against? One of the most oft-asked questions on Twitter, the RavenDB mailing list and other such methods of communication, is what are the differences between RavenDB and <insert currently preferred NoSql solution>. The two main contenders are probably CouchDB and MongoDB – MongoDB in particular has been gathering a lot of momentum in the .NET space recently thanks to efforts such as NoRM and such. Personally, I think that comparisons against MongoDB should stop after one question, “Is your application read or write heavy?”, comparing overall performance and functionality is completely redundant because...
posted @ Monday, May 31, 2010 5:04 PM |
The problem When a query is executed against an index in RavenDB, one of the key aspects of that query is checking the task queue to see if any tasks are currently pending against that index. It is this call that dictates whether IsStale is set as a flag on the return result from that query. When a call to WaitForNonStaleResults is made in the .NET client, the client simply makes multiple requests against the query until IsStale is found to be false, or until the WaitForNonStaleResults call times out. Thus, the client can wait until there are...
posted @ Tuesday, May 18, 2010 10:00 PM |
One of the issues I touched on in with the basic interaction with RavenDB was the awkwardness of with having to call SaveChanges in order to get the ids of entities that had been saved across the unit of work. This is not a problem new to the document db space, nor is it a problem new to any system where the domain has been mapped to any id based data store (ORMs/RDBMS/etc). I was going to cook a home brew solution specifically for my use within my projects and blog about it in order that other people could...
posted @ Sunday, May 16, 2010 9:00 AM |
Note: The interfaces have been updated since this entry was written, and there is now Linq query support built into the .NET client, I’ve updated these posts to use the LuceneQuery syntax but that’s probably not the preferred way of doing things As I mentioned in a brief entry a couple of days ago, I've been playing with RavenDB for about a week now, and mapping across an old project of mine which never got off the ground due to work and time constraints. I spent a lot of time trying to get that project to play ball...
posted @ Sunday, May 09, 2010 10:05 PM |