blog-post

Manticore Search 4.0.2: पूर्ण कॉलम स्टोर समर्थन, स्वचालित इंडेक्स संकुचन, ताले प्रणाली का पुनर्विकास, अनुक्रमिक शार्डिंग

प्रमुख नई विशेषताएँ

  • Manticore Columnar Library का पूर्ण समर्थन। पहले Manticore Columnar Library केवल साधारण इंडेक्स के लिए समर्थित था। अब यह निम्नलिखित के लिए समर्थित है:
  • वास्तविक समय में INSERT, REPLACE, DELETE, OPTIMIZE के लिए इंडेक्स में
  • पुनरुत्पादन में
  • ALTER में
  • indextool --check में
  • स्वचालित इंडेक्स संकुचन ( #478 ). अंततः आपको मैन्युअली या क्रोनटास्क या अन्य प्रकार की स्वचालन के माध्यम से OPTIMIZE कॉल करने की आवश्यकता नहीं है। Manticore अब इसे अपने आप करता है। आप optimize_cutoff के माध्यम से डिफ़ॉल्ट संकुचन सीमा सेट कर सकते हैं।
  • चंक स्नैपशॉट और ताले प्रणाली का पुनर्विकास। ये परिवर्तन पहले दृष्टि में बाहरी से अदृश्य हो सकते हैं, लेकिन ये वास्तविक समय में होने वाली कई चीजों के व्यवहार को महत्वपूर्ण रूप से सुधारते हैं। संक्षेप में, पहले मैन्टिकोर डेटा हेरफेर संचालन ताला पर काफी निर्भर करते थे, अब हम इसके बजाय डिस्क चंक स्नैपशॉट का उपयोग करते हैं। विशेष रूप से:
    • पढ़ने के संचालन (जैसे SELECTs, पुनरुत्पादन) स्नैपशॉट के साथ किए जाते हैं
    • संचालन जो केवल आंतरिक इंडेक्स संरचना को बदलते हैं बिना स्कीमा/दस्तावेज़ को संशोधित किए (जैसे RAM सेगमेंट का विलय, डिस्क चंक्स को सहेजना, डिस्क चंक्स का विलय) पढ़ने के लिए केवल स्नैपशॉट के साथ किए जाते हैं और अंत में मौजूदा चंक्स को प्रतिस्थापित करते हैं
    • UPDATEs और DELETEs मौजूदा चंक्स के खिलाफ किए जाते हैं, लेकिन विलय की स्थिति में जो हो सकता है, लिखने को इकट्ठा किया जाता है और फिर नए चंक्स के खिलाफ लागू किया जाता है
    • UPDATEs प्रत्येक चंक के लिए अनुक्रमिक रूप से एक विशेष ताला प्राप्त करते हैं। विलय चंक से गुणों को एकत्र करने के चरण में साझा ताला प्राप्त करते हैं। इसलिए एक ही समय में केवल एक (विलय या अद्यतन) संचालन की चंक के गुणों तक पहुंच है।
    • जब विलय उस चरण में पहुँचता है जहाँ उसे गुणों की आवश्यकता होती है तो यह एक विशेष ध्वज सेट करता है। जब UPDATE समाप्त होता है तो यह ध्वज की जांच करता है और यदि यह सेट है, तो पूरा अपडेट एक विशेष संग्रह में संग्रहित होता है। अंत में जब विलय समाप्त होता है, तो यह नवजात डिस्क चंक में अपडेट सेट को लागू करता है
    • ALTER एक विशेष ताले के माध्यम से चलता है
    • पुनरुत्पादन एक सामान्य पढ़ने के संचालन के रूप में चलता है, लेकिन अतिरिक्त रूप से SST से पहले गुणों को सहेजता है और SST के दौरान अपडेट को निषिद्ध करता है
  • ALTER एक पूर्ण-पाठ क्षेत्र जोड़/हटा सकता है। पहले यह केवल एक विशेषता जोड़ने/हटाने के लिए सक्षम था।
  • 🔬 प्रयोगात्मक: पूर्ण-स्कैन प्रश्नों के लिए अनुक्रमिक शार्डिंग - किसी भी गैर-पूर्ण-पाठ खोज के प्रश्न को समानांतर करने की अनुमति देता है। अब आपको मैन्युअल रूप से शार्ड तैयार करने की आवश्यकता नहीं है, आप अब बस नए विकल्प searchd.pseudo_sharding को सक्षम कर सकते हैं और गैर-पूर्ण-पाठ खोज प्रश्नों के लिए CPU cores तक कम प्रतिक्रिया समय की अपेक्षा कर सकते हैं। ध्यान दें कि यह आसानी से सभी मौजूदा CPU कोर को व्यस्त कर सकता है, इसलिए यदि आप केवल लेटेंसी के बारे में नहीं सोचते हैं, बल्कि थ्रूपुट के बारे में भी - इसका उपयोग सावधानी से करें।

छोटे परिवर्तन

  • Linux Mint और Ubuntu Hirsute Hippo को APT repository के माध्यम से समर्थित किया गया है
  • कुछ मामलों में बड़े इंडेक्स में HTTP के माध्यम से ID द्वारा तेज़ अपडेट (IDs वितरण पर निर्भर करता है)
  • systemd के लिए कस्टम स्टार्टअप ध्वज । अब आपको Manticore को कुछ विशेष स्टार्टअप ध्वज के साथ चलाने की आवश्यकता होने पर मैन्युअल रूप से searchd शुरू करने की आवश्यकता नहीं है
  • नया फ़ंक्शन LEVENSHTEIN() जो लेवेनस्टाइन दूरी की गणना करता है
  • नया searchd स्टार्टअप ध्वज --replay-flags=ignore-trx-errors और --replay-flags=ignore-all-errors जोड़ा गया ताकि कोई भी बिनलॉग भ्रष्ट होने पर भी searchd को शुरू कर सके
  • #621 - RE2 से त्रुटियाँ उजागर करें
  • स्थानीय साधारण इंडेक्सों से मिलकर बनी वितरित इंडेक्सों के लिए अधिक सटीक COUNT(DISTINCT)
  • FACET DISTINCT जब आप फेसेटेड खोज करते हैं तो डुप्लिकेट को हटाने के लिए
  • exact form modified अब morphology की आवश्यकता नहीं है और infix/prefix खोज सक्षम करने वाले इंडेक्स के लिए काम करता है

टूटने वाले परिवर्तन

  • नया संस्करण पुराने इंडेक्स पढ़ सकता है, लेकिन पुराने संस्करण Manticore 4 के इंडेक्स पढ़ नहीं सकते हैं
  • ID द्वारा प्रत्यक्ष क्रमबद्धता को हटा दिया गया। आवश्यक होने पर स्पष्ट रूप से क्रमबद्ध करें
  • charset_table का डिफ़ॉल्ट मूल्य 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F, U+401->U+451, U+451 से non_cjk में बदल गया है
  • OPTIMIZE स्वचालित रूप से होता है। यदि आपको इसकी आवश्यकता नहीं है तो सुनिश्चित करें कि कॉन्फ़िगरेशन फ़ाइल में searchd अनुभाग में auto_optimize=0 सेट करें
  • #616 ondisk_attrs_default को डीकिप्रेट किया गया था, अब इन्हें हटा दिया गया है
  • योगदानकर्ताओं के लिए: हम अब Linux निर्माणों के लिए Clang कंपाइलर का उपयोग करते हैं क्योंकि हमारे परीक्षणों के अनुसार यह तेज़ Manticore Search और Manticore Columnar Library का निर्माण कर सकता है
  • यदि max_matches को खोज क्वेरी में निर्दिष्ट नहीं किया गया है, तो इसे नए कॉलम स्टोरेज के प्रदर्शन के लिए आवश्यक न्यूनतम मान के साथ अद्यतन किया जाता है। यह SHOW META में total मीट्रिक को प्रभावित कर सकता है, लेकिन total_found को नहीं जो वास्तव में पाए गए दस्तावेजों की संख्या है।

Manticore 3 से माइग्रेशन

  • सुनिश्चित करें कि आप Manticore 3 को साफ-सुथरा बंद करें:
  • /var/lib/manticore/binlog/ में कोई भी बिनलॉग फ़ाइलें नहीं होनी चाहिए (केवल binlog.meta इस डायरेक्टरी में होनी चाहिए)
  • अन्यथा, Manticore 4 के लिए बिनलॉग का उत्तर नहीं देने वाले इंडेक्स चल नहीं पाएंगे
  • नया संस्करण पुराने इंडेक्स पढ़ सकता है, लेकिन पुराने संस्करण Manticore 4 के इंडेक्स को नहीं पढ़ सकते, इसलिए सुनिश्चित करें कि यदि आप नए संस्करण को आसानी से रोलबैक करना चाहते हैं तो एक बैकअप बनाएं
  • यदि आप एक प्रतिकृति क्लस्टर चला रहे हैं तो सुनिश्चित करें कि आप:
  • पहले अपने सभी नोड्स को साफ-सुथरा बंद करें
  • और फिर उस नोड को शुरू करें जिसे अंतिम बार --new-cluster (Linux में टूल manticore_new_cluster चलाएं) के साथ बंद किया गया था।
  • अधिक विवरण के लिए क्लस्टर को पुनरारंभ करना के बारे में पढ़ें

बग फिक्स

  • कई प्रतिकृति मुद्दों को हल किया गया है:
  • 696f8649 - सक्रिय इंडेक्स के साथ जॉइनर पर SST के दौरान क्रैश को ठीक किया गया; फाइल चंक्स को लेखन करते समय जॉइनर नोड पर sha1 सत्यापन जोड़ा गया ताकि इंडेक्स लोडिंग की गति बढ़ सके; इंडेक्स लोड पर जॉइनर नोड पर बदलते इंडेक्स फ़ाइलों का रोटेशन जोड़ा गया; डोनर नोड से नए इंडेक्स द्वारा सक्रिय इंडेक्स के प्रतिस्थापन पर जॉइनर नोड पर इंडेक्स फ़ाइलों को हटाने का कार्य जोड़ा गया; फ़ाइलों और चंक्स को भेजने के लिए डोनर नोड पर प्रतिकृति लॉग बिंदु जोड़ा गया
  • b296c55a - यदि पता गलत है तो JOIN CLUSTER पर क्रैश
  • 418bf880 - एक बड़े इंडेक्स की प्रारंभिक प्रतिकृति के दौरान जॉइनिंग नोड ERROR 1064 (42000): invalid GTID, (null) के साथ विफल हो सकता है, डोनर उस समय उत्तरदायी नहीं हो सकता जब एक और नोड शामिल हो रहा हो
  • 6fd350d2 - एक बड़े इंडेक्स के लिए हैश गलत तरीके से गणना की जा सकती है जो प्रतिकृति विफलता का परिणाम बन सकती है
  • #615 - क्लस्टर पुनरारंभ पर प्रतिकृति विफल
  • #574 - indextool --help पैरामीटर --rotate को प्रदर्शित नहीं करता है
  • #578 - लगभग एक दिन बाद आयडल में searchd उच्च CPU उपयोग
  • #587 - .meta तुरंत फ्लश करें
  • #617 - manticore.json खाली हो जाता है
  • #618 - searchd –stopwait रूट के अंतर्गत विफल होता है। यह systemctl व्यवहार को भी ठीक करता है (पिछले में यह ExecStop के लिए विफलता दिखा रहा था और searchd को सही तरीके से बंद करने के लिए पर्याप्त समय नहीं दे रहा था)
  • #619 - INSERT/REPLACE/DELETE बनाम SHOW STATUS। command_insert, command_replace और अन्य गलत मेट्रिक्स दिखा रहे थे
  • #620 - एक सामान्य इंडेक्स के लिए charset_table का गलत डिफ़ॉल्ट मान था
  • 8f753688 - नए डिस्क चंक्स mlocked नहीं होते हैं
  • #607 - Manticore क्लस्टर नोड नाम से किसी नोड को हल करने में असमर्थता पर क्रैश होता है
  • #623 - अपडेट किए गए इंडेक्स की प्रतिकृति अनिर्धारित स्थिति में ले जा सकती है
  • ca03d228 - इंडेक्सर एक json गुण के साथ सामान्य इंडेक्स स्रोत को अनुक्रमित करते समय लटक सकता है
  • 53c75305 - PQ इंडेक्स पर असमान अभिव्यक्ति फ़िल्टर को ठीक किया गया
  • ccf94e02 - 1000 मैचों के ऊपर सूची प्रश्नों पर select विंडोज़ को ठीक किया गया। SELECT * FROM pq ORDER BY id desc LIMIT 1000 , 100 OPTION max_matches=1100 पहले काम नहीं कर रहा था
  • a0483fe9 - Manticore के लिए HTTPS अनुरोध “max packet size(8388608) exceeded” जैसे चेतावनी उत्पन्न कर सकता है

मैंटीकोर सर्च इंस्टॉल करें

मैंटीकोर सर्च इंस्टॉल करें