Thursday 15 September 2011

rdf - Create Fuseki in memory server -


फ़्यूज़ेकी में एक पैरामीटर - mem है:

  फ्यूसकी-सर्वर --ममे / डाटासेटपाथनाम  

क्या मैं क्वेरी का प्रदर्शन सुधारने के लिए मेमोरी में पूर्ण टीडीबी इंडेक्स लोड करने के लिए उपयोग कर सकता हूं?

उदाहरण के लिए,

  फ़्यूसेकी-सर्वर --म - - loc = / tdbpath / datasetPathName  

/ tdbpath टीडीबी सूचकांक और फाइलों के साथ एक निर्देशिका है (मैं अपने डेटा को tdbloader का उपयोग कर लोड करता है)।

मैंने इसे थोड़ी सी कोशिश की लेकिन पाया कि मेमो स्मृति का उपयोग (फ़्यूसेकी-सर्वर --loc = / tdbpath / datasetPathName के साथ तुलना) में वृद्धि नहीं करता है। क्या मैंने कुछ गलत किया?

धन्यवाद

फ़्यूज़ेकी के कार्यान्वयन को देखते हुए एक डेटासेट के अस्तित्व के परस्पर अनन्य विनिर्देशों के रूप में तर्क - mem , - memtdb और - loc = X की व्याख्या करता है। कमांड लाइन तर्कों के एक ही सेट में केवल - loc = X में - mem और - loc = X दोनों उपलब्ध कराना इस्तेमाल किया:

  अगर (इसमें (आर्गमेम)) {log.info ("डेटासेट: इन-मेमोरी"); CmdLineDataset = नया सर्वर प्रारंभिक कॉन्फ़िगर (); CmdLineDataset.argTemplateFile = Template.templateMemFN; } यदि (इसमें (आर्गफाइल) शामिल है) {स्ट्रिंग फ़ाइल नाम = मिलना (आर्गफाइल); Log.info ("डेटासेट: इन-मेमोरी: लोड फाइल:" + फाइलनाम); यदि (! FileOps.exists (फ़ाइल नाम)) नया सीएमडीएक्सेशन फेंक ("फ़ाइल नहीं मिली:" + फ़ाइल नाम); // सीधे डेटासेट को आबाद करें CmdLineDataset = नया सर्वर प्रारंभिक कॉन्फ़िगर (); CmdLineDataset.dsg = DatasetGraphFactory.createMem (); // आरंभिक डेटा। लैंग भाषा = आरडीएफ भाषाएं। फ़िलननामओफ़ीलैंग (फाइलनाम); अगर (भाषा == नल) नया सीएमडीएक्सेशन फेंक ("फ़ाइल के लिए भाषा का अनुमान नहीं लगाया जा सकता है:" + फ़ाइल नाम); RDFDataMgr.read (cmdLineDataset.dsg, फ़ाइलनाम); } अगर (इसमें (आर्गमेमटीडीबी) शामिल है) {//log.info("TDB डेटासेट: इन-मेमोरी "); CmdLineDataset = नया सर्वर प्रारंभिक कॉन्फ़िगर (); CmdLineDataset.argTemplateFile = Template.templateTDBMemFN; सीएमडीलाइन डाटासेट .परम। (टेम्प्लेट। डीआईआर, नाम.ममनाम); } यदि (इसमें (एआरडीआईटीबी) शामिल है) {सीएमडीलाइन डाटासेट = नया सर्वर प्रारंभिक कॉन्फ़िगर (); CmdLineDataset.argTemplateFile = Template.templateTDBDirFN; स्ट्रिंग डायर = मिलनएव्यू (argTDB); सीएमडीलाइन डाटासेट। पीआरएएमपी। (टेम्पलेट। डीआईआर, डीआईआर); }  

जैसा कि ऊपर देखा गया है, यदि इनमें से कोई विकल्प चुना गया है, तो बाद में विकल्प कमांड लाइन तर्कों के माध्यम से दिए गए डाटासेट को अधिलेखित कर सकते हैं। सबसे अधिक, एक का उपयोग किया जा सकता है कहा जा रहा है कि, आप कर सकते हैं फ्यूज़स्की को - memtdb विकल्प का उपयोग करके एक इन-मेमोरी टीडीबी डेटासेट का उपयोग करने के लिए कहें प्रलेखन के अनुसार, यह केवल परीक्षण के लिए इस्तेमाल किया जाना चाहिए।

के अनुसार, TDB ( - loc विकल्प का उपयोग करके) मूल्यों को स्मृति में कैश करना चाहिए क्योंकि वे उपयोग किए जाते हैं। यदि आपको दृढ़ता की आवश्यकता है और अपने आवेदन के लिए अतिरिक्त जीवनचक्र चरणों का परिचय नहीं देना चाहते हैं, तो टीडीबी जाने का सबसे अच्छा तरीका है। यदि आपका डेटासेट पूरी तरह से स्मृति में फिट हो सकता है, तो आपको दृढ़ता की आवश्यकता नहीं है, या आप अपने आवेदन में एक अलग सेव-एंड-शटडाउन चरण पेश कर सकते हैं, इन-मेमोरी बहुत तेज़ हो सकते हैं।


No comments:

Post a Comment