এমএমওআরপিগির মতো ডায়নামিক ওয়ার্ল্ডকে অনুভূমিকভাবে স্কেলযোগ্য করার কোনও উপায় কি আছে?


11

২০ টি আপডেট / প্লেয়ার / সেকেন্ড হিসাবে দ্রুতগতির সাথে ডেটা পরিবর্তন করে এমন 500+ প্লেয়ারের একটি ওপেন ওয়ার্ল্ড কল্পনা করুন। গতবার যখন আমি একটি অনুরূপ এমএমওআরপিজিতে কাজ করেছি, এটি এসকিউএল ব্যবহার করেছে, সুতরাং এটি সর্বক্ষণ ডিবিকে জিজ্ঞাসা করতে পারেনি। পরিবর্তে, এটি ডিবি থেকে সমস্ত খেলোয়াড়কে সি ++ অবজেক্ট হিসাবে মেমোরিতে লোড করে এবং সেগুলি ব্যবহার করে। এটি, এটি উল্লম্বভাবে স্কেল করা হয়েছে। পরিবর্তে কি সেই সার্ভারটিকে অনুভূমিকভাবে স্কেলযোগ্য করে তৈরি করা সম্ভব হবে? একসাথে সেই পরিমাণ আপডেটের জন্য ডিজাইন করা কোনও ডাটাবেস রয়েছে?


আপনি কেন 20 বার / সেকেন্ডে ডাটাবেসে প্লেয়ার আপডেট করতে চান?
বালন

@ বালান এইখানেই আমি বিভ্রান্ত হয়ে পড়েছি। আমি যদি এটি ডাটাবেসে আপডেট না করি, কেবল মেমরিতে, তবে আমার কাছে বিভিন্ন মেশিনের মধ্যে বিভিন্ন রাজ্য থাকবে। তবে আমার ধারণা ডিবি আপডেটগুলির কিছু বিশাল ওভারহেড রয়েছে তাই এটি সত্য পরিমাণে আপডেটের জন্য কাজ করে না?
মাইয়াভিক্টর

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

@ পেট্রিক হিউজেস আমার কী প্রয়োজন তা আমি জানি না, আমি কেবল গেমটি কীভাবে কাজ করে তা ব্যাখ্যা করছি। অক্ষর 2 ~ 3 টাইল / সেকেন্ডে সরানো হয়। কোনও খেলোয়াড়ের শিকার কয়েকটি দানব দ্বারা ঘিরে থাকতে পারে, তাই কমপক্ষে 10 টাইলস / প্লেয়ার / সেকেন্ড। তারপরে মেঝেতে প্লেয়ারের ব্যাকপ্যাকে ক্ষয়িষ্ণু আইটেম রয়েছে। খেলোয়াড়ের দিকে এগিয়ে চলে আক্রমণগুলি, দানবের দিকে এগিয়ে আক্রমণ রয়েছে। স্বাস্থ্যের ক্ষয়ক্ষতি রয়েছে, মানা ব্যবহৃত হচ্ছে, টাইমাররা প্লেয়ারকে বিষের ক্ষতি করে। সুতরাং, জিনিসগুলি সত্যিই দ্রুত পরিবর্তিত হয়। এই গেম ডিজাইন। এই জাতীয় নকশা কীভাবে উল্লম্বভাবে ছোট করা যায়?
মায়াভিক্টর

1
আমি হ্যাকারনিউজ এ এটি কিছুক্ষণ আগে দেখেছি: সমান্তরালুনিভারস.কম তারা এমন একটি ডেটাবেজে কাজ করছে যা আপনার জন্য সমস্ত স্থানিক বিভাজন / বিতরণ স্টাফ করে। আমি অনুমান করব যে ফণা নীচে, তারা নীচের উত্তরগুলিতে সমস্ত কিছু করছে।
25:53

উত্তর:


17

সমস্ত সংযোগকারী 500 খেলোয়াড়ের টেস্ট কেস, এটি প্রায় 20Hz প্রায় 250K তথ্য প্রবাহিত করে। এর জন্য অভ্যন্তরীণ ব্যান্ডউইথটি হবে, প্রতিটি বার্তা 100 মাইট, 500 এমবি / সেকেন্ড ধরে নেওয়া। উচ্চাভিলাষী মনে হচ্ছে। বিশেষত প্রক্রিয়াগুলির মধ্যে।

আপনি যদি খেলোয়াড়দের 100 টি গ্রুপে আলাদা করেন তবে তা 20MB / সেকেন্ডে নামবে এবং আরও কিছু। এই কারণেই এমএমওগুলির জোন রয়েছে এবং সেই অঞ্চলে ব্যান্ডউইথ যুক্তিসঙ্গত না হওয়া পর্যন্ত নীচের দিকে।

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

যোগাযোগের জন্য কোনও ডাটাবেস ব্যবহার করবেন না, মেসেজিংয়ের জন্য এটিই। লেনদেন এবং স্টোর তথ্য প্রয়োগের জন্য ডেটাবেস ব্যবহার করুন আপনি চান না প্লেয়ার হারাতে চান। বেশিরভাগ এমএমওর সাথে আমি পরিচিত যা প্রতি 1-10 মিনিটের মধ্যে ডায়নামিক প্লেয়ার তথ্য সহ ডেটাবেস আপডেট করে অথবা জোনের স্থানান্তর বা ডিজাইনে "নিরাপদ" জোনে প্রবেশের মতো সহজ পয়েন্টগুলিতে।

আপনাকে অন্য খেলোয়াড়ের ব্যাকপ্যাকের সামগ্রীগুলির রিয়েলটাইম আপডেট পেতে, যতই দূরেই হোক না কেন, প্রতিটি খেলোয়াড়ের জন্য গেমটির প্রয়োজনীয়তা আবার ডিজাইন করতে হতে পারে ।

20Hz থেকে দূরত্বের ভিত্তিতে গতিতে আপডেটের প্যাটার্নটি পরিবর্তন করুন, 1 মাইল দূরের কাউকে জানতে হবে না যে আপনি ঠিক 230.6 সেকেন্ডে 1 ফুট চলে গেছেন, তারপরে 231.4 সেকেন্ডে অন্য একটি ফুট, তারা আপনাকে প্রতি 10 ফুট 15 ফুট সরে যাওয়ার সাথে ডিল করতে পারে সেকেন্ড।


দুর্দান্ত এবং তথ্যমূলক উত্তর, ধন্যবাদ। তবে আমি এটি যুক্ত করতে পারি যে বিশ্ব যখন খুব দ্রুত গতিতে পরিবর্তিত হয়, একজন খেলোয়াড় কেবল তখনই তার পাশে অন্যান্য খেলোয়াড়দের দেখতে পান। আমি এটিকে জ্যামিতিক হিসাবে দেখছি না - 500 জন খেলোয়াড় সার্ভারে তথ্য প্রেরণ করে; সার্ভার পর্যায়ক্রমে এই 500 জন খেলোয়াড়কে তথ্য প্রেরণ করে। এটি লিনিয়ার, যেমনটি দেখছি। তবে মূল বিষয়টি চতুর্থ অনুচ্ছেদে রয়েছে: আমি যদি কেবল স্টোরেজের জন্য ডাটাবেস ব্যবহার করি তবে আমি মেমরিতে ডেটা লোড করছি। যদি আমি কোনও মেশিনে মেমোরিতে ডেটা লোড করছি তবে আমি বিশ্বের একটি বিচ্ছিন্ন সংস্করণ তৈরি করছি। এটাই আমি পাই না।
মায়াভিক্টর

1 ক্লায়েন্টের জন্য: 1 কমান্ড আউট 1+ ইন ইন ২. 2 ক্লায়েন্টের জন্য: 2 কেমিক্যাল আউট, 2 কেজি ইন = 4. 3 ক্লায়েন্টের জন্য: 3 কেমিক্যাল আউট, 3 কেমিকায় = 9. এবং তাই এটি যায়। এটি এর মতো: একটি স্থিতি প্রেরণ করুন, সার্ভার আমাকে এবং অন্যান্য 2 ক্লায়েন্টকে ফলাফল প্রেরণ করে (1 ইন, 3 আউট) এবং 3 ক্লায়েন্টরা এটি করছে (9 টির মধ্যে 1)। এটি কেবলমাত্র 3 এর এক ক্লায়েন্টের জন্য রৈখিক দেখায়, আপনি সিস্টেমের মোট থ্রুপুটটির জন্য সমস্ত ক্লায়েন্ট দ্বারা এটির গুণ করতে পারেন। দেশীয় হিসাবে, একই শারীরিক বাক্সে প্রক্রিয়াগুলি স্থিতি বার্তা তৈরি না করা এবং প্রেরণ না হওয়া অবধি সিঙ্কের বাইরে থাকে, পাইপটি কোথায় খালি চলে যায় তা কেবল স্থানীয় বিষয়, র‌্যাম বা নেট matter
প্যাট্রিক হিউজেস

5

আগ্রহের ফিল্টারিংয়ের ক্ষেত্রটি ব্যবহার করুন। যদি কোনও বিশ্ব 3 টি সার্ভারে বিভক্ত হয়ে যায় এবং সার্ভার 1-এর ক্ষেত্র সার্ভার 3-এর কাছাকাছি কোথাও না থাকে, সত্তা সম্পর্কে তাদের তথ্য ভাগ করে নেওয়ার কোনও কারণ নেই।

একইভাবে, একটি একক সার্ভারে, কেবল ক্লায়েন্টদের প্রাসঙ্গিক তথ্য প্রেরণ করুন। প্লেয়ার এ যদি প্লেয়ার বি থেকে মানচিত্রের সম্পূর্ণ বিপরীত প্রান্তে থাকে তবে এ সম্পর্কে বি সম্পর্কে আপডেটগুলি প্রেরণের শূন্য কারণ রয়েছে।

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

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

এই নকশাটি একটি একক সার্ভারকে থ্রেড করাও আরও সহজ করে তোলে। কোনও সত্তাকে সরাসরি অন্যটিকে সংশোধন করা উচিত নয়, কেবল বার্তাগুলি প্রেরণ করা উচিত এবং স্থানীয় প্রতি সার্ভার / প্রতি থ্রেড প্রক্সি ক্যাশেগুলি সামান্য পুরানো বলে ধরে নেওয়া উচিত।

উদাহরণস্বরূপ, সত্তা A সত্তা বিতে আক্রমণ করে, বি এর জীবন যাচাই করবেন না এবং তারপরে যদি 0 টি আঘাত লাগে তবে একটি মৃত্যু বার্তা প্রেরণ করুন মাত্র একটি "ক্ষতিগ্রস্থ" বার্তা প্রেরণ করুন, বি এর জন্য অনুমোদিত সার্ভারটি এটি পরিচালনা করতে দিন এবং তারপরে যেকোন হ্যান্ডেল করুন "সত্তা-মৃত্যু" বার্তাটি সার্ভার বি দ্বারা পরে প্রেরণ করা হয়েছে যদি সত্তা A এর যত্ন করে।

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


ধন্যবাদ, এটি আমার বেশিরভাগ সন্দেহের অবসান ঘটিয়েছে। এছাড়াও আপনি আমাকে খেলোয়াড়দের দ্বারা সার্ভারগুলি সেপারে করার ধারণা দিয়েছেন, অঞ্চলগুলি নয় - এটি আরামদায়ক দেখাবে। প্রতিটি সার্ভার এক্স প্লেয়ারদের যত্ন করে। আমি সত্যিই এটি পছন্দ করি! এটি ব্যবহার করা হয়? এবং এছাড়াও, আরও একটি জিনিস আছে। আমি উপরে জিজ্ঞাসা করেছি, আমি সবেমাত্র একটি নতুন NoSQL ডাটাবেস, কাউচবেস সম্পর্কে জানতে পেরেছি। এটি খুব দ্রুত লেখার / পড়ার গতি ব্যতীত কাউচডিবি'র মতো হওয়ার কথা: প্রতি সেকেন্ডে 200k অবধি আপডেট! সম্ভবত এটি আসলে "রিয়েল-টাইম শেয়ারড ওয়ার্ল্ড মডেল" হিসাবে কাজ করতে পারে, না এখনও?
মায়াভিক্টর

সার্ভারগুলির স্বাভাবিক মোটা "শার্পিং" ছাড়াও যদি সেই কৌশলটি বন্যগুলিতে ব্যবহৃত হয় তবে আমার কোনও ধারণা নেই। কেবল খেলোয়াড় এবং ভৌগলিক অঞ্চল দ্বারা এটি করার অর্থ প্রতিটি সার্ভারের বিভিন্ন অঞ্চলে বিভিন্ন সার্ভারের লোড বৃদ্ধি এবং আন্তঃ-সার্ভার যোগাযোগকে বাড়িয়ে তোলার জন্য প্রচুর সংখ্যক সত্তা সম্পর্কে সচেতন হওয়া দরকার। এটিকে অঞ্চল দ্বারা করার অর্থ আপনার সার্ভারটি জনাকীর্ণ অঞ্চলগুলিতে অতিরিক্ত লোড হয়ে উঠতে পারে (যদিও আপনি এই ক্ষেত্রে অঞ্চলগুলিকে গতিশীলভাবে বিভক্ত করতে এবং অংশীদার করতে পারেন) তবে এর অর্থ প্রতিটি সার্ভারের সাথে সম্পর্কিত ট্র্যাক রাখতে প্রাসঙ্গিক নন-প্লেয়ার সত্ত্বা ও জ্যামিতির একটি ছোট সেট রয়েছে means ।
শান মিডলডিচ

@ ডক্কাট: এমন কোনও ধরণের "নরম অঞ্চল" পাওয়া সম্ভব হতে পারে যেখানে আপনি প্রতিটি সার্ভার মূলত গেম ওয়ার্ল্ডের একটি নির্দিষ্ট অংশের খেলোয়াড়দের পরিচালনা করছেন, তবে তারা যদি খুব দূরে ভ্রষ্ট হয় তবে তাদেরকে স্বচ্ছতার সাথে অন্য সার্ভারের কাছে হস্তান্তর করুন them তাদের মূল সার্ভারের অঞ্চল। আপনার কেবল হ্যান্ডওভারটি পর্যাপ্ত মসৃণ যাতে খেলোয়াড়রা এটি লক্ষ্য করে না তা নিশ্চিত করা দরকার। এমনকি আপনি যদি কিছু অঞ্চলের সীমানায় থাকিও, তবে একই সার্ভারে ইন্টারেক্টিভ প্লেয়ারদের ক্লাস্টারগুলি রাখতে কিছু অভিনব অভিযোজনমূলক কৌশল ব্যবহার করার চেষ্টা করতে পারেন।
ইলমারি করোনেন

3

আপনি সম্ভবত গামসূত্রের এই নিবন্ধে আগ্রহী হবেন , যেখানে ইভ অনলাইন বিকাশকারীরা আলোচনা করে যে কীভাবে সফলভাবে 400,000 সক্রিয় খেলোয়াড়ের সাথে একটি খেলা চালানো সম্ভব ... একটি এসকিউএল ডাটাবেসে।


2

ডাটাবেসটিকে কোনও ধরণের রিয়েল-টাইম শেয়ারড ওয়ার্ল্ড মডেল হিসাবে সবকিছু সম্পর্কে সবসময় সব কিছু সঞ্চারিত হিসাবে ভাবেন না - যেমন আপনি লক্ষ্য করেছেন যে এটি সম্ভবত কাজ করতে পারে না।

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

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

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


দুর্দান্ত উত্তর! এই আমি যা জিজ্ঞাসা করছিলাম অবিকল ছিল, আপনাকে ধন্যবাদ। সুতরাং সম্ভবত চাবিকাঠিটি মেমরিটিতে যুক্তিকে রেখে, অঞ্চলগুলিতে সার্ভারকে বিভক্ত করা। যদিও আমি যুক্ত করতে পারি: আমি সবেমাত্র একটি নতুন নোএসকিউএল ডাটাবেস, কাউচবেস সম্পর্কে শিখেছি। এটি খুব দ্রুত লেখার / পড়ার গতি ব্যতীত কাউচডিবি'র মতো হওয়ার কথা: প্রতি সেকেন্ডে 200k অবধি আপডেট! সম্ভবত এটি আসলে "রিয়েল-টাইম শেয়ারড ওয়ার্ল্ড মডেল" হিসাবে কাজ করতে পারে, না এখনও?
মাইয়াভিক্টর

@ ডক্কা না, তা হবে না। কাউচবেজ যাদু নয়।
ফিলিপ

2

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

  • যথার্থ, রিয়েল-টাইম অবস্থানটি ব্যাসার্ধের মধ্যে ব্যর্থ হতে পারে
  • কম-সুনির্দিষ্ট, কম ঘন ঘন অবস্থানের আপডেটগুলি 2 * R এর ব্যাসার্ধের মধ্যে কার্যকর হতে পারে
  • ব্যাসার্ধ 2 * আর এর বাইরে কোনও অবস্থানের তথ্য প্রয়োজন হতে পারে না

আপনি কোনও সত্তার জন্য পর্যায়ক্রমে 2 * R ব্যাসার্ধের সত্তার জন্য স্ক্যান করে (অথবা আপডেটের হার এবং কোনও সত্তার সর্বাধিক বেগের উপর ভিত্তি করে এর কিছু একাধিক) স্ক্যান করে এবং সত্তাকে অন্য সত্তার যথাযথ বা সঠিক স্থান ফিডে সাবস্ক্রাইব করে যোগাযোগ করতে পারেন।

বিভিন্ন ধরণের তথ্যের জন্য আপনার বিভিন্ন কৌশল থাকতে পারে, একই বার্তাগুলির কাতারে সাধারণ সাধারণ জিনিসগুলি থাকতে পারে, বা বিভিন্ন সত্তায় যাওয়ার প্রয়োজন এমন বার্তাগুলির জন্য বিভিন্ন সারি থাকতে পারে (বা কেবল তাদের সত্ত্বার বিস্তৃত সংস্থায় প্রেরণ করতে হবে এবং যদি বার্তাগুলি বাদ দেওয়া হয় তবে) 'দরকারী নয়)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.