RavenDb и MultiTenancy - PullRequest
       60

RavenDb и MultiTenancy

9 голосов
/ 09 сентября 2011

Я некоторое время смотрел и играл с 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 Ответ

10 голосов
/ 09 сентября 2011

См. Первый и последний абзацы из документов ( v2.5 | v3.0 ).

Базы данных RavenDB были разработаны для работы с несколькими клиентамии предназначены для поддержки большого количества баз данных на одном сервере.Для этого RavenDB будет сохранять открытыми только активные базы данных.Если вы обращаетесь к базе данных в первый раз, эта база данных будет открыта и запущена, поэтому следующий запрос к этой базе данных не должен будет оплачивать стоимость открытия базы данных.Но если к базе данных некоторое время не обращались, RavenDB очистит все ресурсы, связанные с базой данных, и закроет ее.

Это позволяет RavenDB управлять большим количеством баз данных, поскольку в любой момент времени толькоактивные базы данных фактически берут ресурсы.

Так что да, он будет поддерживать его, и каждая база данных будет храниться в отдельной папке на диске.

...