আমি সমবয়সীদের একটি সেট মধ্যে ডেটা সিঙ্ক্রোনাইজেশনের পন্থাগুলি সন্ধান শুরু করেছি। পিয়ারগুলি অবশ্যই একটি সংযোগ বিচ্ছিন্নভাবে কাজ করতে সক্ষম হবে এবং তারপরে তাদের স্থানীয় পরিবর্তনগুলিকে একত্রিত করতে একসাথে সিঙ্ক্রোনাইজ করতে হবে।
পিয়াররা স্থানীয় আপডেটগুলি একটি "তিন ধরণের মার্জ" এর সাথে মার্জ করতে সক্ষম হওয়া উচিত । সুতরাং, সিঙ্ক্রোনাইজেশনে পিয়ারদের জানা উচিত কোন তথ্যগুলি আরও সাম্প্রতিক, কিন্তু যেখানে কোনও কঠোর আদেশ নেই, তাদের উচিত সাধারণ মূলের ভিত্তিতে তথ্যগুলিকে একত্রিত করতে সক্ষম হওয়া উচিত।
যখন স্বতন্ত্র সহকর্মীরা পরিবর্তন করে, তারা তাদের "ঘড়ি" দিয়ে "টাইম স্ট্যাম্প" করতে পারে। আমি "ঘড়ি" এবং "টাইম স্ট্যাম্প" শব্দটি ব্যবহার করি তবে আমি ওয়াল টাইম ক্লকটি বোঝাতে চাই না। আমার অর্থ ঘটনাগুলির একধরণের আংশিক ক্রম যা কার্যকারিতা পরিষ্কার করে। এটি পরিচালিত অ্যাসাইক্লিক গ্রাফ (ডিএজি) গঠনের ইভেন্টগুলির মধ্যে "এর আগে ঘটেছিল" সম্পর্ক।
দেখে মনে হচ্ছে এই আংশিক ক্রমটি তৈরির "স্বাভাবিক" উপায়টি কোনও ভেক্টর ঘড়ি ব্যবহার করে । তবে এগুলি খুব বড় হয়ে উঠতে পারে। অন্তর্বর্তী গাছের ঘড়ির মতো সাম্প্রতিকতম ঘটনাগুলি সময়ের স্ট্যাম্পগুলির আরও কমপ্যাক্ট স্টোরেজ সরবরাহ করে।
আমি যে বিষয়ে মোটেও পরিষ্কার নই তা হ'ল কেন সিঙ্ক্রোনাইজেশন প্রোটোকলগুলি স্পষ্টতই "সহজভাবে" ডিএজি সঞ্চয় করে না। (নাকি তারা?)
সহকর্মীরা এলোমেলোভাবে একটি ইউইউডি (বা অন্য উপায়ে যেমন <peer-name> + <local-monotonically-increasing-counter>
) তৈরি করে স্বাধীনভাবে একটি সময় স্ট্যাম্প তৈরি করতে পারে । এই সময়ের স্ট্যাম্পের অর্ডারটি সেই পিয়ারের কাছে সম্পূর্ণ পরিষ্কার।
যখন 2 জন সহকর্মী একে অপরের সাথে সিঙ্ক হয়, তারা নতুন সময়ের স্ট্যাম্পে একমত হতে পারে। আবার, এই সময়ের স্ট্যাম্পের ক্রম উভয় সমবয়সীদের কাছে পরিষ্কার is
সমবয়সীদের মধ্যে ডিএজি এর আগে ঘটে যাওয়া ঘটনাটি এখন পাস করার প্রয়োজন রয়েছে তবে এর স্টোরেজ এবং ব্যান্ডউইথের প্রয়োজনীয়তা কম। সময় পয়েন্ট হ'ল গ্রাফের শিখুন। এর মতো তাদের কাছে 1 বা 2 আগত প্রান্ত রয়েছে (ক্লায়েন্টের ইভেন্টের জন্য 1 এবং ক্লায়েন্টদের মধ্যে একটি সিঙ্কের জন্য 2)। এটি নেটওয়ার্কের পিয়ারের সংখ্যার চেয়ে সীমাবদ্ধ এবং স্বতন্ত্র।
একটি পৃথক সময় পয়েন্ট ব্যবহার করতে, আপনাকে সময় পয়েন্টগুলির গ্রাফের প্রয়োজন যা এতে নেতৃত্ব দেয়। তবে যতদূর আমি দেখতে পাচ্ছি, যে কোনও পিয়ার যে কোনও সময় পয়েন্ট সম্পর্কে জানতে সক্ষম (এটি এটি নিজেই উত্পন্ন করেছে, বা এটি অন্য পিয়ারের সাথে জেনারেট করেছে, বা এটি সাথে সিঙ্ক্রোনাইজ করার সময় অন্য পিয়ারের দ্বারা জানানো হয়েছিল ) ও ছিল সেই সময় পয়েন্ট অবধি ইতিহাস সম্পর্কে জানার সুযোগ আমি মনে করি এটির জন্য সম্ভবত একটি প্ররোচক প্রমাণ রয়েছে।
স্পষ্টরূপে ডএজি সঞ্চয় এবং সিঙ্ক করা সহজ বলে মনে হচ্ছে: এটি কি বাস্তবে ব্যবহৃত হয়? যদি তা না হয় তবে কেন ভেক্টর ক্লকগুলি অগ্রাধিকার দেওয়া হয়?
মন্তব্য
পিয়ার টু পিয়ার
আমি ক্লায়েন্ট সার্ভার সমাধানের তুলনায় পিয়ারের সমাধানটিকে পিয়ারের কাছে পছন্দ করব।
সম্ভবত শেষ টোপোলজি হ'ল অনেক ক্লায়েন্ট যা অনেকগুলি ছোট সার্ভারের সাথে সংযোগ স্থাপন করে যা তাদের মধ্যে প্রতিলিপি তৈরি করে। তবে, এই নির্দিষ্ট টপোলজির প্রয়োজন এমন কোনও সমাধানের চেয়ে এই সাধারণ টপোলজিকে সমর্থন করে এমন একটি সাধারণ সমাধান পাওয়া ভাল লাগবে।