RavenDB 4.2 FeaturesPull Replication has landed
If you are tracking the nightlies of RavenDB, the Pull Replication feature has fully landed. You now have three options to chose when you define replication in your systems.
External Replication is meant to go from the current database to another database (usually in a different cluster). It is a way to share data with another location. The owner of the replication is the current database, which initiate the connection and send the data to the other side.
Pull Replication reverse this behavior. The first thing you’ll need to do to get Pull Replication working is to define the Pull Replication Hub.
As you can see, there isn’t much to do here. We give the hub a name and minimal configuration (how far back this should go, basically). In this case, we are allowing sinks to get the data from the database, with a 20 minutes delay in built into the loop. You can also export the sink configuration from this view. We also define a certificate that provide access to this Hub Pull Replication, this certificate allow only access to this Pull Replication Hub, it grant no additional permissions. In this way, you may have one certificate that provide access to a delayed public stock ticker and another that provides an immediate access to the data.
The next step is to go to the other side, the sink. There, we either manually define the details on the hub (or more likely import the configuration). The sink will then connect to the hub and start pulling the data from it. Here is what this looks like:
The idea is that you are very likely to have a lot more sinks than hubs. That is why we make it easy to define the sink just by importing (although in practical terms we expect that this will just be part of a shared image that is deployed many times).
One we have defined the Sink Pull Replication, it will connect to the Hub and start accepting data. You can track how this works from the studio:
On the other side, you can track the connected sinks on the Hub:
And this is all you need to setup Pull Replication yourself.
More posts in "RavenDB 4.2 Features" series:
- (21 Mar 2019) Diffing revisions
- (19 Mar 2019) Time travel and revisions revert
- (14 Feb 2019) Pull Replication has landed
- (28 Nov 2018) Let’s get colorful
- (21 Nov 2018) Pull replication & edge processing
Comments
Speaking of new features, I saw this ticket about sharding. I assume sharding has been left off from 4.x due to clusters becoming a primary citizen of the RavenDB world and would have been much different from how it was in 3.x, but that's just a guess, so perhaps you could write a blog post about it as well, it would make an interesting read. Also to that, do you have any plans in which version you might include it in?
Balázs, We want to do sharding, absolutely, but we also want to do well and on the server side. Note that sharding on the client side is something that you can do right now, and how we handled things in 3.x
There are technical challenges to go through, but once we start working on it, I'll have a lot to say about this, yes.
Comment preview