আপনার ইনভেন্টরির উপর নির্ভর করে, শার্ডিং (বা একাধিক ফাইলে ফিড বিভক্ত করা) প্রয়োজন হতে পারে।
কখন শর্ডিং ব্যবহার করবেন
1 ফাইলের জন্য ফিড 200 MB ছাড়িয়ে গেছে (gzip কম্প্রেশনের পরে)।
- উদাহরণ: জেনারেট করা প্রাপ্যতা ফিড হল 1 GB। এটিকে 5+ পৃথক ফাইলে (বা শার্ড) শার্ড করা উচিত।
অংশীদার ইনভেন্টরি সিস্টেম এবং/অথবা অঞ্চল জুড়ে বিতরণ করা হয় যার ফলে ইনভেন্টরি সমন্বয় করতে অসুবিধা হয়।
- উদাহরণ: অংশীদারের ইউএস এবং ইইউ ইনভেন্টরি রয়েছে যা আলাদা সিস্টেমে থাকে। ফিডটি 2টি ফাইল (বা শার্ড) দিয়ে তৈরি করা হতে পারে, 1টি US এর জন্য এবং 1টি EU-এর জন্য একই
nonceএবংgeneration_timestampসহ।
- উদাহরণ: অংশীদারের ইউএস এবং ইইউ ইনভেন্টরি রয়েছে যা আলাদা সিস্টেমে থাকে। ফিডটি 2টি ফাইল (বা শার্ড) দিয়ে তৈরি করা হতে পারে, 1টি US এর জন্য এবং 1টি EU-এর জন্য একই
সাধারণ নিয়ম
- প্রতিটি শার্ড 1 ফাইলের জন্য 200 MB অতিক্রম করতে পারে না (gzip কম্প্রেশনের পরে)।
- আমরা প্রতি ফিডে 20 শার্ডের বেশি না দেওয়ার পরামর্শ দিই। আপনার যদি এমন কোনো ব্যবসায়িক ন্যায্যতা থাকে যার জন্য সেই পরিমাণের বেশি প্রয়োজন, অনুগ্রহ করে আরও নির্দেশের জন্য সহায়তার সাথে যোগাযোগ করুন।
- পৃথক রেকর্ড (উদাহরণস্বরূপ একটি
Merchantঅবজেক্ট) অবশ্যই একটি শার্ডে পাঠাতে হবে, সেগুলি একাধিক শার্ডে বিভক্ত করা যাবে না। যাইহোক, ভবিষ্যতে ফিডের জন্য তাদের একইshard_numberসহ শার্ডে পাঠাতে হবে না। - ভালো পারফরম্যান্সের জন্য, আপনার ডেটা শার্ডগুলির মধ্যে সমানভাবে বিভক্ত করা উচিত যাতে সমস্ত শার্ড ফাইলের আকার একই রকম হয়।
কিভাবে শার্ড ফিড
আপনি একটি একক JSON-কে আলাদা JSON ফাইলে বিভক্ত করে নন ওভারল্যাপিং ইভেন্টগুলির সাথে এবং JSON ফাইলের নামের তালিকার সাথে ফাইল বর্ণনাকারী JSON আপডেট করে ইভেন্ট ফিডকে শার্ড করতে পারেন৷
প্রস্তাবিত: প্রতিটি ফাইলের জন্য (বা শার্ড), ফিডের ধরন, টাইমস্ট্যাম্প এবং শার্ড নম্বর নির্দেশ করতে ফাইলের নাম সেট করুন। শার্ডগুলি প্রায় সমান আকারের হওয়া উচিত এবং সমস্ত শার্ডগুলি আপলোড হয়ে গেলে প্রক্রিয়া করা হয়৷
সংক্ষিপ্ত উদাহরণ
ফাইল বর্ণনাকারী - event.feeddata.v1_1728306001.filedescriptor.json
{
"generation_timestamp": 1728306001,
"name": "event.feeddata.v1",
"data_file": [
"event.feeddata.v1_1728306001_001.json",
"event.feeddata.v1_1728306001_002.json"
]
}শার্ড 0 - event.feeddata.v1_1728306001_001.json
{
"data": [
{
"id": "event-1",
...
},
{
"id": "event-2",
...
}
]
}শার্ড 1 - event.feeddata.v1_1728306001_002.json
{
"data": [
{
"id": "event-3",
...
},
{
"id": "event-4",
...
}
]
}অংশীদার বিতরণ জায় জন্য Shards
অংশীদারদের জন্য একাধিক সিস্টেম বা অঞ্চল জুড়ে একটি একক ফিডে বিতরণ করা ইনভেন্টরি একত্রিত করা চ্যালেঞ্জিং হতে পারে। প্রতিটি বিতরণ করা সিস্টেমের ইনভেন্টরি সেটের সাথে মেলে প্রতিটি শার্ড সেট করে পুনর্মিলন চ্যালেঞ্জগুলি সমাধান করতে Sharding ব্যবহার করা যেতে পারে।
উদাহরণস্বরূপ, বলুন একজন অংশীদারের ইনভেন্টরি 2টি অঞ্চলে বিভক্ত (US এবং EU ইনভেন্টরি), যা 2টি পৃথক সিস্টেমে থাকে৷
অংশীদার প্রতিটি ফিডকে 2টি ফাইলে (বা শার্ড) ভাগ করতে পারে:
ফিডগুলি সঠিকভাবে প্রক্রিয়া করা হয়েছে তা নিশ্চিত করতে নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করুন:
- একটি আপলোড সময়সূচী নির্ধারণ করুন, এবং সময়সূচী অনুসরণ করতে ইনভেন্টরির প্রতিটি উদাহরণ কনফিগার করুন।
- প্রতিটি উদাহরণের জন্য অনন্য শার্ড নম্বর বরাদ্দ করুন (যেমন US = N, EU = N + 1)।
total_shardsশার্ডের মোট সংখ্যায় সেট করুন। - প্রতিটি নির্ধারিত আপলোড সময়ে, একটি
generation_timestampবিষয়ে সিদ্ধান্ত নিন। এই দুটি ক্ষেত্রের জন্য একই মান ধরে রাখতে সমস্ত ফাইলের নাম সেট করুন এবং বর্ণনাকারী ফাইলে সমস্ত প্রত্যাশিত ফাইলের নাম তালিকাভুক্ত করুন।-
generation_timestampবর্তমান বা সাম্প্রতিক অতীত হওয়া উচিত (আদর্শভাবে, অংশীদারের রিড-এ ডাটাবেস টাইমস্ট্যাম্প)
-
- সমস্ত শার্ড আপলোড হওয়ার পরে, Google
generation_timestampএবংnonceব্যবহার করে শার্ডগুলিকে গোষ্ঠীভুক্ত করে।
Google ফিডটিকে একটি হিসাবে প্রসেস করবে যদিও প্রতিটি শার্ড অংশীদারের ইনভেনটরির একটি ভিন্ন অঞ্চলকে প্রতিনিধিত্ব করে এবং যতক্ষণ পর্যন্ত generation_timestamp সমস্ত শার্ডগুলিতে একই থাকে ততক্ষণ পর্যন্ত দিনের একটি ভিন্ন সময়ে আপলোড করা যেতে পারে।