RavenDb和MultiTenancy

时间:2011-09-09 16:27:12

标签: ravendb multi-tenant

我已经看了一会儿玩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();
    }
}

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

1 个答案:

答案 0 :(得分:10)

查看文档中的第一段和最后一段(v2.5 | v3.0)。

  

RavenDB的数据库在设计时考虑了多租户,并且是   意味着在单个服务器上支持大量数据库。在   为了做到这一点,RavenDB只会保持活动数据库的打开。如果   您第一次访问数据库,该数据库将被打开   并开始,因此下一个对该数据库的请求将不必支付   打开数据库的成本。但是如果数据库还没有   访问了一段时间,RavenDB将清理所有相关的资源   使用数据库并关闭它。

     

这允许RavenDB管理大量数据库,因为at   任何给定的时间,只有活跃的数据库实际上正在采取   资源。

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