Google ক্লাউড অনুসন্ধান SDK-এ সমস্ত সংযোগকারীর দ্বারা ব্যবহৃত Google-এর সরবরাহকৃত কনফিগারেশন প্যারামিটার রয়েছে৷ কিভাবে এই সেটিংস টিউন করতে হয় তা জানার ফলে ডেটার ইন্ডেক্সিংকে ব্যাপকভাবে প্রবাহিত করা যায়। এই নির্দেশিকাটি সূচীকরণের সময় উপস্থিত হতে পারে এমন বেশ কয়েকটি সমস্যা এবং সেগুলি সমাধান করতে ব্যবহৃত সেটিংস তালিকাভুক্ত করে।
FullTraversalConnector-এর জন্য ইন্ডেক্সিং থ্রুপুট কম
একটি FullTraversalConnector-এর জন্য থ্রুপুট উন্নত করতে নিম্নলিখিত টেবিলে কনফিগারেশন সেটিংস তালিকাভুক্ত করা হয়েছে:
সেটিং | বর্ণনা | ডিফল্ট | চেষ্টা করার জন্য কনফিগারেশন পরিবর্তন করুন |
---|---|---|---|
traverse.partitionSize | অতিরিক্ত APIOperation() আনার আগে ApiOperation() এর সংখ্যা ব্যাচগুলিতে প্রক্রিয়া করা হবে। অতিরিক্ত আইটেম আনার আগে SDK বর্তমান পার্টিশন প্রক্রিয়া করার জন্য অপেক্ষা করে। এই সেটিং উপলব্ধ মেমরি পরিমাণ উপর নির্ভর করে. ছোট পার্টিশন সাইজ, যেমন 50 বা 100 এর জন্য কম মেমরির প্রয়োজন হয় কিন্তু SDK-এর পক্ষ থেকে অপেক্ষা করতে হয়। | 50 | আপনার যদি প্রচুর মেমরি উপলব্ধ থাকে তবে partitionSize 1000 বা তার বেশি করার চেষ্টা করুন। |
batch.batchSize | একসাথে ব্যাচ করা অনুরোধের সংখ্যা। পার্টিশন করার শেষে SDK পার্টিশন থেকে প্রক্রিয়া করার জন্য সমস্ত ব্যাচড অনুরোধের জন্য অপেক্ষা করে। বৃহত্তর ব্যাচগুলির জন্য আরও অপেক্ষা করতে হবে। | 10 | ব্যাচের আকার কমানোর চেষ্টা করুন। |
batch.maxActiveBatches | একযোগে কার্যকরী ব্যাচের অনুমোদনযোগ্য সংখ্যা। | 20 | আপনি যদি batchSize কম করেন, তাহলে আপনাকে এই সূত্র অনুসারে maxActiveBatches বাম্প করা উচিত: maxActiveBatches = (partitionSize / batchSize ) + 50. উদাহরণস্বরূপ যদি আপনার partititionSize 1000 হয় এবং আপনার batchSize 5 হয়, তাহলে আপনার maxActiveBatches 250 হওয়া উচিত। অতিরিক্ত 50 হল পুনরায় চেষ্টা করার অনুরোধের জন্য একটি বাফার। এই বৃদ্ধি সংযোগকারীকে ব্লক না করেই সমস্ত অনুরোধ ব্যাচ করতে দেয়। |
traverse.threadPoolSize | সমান্তরাল প্রক্রিয়াকরণের জন্য সংযোজক তৈরি করে এমন থ্রেডের সংখ্যা। একটি একক পুনরাবৃত্তিকারী ক্রিয়াকলাপগুলি (সাধারণত RepositoryDoc অবজেক্ট) নিয়ে আসে, তবে API threadPoolSize নম্বর থ্রেড ব্যবহার করে সমান্তরালভাবে কল করে। প্রতিটি থ্রেড একবারে একটি আইটেম প্রক্রিয়া করে। 50 এর ডিফল্ট একই সাথে সর্বাধিক 50টি আইটেম প্রক্রিয়া করবে এবং এটি একটি পৃথক আইটেম (সূচীকরণ অনুরোধ সহ) প্রক্রিয়া করতে প্রায় 4 সেকেন্ড সময় নেয়। | 50 | threadPoolSize 10 এর একাধিক দ্বারা বাড়ানোর চেষ্টা করুন। |
অবশেষে, API অনুরোধ মোড পরিবর্তন করতে setRequestMode()
পদ্ধতি ব্যবহার করার কথা বিবেচনা করুন (হয় ASYNCHRONOUS
বা SYNCHRONOUS
)।
কনফিগারেশন ফাইল পরামিতি সম্পর্কে অতিরিক্ত তথ্যের জন্য, 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 সংখ্যা চিহ্নিত করে। যতক্ষণ পর্যন্ত API পোল প্রতিক্রিয়াতে আইটেমগুলি ফেরত দেয় ততক্ষণ পর্যন্ত বিষয়বস্তু সংযোগকারী আইটেম পোল করতে থাকে। পোল প্রতিক্রিয়া খালি হলে, সংযোগকারী আবার চেষ্টা করার আগে s জন্য অপেক্ষা করে। এই সেটিং শুধুমাত্র ListingConnector দ্বারা ব্যবহৃত হয় | 10 | 1-এ নামানোর চেষ্টা করুন। |
traverser. t1 .pollRequest.statuses = status1 , status2 , … | সূচীতে থাকা আইটেমগুলির অবস্থা, status1 , status2 , … , উল্লেখ করে। উদাহরণ স্বরূপ, NEW_ITEM এ status1 এবং MODIFIED এ status2 সেট করা ট্র্যাভারসার t1 শুধুমাত্র সেই স্থিতিগুলির সাথে আইটেমগুলিকে সূচী করার নির্দেশ দেয়৷ | একজন ট্রাভার্স সব স্ট্যাটাস চেক করে | বিভিন্ন স্ট্যাটাসের জন্য বিভিন্ন ট্রাভার্স পোল নিয়ে পরীক্ষা করুন। |
কনফিগারেশন ফাইল পরামিতি সম্পর্কে অতিরিক্ত তথ্যের জন্য, Google-এর সরবরাহকৃত কনফিগারেশন প্যারামিটারগুলি পড়ুন।
বড় ফাইল আপলোড করার সময় SDK টাইমআউট বা বাধা
আপনি যদি বড় ফাইল আপলোড করার সময় SDK টাইমআউট বা বাধা অনুভব করেন, তাহলে ব্যবহার করে একটি বড় টাইমআউট নির্দিষ্ট করুন traverser.timeout= s
(যেখানে s = সেকেন্ডের সংখ্যা)। এই মানটি চিহ্নিত করে কতক্ষণ কর্মী থ্রেড একটি আইটেম প্রক্রিয়া করতে হবে। SDK-তে ডিফল্ট টাইমআউট হল ট্র্যাভারসার থ্রেডের জন্য 60 সেকেন্ড। অতিরিক্তভাবে, যদি আপনি পৃথক API অনুরোধের সময় শেষ হওয়ার অভিজ্ঞতা পান, অনুরোধের সময়সীমার মান বাড়াতে নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করুন:
টাইমআউট প্যারামিটারের জন্য অনুরোধ করুন | বর্ণনা | ডিফল্ট |
---|---|---|
indexingService.connectTimeoutSeconds | ইন্ডেক্সিং API অনুরোধের জন্য টাইমআউট সংযোগ করুন। | 120 সেকেন্ড। |
indexingService.readTimeoutSeconds | ইন্ডেক্সিং API অনুরোধের জন্য সময়সীমা পড়ুন। | 120 সেকেন্ড। |