कनेक्टर की सेटिंग को ट्यून करें

Google Cloud Search SDK टूल में, Google के उपलब्ध कराए गए कई कॉन्फ़िगरेशन पैरामीटर शामिल होते हैं. इन पैरामीटर का इस्तेमाल सभी कनेक्टर करते हैं. इन सेटिंग को ट्यून करने का तरीका जानने से डेटा को इंडेक्स करने में आसानी होती है. इस गाइड में, इंडेक्स करने के दौरान आने वाली कई समस्याओं की जानकारी दी गई है. साथ ही, उन्हें हल करने के लिए इस्तेमाल की गई सेटिंग की जानकारी भी दी गई है.

FullTraversalConnector के लिए, इंडेक्स करने की प्रोसेस कम है

नीचे दी गई टेबल में कॉन्फ़िगरेशन सेटिंग की सूची दी गई है, ताकि FullTraversalConnector की थ्रूपुट को बेहतर बनाया जा सके:

सेटिंग ब्यौरा डिफ़ॉल्ट आज़माने के लिए कॉन्फ़िगरेशन में बदलाव
traverse.partitionSize अतिरिक्त APIOperation() फ़ेच करने से पहले बैच में प्रोसेस किए जाने वाले ApiOperation() की संख्या. SDK टूल, अतिरिक्त आइटम फ़ेच करने से पहले, मौजूदा पार्टीशन के प्रोसेस होने का इंतज़ार करता है. यह सेटिंग, उपलब्ध मेमोरी पर निर्भर करती है. छोटे सेगमेंट के साइज़, जैसे कि 50 या 100 में कम मेमोरी की ज़रूरत होती है, लेकिन SDK टूल के लिए ज़्यादा इंतज़ार करना पड़ता है. 50 अगर आपके पास ज़्यादा स्टोरेज है, तो partitionSize को बढ़ाकर 1,000 या इससे ज़्यादा करने की कोशिश करें.
batch.batchSize एक साथ बैच में भेजे गए अनुरोधों की संख्या. SDK टूल को सेगमेंट में बांटने के आखिर में, बैच में भेजे गए सभी अनुरोधों के प्रोसेस होने का इंतज़ार किया जाता है. बड़े बैच में ज़्यादा इंतज़ार करना पड़ता है. 10 बैच का साइज़ कम करें.
batch.maxActiveBatches एक साथ चलाए जा सकने वाले बैच की संख्या. 20 अगर आपने batchSize को कम किया है, तो आपको maxActiveBatches को इस फ़ॉर्मूला के हिसाब से बढ़ाना चाहिए:

maxActiveBatches = (partitionSize / batchSize) + 50. उदाहरण के लिए, अगर आपका partititionSize 1000 है और batchSize का मान 5 है, तो आपका maxActiveBatches 250 होना चाहिए. अतिरिक्त 50, फिर से कोशिश करने के अनुरोधों के लिए बफ़र होता है. इस बढ़ोतरी की मदद से, कनेक्टर बिना ब्लॉक किए सभी अनुरोधों के बैच बना सकता है.
traverse.threadPoolSize साथ-साथ प्रोसेस करने के लिए, कनेक्टर की मदद से बनाए गए थ्रेड की संख्या. सिंगल इटरेटर (आम तौर पर, RepositoryDoc ऑब्जेक्ट) कार्रवाइयों को क्रम से फ़ेच करता है, लेकिन एपीआई कॉल प्रोसेस साथ-साथ threadPoolSize थ्रेड की संख्या का इस्तेमाल करता है. हर थ्रेड एक बार में एक आइटम प्रोसेस करती है. डिफ़ॉल्ट तौर पर, 50 आइटम को एक साथ ज़्यादा से ज़्यादा 50 आइटम प्रोसेस किया जा सकता है. साथ ही, किसी एक आइटम को प्रोसेस करने में करीब चार सेकंड लगते हैं. इसमें इंडेक्स करने का अनुरोध भी शामिल है. 50 threadPoolSize को 10 के गुणज तक बढ़ाकर देखें.

आखिर में, एपीआई अनुरोध मोड (ASYNCHRONOUS या SYNCHRONOUS) को बदलने के लिए, setRequestMode() तरीके का इस्तेमाल करें.

कॉन्फ़िगरेशन फ़ाइल पैरामीटर के बारे में ज़्यादा जानकारी के लिए, Google के दिए गए कॉन्फ़िगरेशन पैरामीटर देखें.

ListTraversalConnector के लिए, इंडेक्स करने की क्षमता कम है

डिफ़ॉल्ट रूप से, ListTraversalConnnector को लागू करने वाला कनेक्टर, आपके आइटम को इंडेक्स करने के लिए सिंगल ट्रैवर्सर का इस्तेमाल करता है. इंडेक्स करने की प्रोसेस को बेहतर बनाने के लिए, कई ट्रैवर्सर बनाए जा सकते हैं. हर कॉन्फ़िगरेशन का अपना कॉन्फ़िगरेशन बनाया जा सकता है, जिसमें किसी खास आइटम के स्टेटस (NEW_ITEM, MODIFIED वगैरह) पर फ़ोकस किया गया हो. नीचे दी गई टेबल में कॉन्फ़िगरेशन सेटिंग की सूची दी गई है, ताकि डेटा की रफ़्तार को बढ़ाया जा सके:

.
सेटिंगब्यौराडिफ़ॉल्टआज़माने के लिए कॉन्फ़िगरेशन में बदलाव
repository.traversers = t1, t2, t3, ...एक या उससे ज़्यादा अलग-अलग ट्रैवर्सर बनाता है, जहां t1, t2, t3, ... हर एक का यूनीक नाम है. हर ट्रैवर्सर के नाम वाली सेटिंग का अपना सेट होता है, जिसकी पहचान ट्रैवर्सर के यूनीक नाम, जैसे traversers.t1.hostload और traversers.t2.hostload से की जाती हैएक ट्रैवर्सरअतिरिक्त ट्रैवर्सर जोड़ने के लिए इस सेटिंग का इस्तेमाल करें
traversers.t1.hostload = nयह थ्रेड की संख्या n बताता है, ताकि आइटम को एक साथ इंडेक्स करने के लिए इस्तेमाल किया जा सके.5आपको अपने डेटा स्टोर करने की जगह पर कितना लोड डालना है, इसके हिसाब से n को ट्यून करने की सुविधा आज़माएं. इसकी शुरुआत 10 या उससे ज़्यादा की वैल्यू से करें.
schedule.pollQueueIntervalSecs = sफिर से पोल कराने से पहले इंतज़ार करने के लिए, सेकंड की संख्या s बताता है . जब तक एपीआई, पोल के जवाब में आइटम दिखाता है, तब तक कॉन्टेंट कनेक्टर, आइटम को पोल कराना जारी रखता है. पोल का जवाब खाली होने पर, कनेक्टर s सेकंड इंतज़ार करता है और फिर कोशिश करता है. इस सेटिंग का इस्तेमाल सिर्फ़ ListingsConnector करता है10एक लेवल तक कम करने की कोशिश करें.
traverser.t1.pollRequest.statuses = status1, status2, …इंडेक्स किए जाने वाले आइटम की स्थिति के बारे में बताता है. जैसे, status1, status2, . उदाहरण के लिए, status1 को NEW_ITEM पर और status2 को MODIFIED पर सेट करने से, ट्रैवर्सर t1 को सिर्फ़ उन स्टेटस वाले आइटम को इंडेक्स करने का निर्देश मिलता है.एक ट्रैवर्सर सभी स्थितियों की जांच करता हैअलग-अलग स्थितियों के लिए अलग-अलग ट्रैवर्सर पोल के साथ प्रयोग करें.

कॉन्फ़िगरेशन फ़ाइल पैरामीटर के बारे में ज़्यादा जानकारी के लिए, Google के दिए गए कॉन्फ़िगरेशन पैरामीटर देखें.

बड़ी फ़ाइलें अपलोड करते समय, SDK टूल का टाइम आउट हो जाता है या उनमें रुकावट आती है

अगर बड़ी फ़ाइलें अपलोड करते समय, SDK टूल का टाइम आउट या रुकावट आती है, तो traverser.timeout=s (जहां s = सेकंड की संख्या है) का इस्तेमाल करके, टाइम आउट की संख्या को बड़ा करें. इस वैल्यू से यह पता चलता है कि वर्कर थ्रेड को किसी आइटम को कितनी देर तक प्रोसेस करना होगा. ट्रैवर्सर थ्रेड के लिए, SDK टूल में डिफ़ॉल्ट टाइम आउट 60 सेकंड है. इसके अलावा, अगर आपको अलग-अलग एपीआई अनुरोधों का समय दिखता है, तो अनुरोध के टाइम आउट की वैल्यू बढ़ाने के लिए इन तरीकों का इस्तेमाल करें:

अनुरोध का टाइम आउट पैरामीटर ब्यौरा डिफ़ॉल्ट
indexingService.connectTimeoutSeconds एपीआई अनुरोधों को इंडेक्स करने के लिए, टाइम आउट सेट करें. 120 सेकंड.
indexingService.readTimeoutSeconds एपीआई अनुरोधों को इंडेक्स करने के टाइम आउट होने का समय देखें. 120 सेकंड.