সিঙ্ক্রোনাইজেশনের জন্য ভেক্টর ক্লকগুলির পরিবর্তে সুস্পষ্ট ডিএজি


13

আমি সমবয়সীদের একটি সেট মধ্যে ডেটা সিঙ্ক্রোনাইজেশনের পন্থাগুলি সন্ধান শুরু করেছি। পিয়ারগুলি অবশ্যই একটি সংযোগ বিচ্ছিন্নভাবে কাজ করতে সক্ষম হবে এবং তারপরে তাদের স্থানীয় পরিবর্তনগুলিকে একত্রিত করতে একসাথে সিঙ্ক্রোনাইজ করতে হবে।

পিয়াররা স্থানীয় আপডেটগুলি একটি "তিন ধরণের মার্জ" এর সাথে মার্জ করতে সক্ষম হওয়া উচিত । সুতরাং, সিঙ্ক্রোনাইজেশনে পিয়ারদের জানা উচিত কোন তথ্যগুলি আরও সাম্প্রতিক, কিন্তু যেখানে কোনও কঠোর আদেশ নেই, তাদের উচিত সাধারণ মূলের ভিত্তিতে তথ্যগুলিকে একত্রিত করতে সক্ষম হওয়া উচিত।

যখন স্বতন্ত্র সহকর্মীরা পরিবর্তন করে, তারা তাদের "ঘড়ি" দিয়ে "টাইম স্ট্যাম্প" করতে পারে। আমি "ঘড়ি" এবং "টাইম স্ট্যাম্প" শব্দটি ব্যবহার করি তবে আমি ওয়াল টাইম ক্লকটি বোঝাতে চাই না। আমার অর্থ ঘটনাগুলির একধরণের আংশিক ক্রম যা কার্যকারিতা পরিষ্কার করে। এটি পরিচালিত অ্যাসাইক্লিক গ্রাফ (ডিএজি) গঠনের ইভেন্টগুলির মধ্যে "এর আগে ঘটেছিল" সম্পর্ক।

দেখে মনে হচ্ছে এই আংশিক ক্রমটি তৈরির "স্বাভাবিক" উপায়টি কোনও ভেক্টর ঘড়ি ব্যবহার করে । তবে এগুলি খুব বড় হয়ে উঠতে পারে। অন্তর্বর্তী গাছের ঘড়ির মতো সাম্প্রতিকতম ঘটনাগুলি সময়ের স্ট্যাম্পগুলির আরও কমপ্যাক্ট স্টোরেজ সরবরাহ করে।

আমি যে বিষয়ে মোটেও পরিষ্কার নই তা হ'ল কেন সিঙ্ক্রোনাইজেশন প্রোটোকলগুলি স্পষ্টতই "সহজভাবে" ডিএজি সঞ্চয় করে না। (নাকি তারা?)

সহকর্মীরা এলোমেলোভাবে একটি ইউইউডি (বা অন্য উপায়ে যেমন <peer-name> + <local-monotonically-increasing-counter>) তৈরি করে স্বাধীনভাবে একটি সময় স্ট্যাম্প তৈরি করতে পারে । এই সময়ের স্ট্যাম্পের অর্ডারটি সেই পিয়ারের কাছে সম্পূর্ণ পরিষ্কার।

যখন 2 জন সহকর্মী একে অপরের সাথে সিঙ্ক হয়, তারা নতুন সময়ের স্ট্যাম্পে একমত হতে পারে। আবার, এই সময়ের স্ট্যাম্পের ক্রম উভয় সমবয়সীদের কাছে পরিষ্কার is

সমবয়সীদের মধ্যে ডিএজি এর আগে ঘটে যাওয়া ঘটনাটি এখন পাস করার প্রয়োজন রয়েছে তবে এর স্টোরেজ এবং ব্যান্ডউইথের প্রয়োজনীয়তা কম। সময় পয়েন্ট হ'ল গ্রাফের শিখুন। এর মতো তাদের কাছে 1 বা 2 আগত প্রান্ত রয়েছে (ক্লায়েন্টের ইভেন্টের জন্য 1 এবং ক্লায়েন্টদের মধ্যে একটি সিঙ্কের জন্য 2)। এটি নেটওয়ার্কের পিয়ারের সংখ্যার চেয়ে সীমাবদ্ধ এবং স্বতন্ত্র।

একটি পৃথক সময় পয়েন্ট ব্যবহার করতে, আপনাকে সময় পয়েন্টগুলির গ্রাফের প্রয়োজন যা এতে নেতৃত্ব দেয়। তবে যতদূর আমি দেখতে পাচ্ছি, যে কোনও পিয়ার যে কোনও সময় পয়েন্ট সম্পর্কে জানতে সক্ষম (এটি এটি নিজেই উত্পন্ন করেছে, বা এটি অন্য পিয়ারের সাথে জেনারেট করেছে, বা এটি সাথে সিঙ্ক্রোনাইজ করার সময় অন্য পিয়ারের দ্বারা জানানো হয়েছিল ) ছিল সেই সময় পয়েন্ট অবধি ইতিহাস সম্পর্কে জানার সুযোগ আমি মনে করি এটির জন্য সম্ভবত একটি প্ররোচক প্রমাণ রয়েছে।

স্পষ্টরূপে ডএজি সঞ্চয় এবং সিঙ্ক করা সহজ বলে মনে হচ্ছে: এটি কি বাস্তবে ব্যবহৃত হয়? যদি তা না হয় তবে কেন ভেক্টর ক্লকগুলি অগ্রাধিকার দেওয়া হয়?


মন্তব্য

পিয়ার টু পিয়ার

আমি ক্লায়েন্ট সার্ভার সমাধানের তুলনায় পিয়ারের সমাধানটিকে পিয়ারের কাছে পছন্দ করব।

সম্ভবত শেষ টোপোলজি হ'ল অনেক ক্লায়েন্ট যা অনেকগুলি ছোট সার্ভারের সাথে সংযোগ স্থাপন করে যা তাদের মধ্যে প্রতিলিপি তৈরি করে। তবে, এই নির্দিষ্ট টপোলজির প্রয়োজন এমন কোনও সমাধানের চেয়ে এই সাধারণ টপোলজিকে সমর্থন করে এমন একটি সাধারণ সমাধান পাওয়া ভাল লাগবে।


আপনি কী বলছেন তা আমি ভুল বোঝাবুঝি করছি, তবে এটি স্পষ্ট নয় যে রাষ্ট্রের দিকে পরিচালিত সমস্ত ইভেন্টের গ্রাফ কাউন্টারগুলির ভেক্টরের চেয়ে কীভাবে ছোট হতে পারে। আপনি যদি এমন কোনও সিস্টেমে না থাকেন যার মধ্যে অত্যন্ত সংখ্যক নোড থাকে এবং অত্যন্ত স্বল্প সংখ্যক পরিবর্তন হয়।
কেডগ্রিগরি

ধন্যবাদ @ কেডিগ্রিগরি - ভাল কথা। ভবিষ্যতে একটি তিনটি উপায়ে সংশ্লেষ গণনা করতে, আপনাকে অতীত জানতে হবে (এবং অতীতের সময়ের পয়েন্টগুলির ডিএজি নির্ধারণ করতে সক্ষম হতে হবে)। সুতরাং, আপনি যদি সেই অতীত সময়ের পয়েন্টগুলি সঞ্চয় করে থাকেন তবে স্পষ্টতই ড্যাজি সঞ্চয় করা সস্তা। আপনি যদি সেই অতীত সময়ের পয়েন্টগুলি সংরক্ষণ না করে থাকেন তবে আপনি যাইহোক তথ্যের একত্রে উপায় একীভূত করতে পারবেন না। - আমি ভাবছি যদি এই তিন পথে প্রয়োজনীয় জিনিসটি হতে পারে? আপনি যদি ত্রি-মুখী না চান, সম্ভবত ভেক্টর ক্লকগুলি সুস্পষ্ট ডিএগির চেয়ে ভাল?
বেনজোহান

আমি মনে করি এটি @kdgregory এর গুরুত্বপূর্ণ পয়েন্ট হতে পারে, সুতরাং আমি এ সম্পর্কে কিছুটা যুক্ত করেছি। আমি ধরে নিচ্ছি যে 3-ত্রি-মার্জটি করা সম্ভব হবে, যা ইতিহাস থেকে জানা যায়। যদি সমস্ত ইতিহাস জানা থাকে তবে (আমি গণনা করি) একটি সুস্পষ্ট ডিএজি সস্তা। যদি ইতিহাস কেটে ফেলা হয় তবে ভেক্টর ঘড়িগুলি সম্ভবত কম ব্যয়বহুল উপায়।
বেনজোহান

1
হ্যাঁ, ভেক্টর ক্লকগুলি সম্পর্কে আমার বোঝাপড়াটি হ'ল তারা গ্রহণযোগ্যতা / প্রত্যাখ্যানের সিদ্ধান্তের জন্য কেবল উদ্দেশ্য: "নোড সি এই টুকরোটি ডেটা আপডেট করার চেষ্টা করছে, তবে এটি নোড বি এর আপডেট সম্পর্কে অবগত নয়"।
কেডগ্রিগরি

উত্তর:


1

আমি যতদূর বলতে পারি, গিট এবং মার্কুরিয়ালের মতো সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ভেক্টর ক্লকগুলির পরিবর্তে ড্যাগের পদ্ধতি ব্যবহার করে।


1
কোনও ব্যাখ্যা ছাড়াই, অন্য কেউ যদি বিপরীত মতামত পোস্ট করে তবে এই উত্তরটি অকেজো হতে পারে। উদাহরণস্বরূপ, কেউ যদি "গিট এবং মার্কুরিয়ালের মতো প্রোপভারশন কন্ট্রোল সিস্টেমগুলি ডিএজি পদ্ধতির পরিবর্তে ভেক্টর ক্লক ব্যবহার করেন" এর মতো দাবি পোস্ট করে তবে এই উত্তর কীভাবে পাঠককে দুটি বিরোধী মতামত বাছাই করতে সহায়তা করবে? মানের মানগুলির উত্তর কীভাবে দেওয়া যায় তা পূরণ করার জন্য, এটি আরও ভাল আকারে যুক্ত করা বিবেচনা করুন
gnat

2
আমি যেভাবে প্রশ্নটি বুঝতে পেরেছিলাম, তারা জিজ্ঞাসা করছিল যে ভেক্টর ক্লকগুলির চেয়ে ডিএজি কোথায় ব্যবহৃত হয় তার কোনও বাস্তব বিশ্বের উদাহরণ রয়েছে কিনা?
বাইকম্যান 868

1
গিট এবং মেকুরিয়াল উভয়ই ডেইজি ব্যবহার করে পিয়ার টু পিয়ার চেঞ্জ সিঙ্ক্রোনাইজেশনের সত্যিকারের বিশ্ব উদাহরণ এবং আমি আশা করি যে আপনি বেনজোন ভোট দিয়েছিলেন তা সত্ত্বেও আমার উত্তর সহায়ক হবে।
বাইকম্যান 868

হাই @ বাইকম্যান868 আমি আপনাকে নেট 0 এর জন্য ভোট দিয়েছি (দুঃখিত) আপনার উত্তর হয় সহায়ক এমনকি যদি অনিশ্চয়তা সঙ্গে couched! রেফারেন্স বা অনুমোদনের উত্তরগুলি সর্বদা দুর্দান্ত হলেও স্ট্যাক এক্সচেঞ্জগুলি এই আদেশ দেয় না! আপনার পরামর্শটি প্রশ্নের মন্তব্যে পয়েন্ট দিয়ে ভাল বোঝায়। দেখে মনে হচ্ছে আপনি যখন ইতিহাস সংরক্ষণ করতে এবং ইতিহাসের একত্রীকরণ করতে সক্ষম হন, তখন একটি ডিএজি উপযুক্ত। আপনি যখন ইতিহাস সংরক্ষণ করেন না এবং বর্তমান স্থিতির সাথে সিঙ্ক্রোনাইজেশন এবং sensক্যমত্য চান, তখন ভেক্টর ক্লকগুলি আপনার প্রয়োজনীয়।
বেনজহান

1

Sens কমত্যের সমস্যাটি একবার দেখুন । আপনার কাজের প্রয়োজনীয়তার উপর নির্ভর করে (আপনার কাছে কতটা ডেটা রয়েছে, কতগুলি সিঙ্কিং নোড রয়েছে, কত ঘন ঘন ইত্যাদি) আপনার সমস্যার উপযুক্ত সমাধান ("রাফ্ট" এর মতো) আপনার ক্ষেত্রে উপযুক্ত হতে পারে।

এই সমস্যার আরেকটি (সম্ভবত স্পর্শকাতর) পদ্ধতির একটি সিআরডিটি ডিজাইন করা ।


বিনুনি HTTP- র উদ্দীপক HTTP- র মাধ্যমে CRDT ভিত্তিক রাষ্ট্র সিঙ্ক প্রোটোকল তৈরি করতে চেষ্টা করছে। তাদের একটি টাইম ডিএজি এবং স্পেস ড্যাগের দুর্দান্ত দৃশ্যায়ন রয়েছে এবং কীভাবে এই দুটি ধারণাগুলি আন্তঃসম্পর্কিতভাবে অবিচ্ছিন্নতার সাথে পৌঁছতে পারে।
ডুয়েন জে

-1

আলেফ প্রোটোকল হ'ল একটি পি 2 পি লিডারলেস প্রোটোকল যা sensকমত্যের মাধ্যমে লেনদেনের সেটগুলি (বা ইভেন্টস) এর বিতরণকৃত ডিএজি তৈরি করে

https://arxiv.org/pdf/1908.05156


উল্লেখযোগ্য প্রোটোকল কীভাবে মূল প্রশ্নের উত্থাপিত পয়েন্টগুলিতে সম্বোধন করে তা আপনার উত্তরকে প্রসারিত করা উচিত। উত্তরগুলি স্বয়ংসম্পূর্ণ করা গুরুত্বপূর্ণ, কারণ এটি এই প্রশ্নটি জুড়ে আসা প্রত্যেককেই উপকার করে।
ববডালগাইশ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.