Download presentation
Presentation is loading. Please wait.
1
تقسیم گراف در سیستم های کلان داده مرکزیت راس
ارائه دهنده: نسرین مظاهری اساتید راهنما: دکتر محمد علی نعمت بخش دکتر افسانه فاطمی
2
کلان داده ها حجم زیاد سرعت بالا گوناگونی
امروزه به دلیل وجود تکنولوژی هایی که تولید داده را تسهیل می کنند، حجم وسیعی از داده ها جهان ما را فرا گرفته است. حجم زیاد سرعت بالا گوناگونی شبکه های اجتماعی داده های پیوندی داده های بیولوژیکی صفحات وب
3
مدل NOSQL برای این داده ها از مدل های داده ای NOSQL استفاده می کنند.
پایگاه دادههای رابطهای برای مدیریت کلان داده ها مناسب نیستند. ساختار رابطه ای داده های بدون ساختار داده هایی با روابط پیچیده کارایی پایین التزام به رعایت قوانین ACID برای این داده ها از مدل های داده ای NOSQL استفاده می کنند. مدل کلید مقدار مدل بر مبنای سند مدل گراف
4
کلان گراف بسیاری از داده ها در مجموعه داده های کلان روابط پیچیده ای دارند. داده های شبکه های اجتماعی، داده های وب، داده های مربوط به ساختار پروتئین ها بهترین مدلی که می تواند روابط پیچیده داده ها را نشان دهد مدل گراف است. با مدل کردن روابط داده ها در مجموعه داده های کلان به صورت گراف، گراف های بسیار بزرگی حاصل می شود که به آن ها کلان گراف گویند. Id:1 Name: Alice Id:3 Type: Post Id:2 Bob write like friend
5
محاسبات کلان گراف تحلیل ساختار و اجرای پرس و جوهای مرتبط با ساختار این گراف ها اهمیت زیادی دارد. تحلیل شبکه های اجتماعی(خوشه بندی گراف، تشخیص جوامع، کوتاهترین مسیر بین رئوس، درختان پوشای مینیمم) رتبه بندی صفحات وب(رتبه صفحه) پاسخگویی به پرس و جو ها در وب داده(تطابق زیر گراف) به دلیل حجم بسیار زیاد کلان گراف ها محاسبات آن ها بایستی به صورت توزیع شده انجام شود. در سال 2010 شرکت گوگل با معرفی سیستم pregel مدل محاسباتی مرکزیت راس را برای انجام محاسبات توزیع شده روی کلان گراف ها ارائه کرد.
6
معماری سیستم های بر پایه مدل مرکزیت راس
HDFS Worker 1 Worker 2 Worker 3 Master
7
مدل محاسباتی مرکزیت راس
در اين سيستم کاربر محاسبات مد نظر خود به ازاي هر راس را به صورت تابعي به نام compute تعريف مي کند. ماشين مستر کپي اين تابع را به همه ماشين هاي کارگر مي فرستد. محاسبات در چندين گام اساسي پي در پي انجام مي شود. در هر گام اساسي ماشين هاي کارگر به طور موازي اين تابع را به ازاي هر راس فعال زيرگراف خود اجرا مي کنند. در اثر اجرای این تابع به ازای هر راس ممکن است مقدار داده مرتبط با آن راس تغيير کند و همچنين پيام هايي به ساير رئوس مجاور آن راس ارسال گردد. یک گام اساسی پس از تکمیل انجام محاسبات همه رئوس و رد بدل شدن پیام ها بین آن ها به اتمام می رسد. در گام اساسی بعدی دوباره همین اعمال تکرار می شود.
8
مدل محاسباتی مرکزیت راس(ادامه)
هر راس مي تواند در هر گام اساسي به طور داوطلبانه به حالت غير فعال برود. هر راس غیر فعال با دریافت یک پیام جدید دو باره فعال می شود. روند اجرای گام های اساسی ادامه می یابد تا اینکه همه رئوس به حالت غیر فعال درآیند. این سیستم درون حافظه است یعنی در تمام مدت انجام محاسسبات گراف کل ساختار آن در حافظه اصلی ماشین های کارگر قرار دارد.
9
روند اجرای گام های اساسی(BSP)
10
مثالی از مدل مرکزیت راس(محاسبه ماکزیمم)
i_val:=val for each message m if m>val then val:=m if i_val == val then vote_to_halt else for each neighbor v send_message(v,val)
11
اثر تقسیم گراف میزان محاسبات تمام ماشین های کارگر متعادل باشد.
برای بدست آوردن حداکثر کارایی در این سیستم ها باید: میزان محاسبات تمام ماشین های کارگر متعادل باشد. تعداد رئوس فعال روی ماشین های کارگر برابر باشد. ارتباطات بین ماشین های کارگر مختلف کمینه باشد. تعداد یال ها بین رئوس فعال در ماشین های مختلف کمینه باشد.
12
min 𝑃 𝑒 𝑒= 𝑣 𝑖 , 𝑣 𝑗 ∈𝐸 , 𝑣 𝑖 ∈ 𝑃 𝑥 , 𝑣 𝑗 ∈ 𝑃 𝑦 , 𝑥≠𝑦
تقسیم گراف (edge cut) این یک مسئله تقسیم متعادل گراف است.( k-way balanced graph partitioning) در این مسئله می خواهیم رئوس گراف را در k پارتیشن مختلف قرار دهیم. P={P1,P2,…,Pk} هدف یافتن مجموعه پارتیشن های است که اندازه آنها متوازن باشد و تعداد یال های قطع شده مینیمم گردد. min 𝑃 𝑒 𝑒= 𝑣 𝑖 , 𝑣 𝑗 ∈𝐸 , 𝑣 𝑖 ∈ 𝑃 𝑥 , 𝑣 𝑗 ∈ 𝑃 𝑦 , 𝑥≠𝑦 𝑠.𝑡. max 𝑖 𝑃 𝑖 𝑘 𝑖=1 𝑘 𝑃 𝑖 ≤𝜖 ε نشان دهنده میزان عدم توازن قابل قبول در تقسیم گراف است. اندازه یک پارتیشن را می توان تعداد رئوس یا تعداد یال های داخلی آن در نظر گرفت.
13
تقسیم گراف (edge cut) میزان محاسبات داخلی یک ماشین وابسته به تعداد رئوس یا تعداد یال های متصل به رئوس در آن ماشین است. بنابراین، اندازه یک پارتیشن در شرط دوم می تواند به هر کدام از این دو صورت تفسیر شود. اگر توان محاسباتی ماشین های مختلف با یکدیگر متفاوت باشد ممکن است روی اندازه هر پارتیشن به طور جداگانه محدودیت های مختلفی در نظر گرفته شود. در مواقعی که ارتباطات بین ماشین ها هزینه های مختلفی داشته باشد : به هر یال قطع شده بر حسب اینکه بین کدام پارتیشن ها قرار دارد وزن مختلفی نسبت داده شود. پارتیشن بندی به نحوی انجام شود که مجموع وزن یال های قطع شده مینیمم گردد. ثابت شده که همه حالات مختلف این مسئله NP-COMPLETE است.
14
انواع دیگر سیستم های مرکزیت راس
بعد از معرفی سیستم pregel بر مبنای مدل مرکزیت راس سیستم های مرکزیت راس دیگری ایجاد شدند که تفاوت هایی با مدل pregel دارند: در Graphlab یک مدل غیر همگام برای انجام محاسبات گراف ارائه شده است. محاسبات برای هر راس به صورت تکراری و بدون نیاز به همگام سازی انجام می شود. با یک مکانیزم قفل گذاری از انجام محاسبات همزمان در رئوس مجاور جلوگیری می شود. به جای تبادل پیام بین رئوس، رئوس مجاور از یک حافظه اشتراکی برای تبادل مقادیر استفاده می کنند. تبادل اطلاعات می تواند به شیوه push یا pull باشد.
15
انواع دیگر سیستم های مرکزیت راس
گراف های واقعی معمولا تعداد کمی راس با درجه بسیار بالا و تعداد زیادی راس با درجه پایین دارند. برای چنین گراف هایی هیچ تقسیم edge cut مناسبی وجود ندارد. Power graph برای اولین بار یک سیستم مرکزیت راس بر مبنای روش vertex cut ارائه داد. در این روش رئوس با درجه بالا می توانند تقسیم شوند و در ماشین های مختلف توزیع گردند.
16
تقسیم گراف (vertex cut)
در این مدل یال های گراف در پارتیشن های مختلف قرار می گیرند. هر راس در پارتیشن هایی که یال های مجاور آن قرار دارند تکرار می شود. هدف آنست که اندازه پارتیشن ها از لحاظ تعداد یال های آن ها متوازن بوده و تعداد تکرار رئوس مینیمم گردد. min 𝑃 1 𝑉 𝑣∈𝑉 𝑃(𝑣) 𝑠.𝑡. max 𝑝 𝑖 𝑒∈𝐸 𝑃 𝑒 = 𝑝 𝑖 ≤𝜖 𝐸 𝑃 این مسئله هم مانند قبلی NP-COMPLETE است. یک نگاشت یک به یک بین تقسیم بندی edge cut و vertex cut وجود دارد . ولی تعداد تکرار رئوس در یک تقسیم بندی vertex cut کمتر از تقسیم بندی edge cut متناظر با آن(با ایجاد رئوس ghost به ازای یال های قطع شده) است.
17
انواع دیگر سیستم های مرکزیت راس
در Powergraph مدل gather-apply-scatter یا GAS برای محاسبات مبنای راس معرفی شد. هر بار تکرار محاسبات برای یک راس در سه فاز انجام می شود. در فاز ghater مقادیر داده های یال ها و رئوس مجاور راس خوانده و تجمیع می شود. در فاز apply از مقادیر تجمیع شده استفاده شده و مقدار داده راس تغییر می کند. در فاز scatter مقادیر داده های یال ها و رئوس مجاور به روز شده و در صورت لزوم رئوس مجاور فعال می شوند.
18
انواع دیگر سیستم های مرکزیت راس
در سیستم powergraph ممکن است یال های همسایه رئوس با درجه پایین نیز بین ماشین های مختلف توزیع شوند برای این رئوس نیاز به توزیع محاسبات در ماشین های مختلف نیست. این توزیع هزینه ارتباطات را زیاد می کند در powerlyra از رویکردی ترکیبی برای تقسیم بندی گراف و انجام محاسبات استفاده شده است. از edge cut برای رئوس با درجه پایین و از vertex cut برای رئوس با درجه بالا استفاده می شود.
19
چالش تقسیم کلان گراف ها مسئله تقسیم گراف یک مسئله کلاسیک است که راه حل های مختلفی برای آن تا کنون ارائه شده است. الگوریتم های سلسله مراتبی مانند METIS الگوریتم های متاهیوریستیک هیچ یک از الگوریتم های متداول ارائه شده، کارایی لازم برای گراف های بزرگ ندارند. بنابراین این مسئله دوباره به یک حوزه تحقیقاتی مهم تبدیل شده است. امروزه سه رویکرد اصلی برای تقسیم گراف های بزرگ وجود دارد: راهکارهای بر مبنای جریان( Stream based partitioning) راهکارهای توزیع شده (Distributed partitioning) راهکارهای پویا (Dynamic repartitioning)
20
راهکارهای بر مبنای جریان
رئوس یا یال های گراف در یک جریان و به صورت پشت سر هم تنها یکبار بررسی می شوند. تصمیم گیری در مورد تقسیم بندی هر راس یا یال جدید به صورت آنلاین و به محض دیده شدن آن در جریان انجام می شود. بعد از دیده شدن هر راس یا یال جدید و پارتیشن بندی اولیه، این پارتیشن بندی تغییر نخواهد کرد. در مورد پارتیشن بندی هر راس یا یال جدید می توان با توجه به پارتیشن بندی رئوس یا یال های قبلی در جریان تصمیم گرفت. هیچ اطلاعاتی از رئوس یا یال هایی که بعدا دیده خواهند شد در دسترس نیست.
21
راهکارهای بر مبنای جریان (ادامه)
این روش مزایای مختلفی دارد: پیچیدگی زمانی تقسیم گراف با این روش پایین است. در مواقعی که کل ساختار گراف به صورت یکجا در دسترس نیست مناسب است. تقسیم بندی گراف در این روش افزایشی ((incremental است یعنی با تغییر ساختار گراف و اضافه شدن رئوس یا یال های جدید نیاز به تقسیم مجدد آن از ابتدا نیست. می توان به راحتی آن را به صورت موازی یا توزیع شده اجرا نمود. نتایج تقسیم بندی در این روش ها وابسته به ترتیب رئوس یا یال ها در جریان است. روش های بر مبنای جریان با یک جریان تصادفی ار رئوس فارغ از نوع هوشمندی که دارند، رسیدن به یک تقریب خوب از پارتیشن بندی متعادل با کمترین تعداد یال های قطع شده را تضمین نمی کنند. انتظار می رود برای o( 𝑛 ) راس اول جریان هیچ یال مشترکی با رئوس قبلی وجود نداشته باشد. بنابراین تقسیم آن ها تصادفی خواهد بود.
22
دو رویکرد بر مبنای جریان متداول (edge cut)
روش LDG: برای پارتیشن بندی هر راس جدید v در جریان, به هر پارتیشن به نسبت تعداد همسایه های v موجود در آن پارتیشن که تا کنون در جریان رئوس دیده شده اند امتیاز داده می شود راس v در پارتیشنی قرار می گیرد که بیسترین امتیاز را داشته باشد. برای متعادل شدن اندازه پارتیشن ها، یک پارامتر وزن در امتیاز هر پارتیشن ضرب می شود که با بار پارتیشن ها نسبت معکوس دارد. روش fennel: مانند روش LDG از امتیاز بندی استفاده می کند. روش کیفیت یک تقسیم بندی با جمع دو عامل درون پارتیشنی (برای تعادل پارتیشن ها) و بین پارتیشنی (برای کاهش تعداد یال های قطع شده) سنجیده می شود. هر راس جدید در جریان رئوس به نحوی پارتیشن بندی می شود که کیفیت کلی پارتیشن بندی را افزایش بیشتری دهد.
23
روش های semistream دو رویکرد برای بهبود روش های بر مبنای جریان وجود دارد: در روش های semi stream تصمیم گیری نهایی برای تقسیم بندی رئوس یا یال های اولیه جریان به محض ورود آن ها انجام نمی شود این تصمیم گیری تا دیده شدن تعداد کافی راس یا یال (به نحوی که برای هر راس یا یال جدید مطمئن باشیم حتما همسایگانی از آن ها قبلا در جریان بوده اند) به تعویق انداخته شود. اثبات شده است که بعد از log6+Ɛ(n) راس اولیه جریان، هر راس بعدی با احتمال بالا به تعداد log6(n) راس همسایه در میان رئوس قبلی خواهد داشت. به جای همسایه های یک گامی همسایه های دو گامی رئوس در نظر گرفته شده است.
24
روش های restream در بسیاری از کاربردها، یک گراف بزرگ بارها در زمان های مختلف تقسیم بندی شده و به یک سیستم محاسبات توزیع شده بار می گردد. می توان از نتایج تقسیم بندی بر مبنای جریان قبلی (سوابق تقسیم بندی) برای بهبود نتایج تقسیم بندی جدید استفاده نمود. در روش های restream به جای یکبار تقسیم جریان رئوس یا یال ها، چندین بار این عمل به صورت تکراری انجام می شود. در هر بار تکرار برای تقسیم مجدد گراف از اطلاعات تقسیم بندی تکرار قبلی استفاده می شود.
25
راهکارهای بر مبنای جریان ((vertex cut
پارتیشن های حاصل متوازن هستند ولی ممکن است تعداد تکرار رئوس در آن ها زیاد باشد. برای کاهش تعداد تکرار رئوس روش torus based constrained معرفی شده است که یک روش دو بعدی برای تقسیم بندی گراف است. مجموعه پارتیشن هایی که یک راس می تواند در ان تکرار شود محدود می گردد. مجموعه پارتیشن های مجاز برای رئوس مختلف لازم است دو به دو اشتراک داشته باشند و اندازه آن ها بایستی با یکدیگر مساوی باشد. هر یال (u,v) جریان، در یکی از پارتیشن های مشترک دو راس u و v قرار می گیرد که می تواند تصادفی یا هوشمندانه انتخاب شود.
26
راهکارهای بر مبنای جریان ((vertex cut
در power graph برای قرار دادن هر یال جدید (u,v) از یکی از چهار قانون زیر استفاده می شود: اگر هر دو راس u و v قبلا تکرار شده اند و پارتیشن هایی وجود دارد که حاوی هر دو راس هستند؛ یال جدید در یکی از این پارتیشن ها قرار می گیرد.(ترجیحا پارتیشن با بار کمتر) اگر هر دو راس u و v قبلا تکرار شده باشند ولی هیچ پارتیشنی وجود ندارد که حاوی هر دو راس باشد یال جدید در یکی از پارتیشن های مربوط به راسی قرار داده می شود که تعداد یال دیده نشده بیشتری دارد. (ترجیحا پارتیشن با بار کمتر) اگر تنها یکی از دو راس u و v قبلا تکرار شده اند یال جدید در یکی از پارتیشن های مربوط به آن راس قرار داده می شود. (ترجیحا پارتیشن با بار کمتر) اگر هیچ کدام از دو راس قبلا تکرار نشده اند یال جدید در پارتیشنی که بار کمتر دارد قرار داده می شود.
27
راهکارهای بر مبنای جریان ((vertex cut
این روش معایبی دارد: برای استفاده از قانون دو در این روش نیاز به دانستن درجه رئوس مختلف گراف است. روش همچنین توازن بار پارتیشن ها را تضمین نمی کند. این روش از هوشمندی خاصی برای مشخص کردن مکان قرار گیری رئوس با درجه پایین نسبت به هم استفاده نکرده است. در مقالات مختلف با در نظر گرفتن خصوصیات سیستم های مرکزیت راس ایبن قوانین بهبود داده شده اند: تغییر قوانین به منظور جلوگیری از تکرار رئوس با درجه کم استفاده از تخمین درجه ورودی برای کاهش پیچیدگی زمانی کاهش تعداد تکرارهای رئوس که شامل یال ورودی هستند.
28
موازی سازی روش های بر مبنای جریان
برای موازی سازی روش های بر مبنای جریان گفته شده دو رویکرد coordinate و oblivious وجود دارد. رویکرد coordinate : یک جدول اشتراکی قابل دسترس برای تمام ماشین ها وجود دارد که اطلاعات پارتیشن بندی انجام شده در آن نگهداری می شود. هر ماشین پارتیشن بندی یک زیر جریان را به عهده دارد. ماشین ها برای پارتیشن بندی از اطلاعات این جدول استفاده می کنند و آن را به روز می کنند. رویکرد oblivious: هر ماشین به طور مستقل و بر اساس اطلاعات پارتیشن بندی زیر جریان خود، ادامه پارتیشن بندی را انجام می دهد. پیچیدگی محاسباتی روش oblivious کمتر است ولی ممکن است تعداد تکرار رئوس در این روش بیشتر باشد
29
روش های تقسیم توزیع شده از سیستم های مرکزیت راس می توان برای اجرای الگوریتم های تقسیم بندی گراف به صورت توزیع شده و به عنوان پردازش اصلی استفاده می کنند. از تقسیم بندی حاصل به عنوان تقسیم بندی اولیه جهت اجرای سایر الگوریتم ها استفاده نمود. مشکل مرغ و تخم مرغ در این زمینه وجود دارد.
30
روش انتشار برچسب(label propagation )
اکثر روش های موجود برای تقسیم بندی گراف در سیستم های مرکزیت راس بر مبنای روش انتشار برچسب هستند. به تعداد پارتیشن ها برچسب در نظر گرفته می شود. هر راس به صورت تصادفی یک برچسب اولیه از میان این برچسب ها بر می گزیند. در هر مرحله، رئوس برچسب خود را برای تمامی همسایگانشان ارسال می کنند. هر راس با توجه به برچسب همسایگانش به هر برچسب امتیازی می دهد و برچسبی که بیشترین امتیاز را دارد برای خود انتخاب می کند. برای برآوردن توازن پارتیشن ها، یک تابع جریمه متناسب با اندازه پارتیشن (برچسب) به ازای هر برچسب از امتیاز آن کم می شود این مراحل تکرار می شود تا الگوریتم به همگرایی برسد یعنی برچسب هیچ راسی تغییر نکند.
31
روش های انتشار برچسب (ادامه)
تفاوت روش های مختلف در نحوه امتیاز دهی رئوس به برچسب ها و انتخاب برچسب اولیه رئوس است: در یک روش به جای استفاده از تابع جریمه تعداد رئوس اولیه دارای هر برچسب مساوی است و رئوس به جای تغییر برچسب ها برچسب خود را بایکی از همسایه ها عوض می کنند. در روش دیگر در هر مرحله مسئله انتخاب برچسب توسط یک راس با توجه به محدودیت های مسئله به یک مسئله برنامه نویسی خطی نگاشت می شود که با حل آن بهترین برچسب انتخاب می شود. در روش دیگر از مفهوم پرداخت پول برای خرید و فروش برچسب ها استفاده می شود.
32
مزایای روش انتشار برچسب
در روش اننتشار برچسب با تغییر ساختار گراف در گراف های پویا نیاز به تقسیم بندی مجدد گراف از ابتدا نیست. به راحتی می توان دوباره عمل تبادل و به روز کردن برچسب ها را ادامه داد تا تقسیم بندی گراف با تغییرات منطبق گردد. در صورت نیاز به افزایش تعداد پارتیشن ها نیز می توان به صورت مشابه عمل کرد. اگر تعداد فعلی پارتیشن ها k باشد و k’ پارتیشن جدید به آن اضافه شود؛ کافی است کسر k’/(k+k’) از رئوس به صورت تصادفی برچسب های جدید را برگزینند و سپس دوباره روند تبادل و به روز کردن برچسب ها تا حصول همگرایی ادامه یابد
33
معایب روش انتشار برچسب در صورت کم بودن بار یک پارتیشن، ممکن است رئوس زیادی آن پارتیشن را همزمان انتخاب کنند و پارتیشن دچار اضافه بار شود. شیوه انتخاب برچسب های اولیه رئوس روی نتیجه پارتیشن بندی تاثیر می گذارد.
34
تقسیم پویای گراف بسیاری از گراف های بزرگ مانند گراف شبکه های اجتماعی و ساختار وب ساختاری پویا دارند. در حین انجام محاسبات در سیستم های توزیع شده کیفیت پارتیشن بندی اولیه حفظ نمی شود و کارایی انجام محاسبات در این سیستم ها کاهش می یابد. در هنگام اجرای برخی الگوریتم ها مانند الگوریتم های بر پایه پیمایش گراف در هر گام اساسی تنها بخشی از رئوس یا یال ها فعال هستند. حتی با یک تقسیم بندی با کیفیت اولیه، توازن بار ماشین ها هنگام اجرای چنین الگوریتم هایی حفظ نمی شود. با در نظر گرفتن این چالش ها رویکردهای پویا به وجود آمدند که تقسیم گراف را در حین اجرا به روز می کنند.
35
روش های تقسیم پویای گراف
در هر گام اساسی اطلاعات مربوط به هر راس در هر پارتیشن جمع آوری می شود. قبل از شروع گام اساسی بعدی این اطلاعات بررسی می شود. اگر عدم توازن وجود داشته باشد یا میزان ارتباطات زیاد شود بایستی پارتیشن ها آپدیت شوند. برای هر راس که باید جا به جا شود پارتیشن مقصد و نحوه انتقال به آن و نحوه اطلاع سایر رئوس از این انتقال مشخص گردد.
36
روش های پویا (معیار جا به جایی)
در xDgp برای اولین بار روش های پویا معرفی شدند. این روش در هر گام تعداد رئوس هر پارتیشن و تعداد یال های قطع شده را حساب می کند و بر مبنای آن جا به جایی انجام می دهد. در GPS میزان ارتباطات پارتیشن ها معیار جا به جایی رئوس است. در catchthewind میزان محاسبات هر پارتیشن معیار جا به جایی رئوس است. در mizan از بین ارتباطات و محاسبات عاملی که تاثیر گذاری بیشتری بر زمان داشته در هر گام عامل جا به جایی رئوس است. در loggp در هر گام ارتباطات و محاسبات گام بعدی تخمین زده می شود و بر مبنای آن رئوس جا به جا می شوند.
37
روش های پویا(نحوه جا به جایی)
دو رویکرد: جا به جایی آنی: مقدار راس، لیست مجاورتی و پیام های رسیده به آن به ماشین مقصد می روند. جابه جایی معوق: در دو گام انجام می شود. ابتدا این جا به جایی به اطلاع رئوس همسایه می رسد تا لیست مجاورتی خود را به روز کنند. راس جا به جا نمی شود و محاسبات آن در ماشین قبلی انجام می شود. پیام ها به ماشین جدید می رود. در نهایت در گام دوم جا به جایی تکمیل می شود.
38
روش های پویا (نحوه اطلاع سایر روس)
دو رویکرد: پیام به رئوس همسایه استفاده از DHT
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.