ravendb: All content tagged as ravendb in NoSQL databases and polyglot persistence
Monday, 11 February 2013
NoSQL Bug Fix Releases: Redis 2.6.10 and RavenDB 2.01
The RavenDB team has released mostly a bug fix new version RavenDB 2.01. The change log is here.
Redis also has a new bug fix release: 2.6.10 including non-critical fixes and 5 small improvements. Change log is here
Original title and link: NoSQL Bug Fix Releases: Redis 2.6.10 and RavenDB 2.01 (©myNoSQL)
Tuesday, 5 February 2013
NoSQL Hosting: Redis and RavenDB
More service providers for hosted NoSQL solutions:
- Garantia Data to Offer its Redis & Memcached Hosting Services in Europe: “In-memory NoSQL Company extends Redis Cloud and Memcached Cloud to European Amazon Web Services users.”
- CloudBird Launch, now with RavenDB 2.0 support - The CloudBird Blog: “Today we’re cracking open the Champagne as we peel off the beta label and officially welcome production databases to our RavenDB hosting service. What’s more we’re also introducing support for the Raven 2.0 RTM.”
It’s not anymore just “a database for every taste”, but steadly becoming more of “a database for every taste served from anywhere you like”,
Original title and link: NoSQL Hosting: Redis and RavenDB (©myNoSQL)
Friday, 18 January 2013
RavenDB Bulk Inserts: Implementation Details
Ayende Rahien:
We stream the results to the server directly, so while the client is still sending results, we are already flushing them to disk.
To make things even more interesting, we aren’t using standard GZip compression over the whole request. Instead, each batch is compressed independently, which means we don’t have a dependency on the internals of the compression routine internal buffering system, etc. It also means that we get each batch much faster.
There are, of course, rate limits built in, to protect ourselves from flooding the buffers, but for the most part, you will have hard time hitting them.
Bulk inserts and data import are two interesting topics in the world of NoSQL databases where there are no ACID guarantees. What is the state of the databases if data stream is cut midway? What is the state of the database if the import fails midway? What is the state of the database if some insert/update operations fail? I’m not aware of any good answers for these possible issues.
Original title and link: RavenDB Bulk Inserts: Implementation Details (©myNoSQL)
via: http://ayende.com/blog/160547/implementation-details-ravendb-bulk-inserts
Tuesday, 8 January 2013
RavenDB 2.0 Is Out: Over 6 Months of Features, Improvements, and Bug Fixes
Briefly announced by Ayende yesterday, RavenDB’s 2.0 list of improvements and bug fixes is quite long. Digging through his blog, I’ve found this old post summarizing the most interesting features in RavenDB 2.0:
- drastically improved RavenDB Management Studio
- improved operational support—more monitoring data exposed through performance monitors and logs
- core bundles
- Changes() API: a feature that allows subscribing to change events. If you are familiar with CouchDB, this sounds like
_changes. - Async API
- Eval patching: running JS scripts serever side against stored objects
- more authentication options & control
- Indexing optimizations
- Improved map/reduce, facets, IN queries, and sharding
- Support for JOINs
Original title and link: RavenDB 2.0 Is Out: Over 6 Months of Features, Improvements, and Bug Fixes (©myNoSQL)
NoSQL and JOINs: RavenDB and RethinkDB
Daniel Lang:
One of the main differences between relational databases and document databases is the lack of native joining capabilities, right? This is no longer true for RavenDB.
This wasn’t the case for RethinkDB1 which launched with support for JOINs. But it’s great to see others doing it too.
-
First and last time disclaimer here: I work for RethinkDB. ↩
Original title and link: NoSQL and JOINs: RavenDB and RethinkDB (©myNoSQL)
via: http://daniellang.net/joining-documents-in-ravendb-2-0/
Thursday, 3 January 2013
An Overview of RavenDB Replication
Good overview of main characteristics of RavenDB replication by John Bennett:
- one-way
- push-based
- asynchronous
- secure
- batched
Original title and link: An Overview of RavenDB Replication (©myNoSQL)
via: http://jtbennett.com/blog/2013/01/ravendb-replication-an-overview
Tuesday, 8 May 2012
RavenDB vs MSSQL: Which to Choose?
Daniel Lang:
The question which database to choose obviously depend on your concrete scenario, the skills of your team, your environment (existing licenses), etc. but here is what I think could help you:
We choose RavenDB when…
- we can think of our data in terms of aggregates with mostly independent chunks of data (e.g. customer, order, product, etc.)
- we need to have good performance on aggregation and calculation queries
- we need to have complex searching (full-text, facets, etc.)
- we need to be able to scale
- we need high availability at low costs
We choose SQL Server when…
- when we need to support user generated reports and highly dynamical data analysis
- we have to deal with mostly relation data (e.g. accounting, statistics)
- we want to use Windows Azure
- our customer definitely wants us to choose sql server without knowing better
My additional 2 cents:
- the easy part: don’t choose one or another based on feature lists. Feature lists should be used only in apples-to-apples comparisons.
- the more complicated part: don’t use a relational database just because you’ve always used one. Don’t use a NoSQL database just because it’s the shiny new toy you need on your portfolio/resumé. Don’t use both just because it might be fun.
Original title and link: RavenDB vs MSSQL: Which to Choose? (©myNoSQL)
Thursday, 19 April 2012
RavenDB Polymorphic Queries Using Multi-Map Indices
There may be a need to query the various kinds of documents as if they were the same. […] One possibility is to execute 3 separate queries (one for each entity type) and then aggregate the result sets for the end user to view. That may work, but it wouldn’t be very efficient nor elegant. Another possibility is to create a multi-map index that could be queried. Let’s take a look at that approach.
Nice feature. I assume something similar could be achieved in NoSQL databases supporting MapReduce by mapping only the items of interest from the various collections in the database.
Original title and link: RavenDB Polymorphic Queries Using Multi-Map Indices (©myNoSQL)
via: http://ravendb.net/kb/11/querying-unlike-documents-using-a-multi-map-index
Monday, 26 March 2012
RavenDB HiLo Id Generation for Bulk Imports
Ayende about RavenDB’s HiLO id generator:
this is perfect for most scenarios. Except one very common scenario, bulk import. When you need to load a lot of data into RavenDB, you will very quickly note that most of the time is actually spent just getting new ranges. More time than actually saving the new documents takes, in fact.
But, notice what happens as times goes by (and not that much time) before RavenDB recognizes that you need bigger ranges, and it gives you them.
Neat.
Original title and link: RavenDB HiLo Id Generation for Bulk Imports (©myNoSQL)
Wednesday, 21 March 2012
RavenDB HiLo ID Generation: What, How, Why
Following my comments about RavenDB sharding, I had a very interesting email exchange with Matt Warren about RavenDB HiLo id generation. Matt pointed me to Rob Ashton’s post which covers in more details what is behind RavenDB HiLo:
- Waiting until SaveChanges to get ids for saved entities makes writing logic against those entities troublesome
- Calling SaveChanges every time a new entity is created makes transactions troublesome
- Calling SaveChanges to get the entity id means a call across the wire just to get an entity id, which is expensive
- Simply assigning a Guid to the Id makes accessing documents via REST an unpleasant experience
- You can’t just assign a random integer, because you’d just get collisions as other clients did the same and tried to save their entities
- HiLo provides a method of creating incremental integer based ids for entities in a fashion that is safe in concurrent environments
I do agree with points 2 to 5 above, but I see those as consequences or alternatives to the first one. Assuming that the first point represents indeed a real issue, the trade-off of RavenDB HiLo is offering is the following:
- one network round trip to get the Hi value
- some locking server side to ensure the next Hi value generation is truly atomic
- some more locking client side for generating the Lo values
Hopefully I’m missing something as this doesn’t look to me either less complicated or a good trade-off. Or maybe the hypothesis is wrong.
Original title and link: RavenDB HiLo ID Generation: What, How, Why (©myNoSQL)
via: http://codeofrob.com/entries/ravendb---the-hilo-what-how-and-why.html
Tuesday, 20 March 2012
RavenDB Sharding
Ayende published two articles on implementing sharding with RavenDB: first one using a default round robin strategy here and the second one sharding based on a set of rules here.
What I’ve noticed in these posts:
- RavenDB requires defining the actual shard servers in your sharding implementation (i.e. in your source code)
-
when performing writes there’re a bunch of round trips (for id generation)
Original title and link: RavenDB Sharding (©myNoSQL)
Friday, 16 March 2012
RavenDB Tutorial: Building an ASP.NET MVC App Using RavenDB as a Backing Store
One of those getting started guides that can be very helpful when first trying new technologies:
Today we are going to look at how we can use it as the only backing store of an ASP.NET MVC application. In this article, we will see how to build an ASP.NET MVC app using RavenDB Embedded and then publish it to a hosted source.
Using RavenDB as a backing store is actually very easy. In a development environment, all you have to do is install using Nuget package manager and start the Raven.Server.exe from the packages folder. However in a production environment, you may or may not be able to run an additional HTTP server for yourself. If you have a hosting provider where your site is shared with multiple other sites, you may not have the access to run a separate HTTP server. Beauty of RavenDB is that even in such a constrained environment, you can easily run RavenDB and not require SQL Server backend. RavenDB has special embedded variant that allows you to run RavenDB in medium trust.
Original title and link: RavenDB Tutorial: Building an ASP.NET MVC App Using RavenDB as a Backing Store (©myNoSQL)
Most Popular Articles
- Translate SQL to MongoDB MapReduce
- Tutorial: Getting Started With Cassandra
- CouchDB vs MongoDB: An attempt for a More Informed Comparison
- Cassandra @ Twitter: An Interview with Ryan King
- A Couple of Nice GUI Tools for MongoDB
- NoSQL benchmarks and performance evaluations
- Ehcache: Distributed Cache or NoSQL Store?
- Document Databases Compared: CouchDB, MongoDB, RavenDB
- Quick Review of Existing Graph Databases
- NoSQL Data Modeling