2011-09-09 17 views
9

मैंने थोड़ी देर के लिए रावेनडीबी के साथ देखा और खेला और मल्टीटेन्सी को देखना शुरू कर दिया है। 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(); 
    } 
} 

मैं नहीं जानता कि कैसे प्रत्येक डेटाबेस संग्रहीत और इसलिए सवाल है: क्या किरायेदारों का एक बहुत के साथ बड़े अनुप्रयोगों के लिए है कि काम करता है?

+3

एफवाईआई - 'EnsureDatabaseExists' 'Raven.Client.Extensions' के लिए निर्देश का उपयोग किए बिना काम नहीं करेगा। मुझे इस जानकारी को खोजने में बहुत मुश्किल समय था। –

उत्तर

10

दस्तावेज़ों के पहले और अंतिम पैराग्राफ देखें (v2.5 | v3.0)।

RavenDB के डेटाबेस को ध्यान में बहु किरायेदारी के साथ डिजाइन किए गए थे, और एक ही सर्वर पर डेटाबेस की बड़ी संख्या का समर्थन करने के लिए हैं। ऐसा करने के लिए, RavenDB केवल सक्रिय डेटाबेस को खुले रखेगा। यदि आप पहली बार डेटाबेस तक पहुंचते हैं, तो डेटाबेस खोला जाएगा और प्रारंभ किया जाएगा, इसलिए उस डेटाबेस के अगले अनुरोध को डेटाबेस खोलने की लागत का भुगतान नहीं करना पड़ेगा। लेकिन यदि कोई डेटाबेस कुछ समय तक नहीं पहुंचा है, तो RavenDB डेटाबेस के साथ से जुड़े सभी संसाधनों को साफ़ कर देगा और इसे बंद कर देगा।

जो RavenDB को बड़ी संख्या में डेटाबेस प्रबंधित करने की अनुमति देता है, क्योंकि पर किसी भी समय, केवल सक्रिय डेटाबेस वास्तव में संसाधन ले रहे हैं।

तो हाँ यह इसका समर्थन करेगा और प्रत्येक डेटाबेस डिस्क पर एक अलग फ़ोल्डर में संग्रहीत किया जाएगा।

+0

+1 जानकारी के लिए धन्यवाद – jgauffin

+1

उस पर विस्तार करने के लिए, डिफ़ॉल्ट रूप से हम मुख्य डेटाबेस डेटा फ़ोल्डर के समीप किरायेदारों \ TenantName फ़ोल्डर में किरायेदारों को स्टोर करते हैं। –

संबंधित मुद्दे