RavenDb和MultiTenancy

jga*_*fin 9 multi-tenant ravendb

我已经看了一会儿玩RavenDb并开始关注MultiTenancy.Ayendes的多租户样本如下:

using(var store = new DocumentStore
{
    Url = "http://localhost:8080"
}.Initialize())
{
    store.DatabaseCommands.EnsureDatabaseExists("Brisbane");

    store.DatabaseCommands.EnsureDatabaseExists("Melbroune");
    store.DatabaseCommands.EnsureDatabaseExists("Sidney");

    using (var documentSession = store.OpenSession("Brisbane"))
    {
        documentSession.Store(new { Name = "Ayende"});
        documentSession.SaveChanges();
    }
}
Run Code Online (Sandbox Code Playgroud)

我不知道每个数据库是如何存储的,因此问题是:这适用于拥有大量租户的大型应用程序吗?

Mat*_*ren 10

请参阅文档中的第一段和最后一段(v2.5 | v3.0).

RavenDB的数据库在设计时考虑了多租户,旨在支持单个服务器上的大量数据库.为此,RavenDB只会保持活动数据库的打开状态.如果您是第一次访问数据库,那么将打开并启动该数据库,因此对该数据库的下一个请求将不必支付打开数据库的成本.但是如果数据库暂时没有被访问,RavenDB将清理与数据库相关的所有资源并关闭它.

这允许RavenDB管理大量数据库,因为在任何给定时间,只有活动数据库实际上在占用资源.

所以是的,它会支持它,每个数据库都将存储在磁盘上的一个单独的文件夹中.