التجزئة المتسقة
في علم الحاسوب ، التجزئة المتسقة [ 1 ] [ 2 ] هي نوع خاص من تقنيات التجزئة بحيث عند تغيير حجم جدول التجزئة ، فقطيجب إعادة تعيين المفاتيح في المتوسط حيثهو عدد المفاتيح ويمثل عدد الخانات. يوزع التجزئة المتسقة مفاتيح التخزين المؤقت بالتساوي عبر الأجزاء ، حتى في حالة تعطل بعض الأجزاء أو عدم توفرها. [ 3 ] في المقابل، في معظم جداول التجزئة التقليدية، يؤدي تغيير عدد خانات المصفوفة إلى إعادة تعيين جميع المفاتيح تقريبًا لأن التعيين بين المفاتيح والخانات يتم تحديده بواسطة عملية نمطية .
تستخدم شبكات توصيل المحتوى التجزئة المتسقة لأنها مفيدة في توزيع طلبات المحتوى من مجموعة متغيرة من خوادم الويب. يُنسب الفضل إلى تيم بيرنرز لي، ومخترع خوارزميات التجزئة المتسقة، إلى دانيال ليوين ، في حل مشكلة النقاط المائلة التي عانت منها شبكة الويب العالمية في التسعينيات. [ 4 ]
تاريخ
صاغ ديفيد كارغر وزملاؤه في معهد ماساتشوستس للتكنولوجيا مصطلح "التجزئة المتسقة" لاستخدامه في التخزين المؤقت الموزع ، وخاصةً للويب . [ 5 ] وقدّمت هذه الورقة البحثية، المنشورة عام 1997 في ندوة نظرية الحوسبة، مصطلح "التجزئة المتسقة" كوسيلة لتوزيع الطلبات بين مجموعة متغيرة من خوادم الويب. [ 6 ] ويمثل كل خانة خادمًا في نظام أو مجموعة خوادم موزعة. ولا تتطلب إضافة خادم أو إزالته (أثناء قابلية التوسع أو انقطاع الخدمة) سوىيُعاد ترتيب العناصر عند تغيير عدد الخانات (أي الخوادم). يشير المؤلفون إلى التجزئة الخطية وقدرتها على التعامل مع إضافة الخوادم وإزالتها بشكل متسلسل، بينما تسمح التجزئة المتسقة بإضافة الخوادم وإزالتها بترتيب عشوائي. [ 1 ] أُعيد استخدام الورقة لاحقًا لمعالجة التحدي التقني المتمثل في تتبع ملف في شبكات الند للند، مثل جدول التجزئة الموزع . [ 7 ] [ 8 ]
استخدمت شركة Teradata هذه التقنية في قاعدة بياناتها الموزعة ، التي أُصدرت عام ١٩٨٦، على الرغم من أنها لم تستخدم هذا المصطلح. ولا تزال Teradata تستخدم مفهوم جدول التجزئة لتحقيق هذا الغرض تحديدًا. تأسست شركة Akamai Technologies عام ١٩٩٨ على يد العالِمين دانيال ليوين وإف . طومسون لايتون (المؤلفين المشاركين للمقال الذي صاغ مصطلح "التجزئة المتسقة"). في شبكة توصيل المحتوى الخاصة بشركة Akamai، [ ٩ ] تُستخدم التجزئة المتسقة لموازنة الحمل داخل مجموعة من الخوادم، بينما تُستخدم خوارزمية دمج مستقرة لموازنة الحمل عبر المجموعات. [ ٢ ]
استُخدمت التجزئة المتسقة أيضًا للحد من تأثير الأعطال الجزئية في تطبيقات الويب الكبيرة، وذلك لتوفير تخزين مؤقت قوي دون التسبب في تداعيات عطل على مستوى النظام بأكمله. [ 10 ] كما تُعد التجزئة المتسقة حجر الزاوية في جداول التجزئة الموزعة (DHTs)، التي تستخدم قيم التجزئة لتقسيم مساحة المفاتيح عبر مجموعة موزعة من العقد، ثم تُنشئ شبكة تراكبية من العقد المتصلة التي توفر استرجاعًا فعالًا للعقد باستخدام المفتاح.
تُعدّ تقنية التجزئة Rendezvous ، التي صُممت عام 1996، تقنيةً أبسط وأكثر عمومية . وهي تحقق أهداف التجزئة المتسقة باستخدام خوارزمية الوزن العشوائي الأعلى (HRW) المختلفة تمامًا.
التقنية الأساسية

في مشكلة موازنة الأحمال ، على سبيل المثال، عندما يتعين تعيين كائن BLOB إلى أحدفي حالة الخوادم الموجودة على مجموعة ، يمكن استخدام دالة تجزئة قياسية لحساب قيمة التجزئة لهذا الكائن الثنائي الكبير (BLOB)، بافتراض أن القيمة الناتجة للتجزئة هينقوم بتنفيذ عمليات معيارية باستخدام عدد من الخوادم ((في هذه الحالة) لتحديد الخادم الذي يمكننا وضع الكائن الثنائي الكبير (BLOB) فيه:وبالتالي، سيتم وضع الكائن الثنائي الكبير (BLOB) في الخادم الذيهو خليفة لـفي هذه الحالة. ومع ذلك، عند إضافة خادم أو إزالته أثناء انقطاع الخدمة أو توسيع نطاقها (عندماالتغييرات)، يجب إعادة تعيين ونقل جميع الكائنات الثنائية الكبيرة (BLOBs) في كل خادم بسبب إعادة التجزئة ، ولكن هذه العملية مكلفة.
صُممت تقنية التجزئة المتسقة لتجنب مشكلة إعادة تعيين كل كائن ثنائي كبير (BLOB) عند إضافة خادم أو إزالته من المجموعة. وتتمثل الفكرة الأساسية في استخدام دالة تجزئة تربط كلاً من الكائن الثنائي الكبير والخوادم بدائرة الوحدة، عادةًالراديان. على سبيل المثال،(أينهي دالة تجزئة لمعرف كائن ثنائي كبير (BLOB) أو خادم (مثل عنوان IP أو UUID ). يُخصص كل كائن ثنائي كبير (BLOB) للخادم التالي الذي يظهر على الدائرة بترتيب عقارب الساعة. عادةً ما تُستخدم خوارزمية البحث الثنائي أو البحث الخطي للعثور على "موقع" أو خادم لوضع هذا الكائن الثنائي الكبير (BLOB) فيه.أوالتعقيدات على التوالي؛ وفي كل تكرار، والذي يحدث بطريقة في اتجاه عقارب الساعة، عملية(أينتُجرى هذه العملية (قيمة الخادم داخل المجموعة) لتحديد الخادم المناسب لوضع كائن البيانات الثنائية الكبيرة (BLOB). يضمن هذا توزيعًا متساويًا لكائنات البيانات الثنائية الكبيرة على الخوادم. والأهم من ذلك، في حال تعطل خادم وإزالته من دائرة التوزيع، لا يلزم إعادة تعيين سوى كائنات البيانات الثنائية الكبيرة التي كانت مرتبطة بالخادم المتعطل إلى الخادم التالي في اتجاه عقارب الساعة. وبالمثل، عند إضافة خادم جديد، يُضاف إلى دائرة التوزيع، ولا يلزم إعادة تعيين سوى كائنات البيانات الثنائية الكبيرة المرتبطة بهذا الخادم.
الأهم من ذلك، عند إضافة خادم أو إزالته، فإن الغالبية العظمى من كائنات BLOB تحتفظ بتعيينات الخادم السابقة، وإضافةالخادم يسبب فقطجزء من كائنات BLOB المراد نقلها. على الرغم من أن عملية نقل كائنات BLOB بين خوادم التخزين المؤقت في المجموعة تعتمد على السياق، إلا أنه عادةً ما يُحدد خادم التخزين المؤقت المُضاف حديثًا "خادمه السابق" وينقل منه جميع كائنات BLOB التي تنتمي إلى هذا الخادم (أي التي تكون قيمة تجزئتها أقل من قيمة تجزئته). مع ذلك، في حالة ذاكرة التخزين المؤقت لصفحات الويب ، لا تتضمن معظم التطبيقات نقلًا أو نسخًا، بافتراض أن حجم كائن BLOB المُخزن مؤقتًا صغير بما يكفي. عندما يصل طلب إلى خادم تخزين مؤقت مُضاف حديثًا، يحدث خطأ في ذاكرة التخزين المؤقت ، ويتم إرسال طلب إلى خادم الويب الفعلي ، ويتم تخزين كائن BLOB مؤقتًا محليًا للطلبات المستقبلية. تُزال كائنات BLOB الزائدة على خوادم التخزين المؤقت المستخدمة سابقًا وفقًا لسياسات إخلاء ذاكرة التخزين المؤقت . [ 11 ]
تطبيق
يتركوتُستخدم دوال التجزئة لحساب مُعرّف BLOB الفريد ومعرّف الخادم الفريد على التوالي. عمليًا، تُستخدم شجرة بحث ثنائية (BST) للحفاظ على هذا المُعرّف بشكل ديناميكي.يتم استخدام اجتياز الشجرة داخل مجموعة أو تجزئة، ولإيجاد الخلف أو الحد الأدنى داخل BST .
- إدخالداخل المجموعة
- يتركليكن قيمة التجزئة لـ BLOB بحيث،أينولإدخالابحث عن خليفةفي التوقيت الصيفي البريطاني لـإذاأكبر من جميعs، يتم وضع BLOB في الخادم ذي أصغر حجمقيمة.
- حذفمن المجموعة
- ابحث عن خليفة لـفي شجرة البحث الثنائية، قم بإزالة الكائن الثنائي الكبير من البيانات المُعادة. لوليس له خليفة، قم بإزالة الكائن الثنائي الكبير من أصغرها[ 12 ]
- أدخل خادمًا في المجموعة
- يتركليكن قيمة التجزئة لمعرف الخادم بحيث،أينوانقل جميع الكائنات الثنائية الكبيرة (BLOBs) التي تكون قيمة التجزئة الخاصة بها أصغر من، من الخادم الذيهو خليفة لـ. لووهو الأكبر بين جميعs، انقل الكائنات الثنائية الكبيرة ذات الصلة من أصغرهاs into[ 13 ]
- حذف خادم من المجموعة
- ابحث عن خليفة لـفي شجرة البحث الثنائية، انقل الكائنات الثنائية الكبيرة منإلى الخادم الذي سيخلفه. إذاإذا لم يكن لديه خليفة، انقل الكائنات الثنائية الكبيرة (BLOBs) إلى أصغرها.[ 14 ]
تقليل التباين
لتجنب انحراف توزيع العقد المتعددة ضمن النطاق الزاوي، والذي يحدث نتيجة عدم التوزيع المنتظم للخوادم داخل المجموعة، تُستخدم عدة تصنيفات. تُسمى هذه التصنيفات المكررة "العقد الافتراضية"، أي تصنيفات متعددة تشير إلى تصنيف "حقيقي" واحد أو خادم واحد داخل المجموعة. يُطلق على عدد العقد الافتراضية أو التصنيفات المكررة المستخدمة لخادم معين داخل المجموعة اسم "وزن" ذلك الخادم. [ 15 ]
امتدادات عملية
يتطلب استخدام التجزئة المتسقة بفعالية لتحقيق توازن الأحمال في التطبيق العملي عددًا من التحسينات على التقنية الأساسية. في المخطط الأساسي المذكور أعلاه، إذا تعطل خادم، تُعاد جميع كائنات BLOB الخاصة به إلى الخادم التالي بترتيب عقارب الساعة، مما قد يُضاعف حمل ذلك الخادم. قد لا يكون هذا مرغوبًا فيه. لضمان إعادة توزيع أكثر توازنًا لكائنات BLOB عند تعطل الخادم، يمكن تجزئة كل خادم إلى مواقع متعددة على دائرة الوحدة. عند تعطل خادم، تُعاد كائنات BLOB المخصصة لكل نسخة من نسخه على دائرة الوحدة إلى خادم مختلف بترتيب عقارب الساعة، وبالتالي إعادة توزيع كائنات BLOB بشكل أكثر توازنًا. يتعلق تحسين آخر بحالة يصبح فيها كائن BLOB واحد "مُستَخدَمًا بكثرة" ويتم الوصول إليه عددًا كبيرًا من المرات، مما يستدعي استضافته على خوادم متعددة. في هذه الحالة، يمكن تخصيص كائن BLOB لخوادم متجاورة متعددة من خلال اجتياز دائرة الوحدة بترتيب عقارب الساعة. تنشأ اعتبارات عملية أكثر تعقيدًا عندما يتم تجزئة كائنين من نوع BLOB بالقرب من بعضهما البعض في دائرة الوحدة، ويصبح كلاهما "ساخنًا" في الوقت نفسه. في هذه الحالة، سيستخدم كلا الكائنين نفس مجموعة الخوادم المتجاورة في دائرة الوحدة. يمكن تحسين هذا الوضع باختيار كل كائن دالة تجزئة مختلفة لربط الخوادم بدائرة الوحدة. [ 2 ]
مقارنة مع التجزئة عند نقطة الالتقاء والبدائل الأخرى
تُعدّ تقنية التجزئة Rendezvous ، التي صُممت عام 1996، تقنيةً أبسط وأكثر عمومية، وتسمح بالاتفاق الموزع بالكامل على مجموعة منخيارات من بين مجموعة محتملة منخيارات. في الواقع، يمكن إثبات أن التجزئة المتسقة هي حالة خاصة من التجزئة التلاقية. وبسبب بساطتها وعموميتها، تُستخدم التجزئة التلاقية الآن بدلاً من التجزئة المتسقة في العديد من التطبيقات.
إذا كانت قيم المفاتيح ستزداد دائمًا بشكل رتيب ، فقد يكون النهج البديل باستخدام جدول تجزئة بمفاتيح رتيبة أكثر ملاءمة من التجزئة المتسقة.
تعقيد
| طاولة الهاش الكلاسيكية | التجزئة المتسقة | |
|---|---|---|
| أضف عقدة | ||
| إزالة عقدة | ||
| ابحث عن مفتاح | ||
| أضف مفتاحًا | ||
| إزالة مفتاح |
اليمثل متوسط تكلفة إعادة توزيع المفاتيح وتكمن صعوبة التجزئة المتسقة في حقيقة أن البحث الثنائي بين زوايا العقد مطلوب للعثور على العقدة التالية على الحلقة.
أمثلة
تشمل الأمثلة المعروفة للاستخدام المتسق للتجزئة ما يلي:
- تقسيم البيانات الآلي في Couchbase [ 16 ]
- خدمة تخزين الكائنات في OpenStack بلغة Swift [ 17 ]
- مكون التقسيم في نظام التخزين Dynamo الخاص بأمازون [ 18 ]
- تقسيم البيانات في أباتشي كاساندرا [ 19 ]
- تقسيم البيانات في ScyllaDB [ 20 ]
- تقسيم البيانات في فولدمورت [ 21 ]
- موجّه التجزئة المتسق لـ Akka [ 22 ]
- Riak ، قاعدة بيانات موزعة تعتمد على المفتاح والقيمة [ 23 ]
- Gluster ، وهو نظام ملفات تخزين متصل بالشبكة [ 24 ]
- شبكة توصيل المحتوى من أكاماي [ 25 ]
- تطبيق دردشة ديسكورد [ 26 ]
- موازنة تحميل طلبات gRPC إلى ذاكرة تخزين مؤقتة موزعة في SpiceDB [ 27 ]
- خوارزمية الوتر [ 28 ]
- نظام تخزين الكائنات MinIO [ 29 ]
مراجع
- 1 2 كارغر، د.؛ ليمان، إ.؛ لايتون، ت .؛ بانيغراهي، ر.؛ ليفين، م.؛ ليوين، د. (1997). التجزئة المتسقة والأشجار العشوائية: بروتوكولات التخزين المؤقت الموزعة لتخفيف الازدحام على شبكة الويب العالمية . وقائع الندوة السنوية التاسعة والعشرين لجمعية آلات الحوسبة حول نظرية الحوسبة . مطبعة جمعية آلات الحوسبة، نيويورك، نيويورك، الولايات المتحدة الأمريكية. الصفحات 654-663 . doi : 10.1145/258533.258660 .
- 1 2 3 بروس ماغز وراميش سيتارامان (2015). "التقنيات الخوارزمية في توصيل المحتوى" (ملف PDF) . مجلة ACM SIGCOMM لمراجعة اتصالات الحاسوب . 45 (3).
- ↑ تصميم أنماط ونماذج الأنظمة الموزعة لخدمات قابلة للتوسع وموثوقة . دار نشر أورايلي ميديا. 2018. رقم ISBN 9781491983607.
- ↑ بيرنرز-لي، تيم (2025). هذا للجميع: القصة غير المكتملة للشبكة العنكبوتية العالمية . فارار، ستراوس وجيرو. ص 156. ISBN 978-0-374-61246-7.
- ↑ Roughgarden & Valiant 2021 ، ص. 2.
- ↑ Roughgarden & Valiant 2021 ، ص 7.
- ↑ Roughgarden & Valiant 2021 ، ص 8.
- ↑ I. Stoica et al., “Chord: a scalable peer-to-peer lookup protocol for Internet applications,” in IEEE/ACM Transactions on Networking, vol. 11, no. 1, pp. 17–32, Feb. 2003, doi: 10.1109/TNET.2002.808407.
- ↑ نيغرين، إي.؛ سيتارامان، آر. كيه.؛ صن، جيه. (2010). "شبكة أكاماي: منصة لتطبيقات الإنترنت عالية الأداء" ( ملف PDF) . مجلة ACM SIGOPS لأنظمة التشغيل . 44 (3): 2-19 . doi : 10.1145/1842733.1842736 . S2CID 207181702. مؤرشف (ملف PDF) من الأصل في 30 نوفمبر 2022. تم الاطلاع عليه في 29 أغسطس 2023 .
- ↑ كارغر، د.؛ شيرمان، أ.؛ بيركهايمر، أ.؛ بوغستاد، ب.؛ دانيدينا، ر.؛ إيواموتو، ك.؛ كيم، ب.؛ ماتكينز، ل.؛ يروشالمي، ي. (1999). "التخزين المؤقت للويب باستخدام التجزئة المتسقة" . شبكات الحاسوب . 31 (11): 1203-1213 . doi : 10.1016/S1389-1286(99)00055-9 . مؤرشف من الأصل في 21 يوليو 2008. تم الاسترجاع في 5 فبراير 2008 .
- ↑ Roughgarden & Valiant 2021 ، ص. 6.
- ↑ مويترا 2016 ، ص. 2.
- ↑ مويترا 2016 ، ص 2-3.
- ↑ مويترا 2016 ، ص 3.
- ↑ Roughgarden & Valiant 2021 ، ص. 6–7.
- ↑ "ما هو Membase بالضبط؟" . 16 ديسمبر 2014. تم الاطلاع عليه بتاريخ 29 أكتوبر 2020 .
- ↑ هولت، جريج (فبراير 2011). "بناء حلقة تجزئة متسقة" . openstack.org . تم الاسترجاع في 17 نوفمبر 2019 .
- ^ ديكانديا، ج. هستورون، د.؛ جامباني، م. كاكولاباتي، ج.؛ لاكشمان، أ. بيلشين، أ.؛ سيفاسوبرامانيان، S .؛ فوسشال، ب. فوجلز، فيرنر (2007). "دينامو" (PDF) . مراجعة أنظمة التشغيل ACM SIGOPS . 41 (6): 205-220 . دوى : 10.1145 / 1323293.1294281 . تم الاسترجاع 2018-06-07 .
- ↑ لاكشمان، أفيناش؛ مالك، براشانت (2010). "كاساندرا: نظام تخزين هيكلي لامركزي". مجلة ACM SIGOPS لأنظمة التشغيل . 44 (2): 35-40 . doi : 10.1145/1773912.1773922 . S2CID 916681 .
- ↑ "مقارنة قواعد بيانات NoSQL: MongoDB مقابل ScyllaDB" . benchant.com . تم الاطلاع عليه بتاريخ 21 مارس 2024 .
- ↑ "التصميم - فولدمورت" . www.project-voldemort.com/ . مؤرشف من الأصل في 9 فبراير 2015. تم الاسترجاع في 9 فبراير 2015.
التجزئة المتسقة هي تقنية تتجنب هذه المشاكل، ونستخدمها لحساب موقع كل مفتاح على المجموعة.
- ↑ "توجيه أكا" . akka.io. تم الاطلاع عليه بتاريخ 16-11-2019 .
- ↑ "مفاهيم رياك" . مؤرشف من الأصل بتاريخ 19-09-2015 . تم الاطلاع عليه بتاريخ 06-12-2016 .
- ↑ "خوارزميات GlusterFS: التوزيع" . gluster.org . 2012-03-01 . تم الاطلاع عليه بتاريخ 2019-11-16 .
- ↑ رافغاردن، تيم؛ فاليانت، غريغوري (28 مارس 2016). "مجموعة أدوات الخوارزميات الحديثة" (ملف PDF) . stanford.edu . تاريخ الاسترجاع: 17 نوفمبر 2019 .
- ↑ فيشنفسكي، ستانيسلاف (2017-07-06). "كيف وسّعت ديسكورد نطاق استخدام إليكسير إلى 5,000,000 مستخدم متزامن" . تم الاطلاع عليه بتاريخ 2022-08-16 .
- ↑ "موازنة تحميل التجزئة المتسقة لـ gRPC" . 24 نوفمبر 2021. تم الاسترجاع في 4 سبتمبر 2023 .
- ↑ ستويكا، آي .؛ موريس، آر.؛ ليبن-نويل، دي.؛ كارغر، دي.؛ كاشوك، إم إف؛ دابيك، إف.؛ بالاكريشنان، إتش. (25 فبراير 2003). "Chord: بروتوكول بحث قابل للتوسع من نظير إلى نظير لتطبيقات الإنترنت". معاملات IEEE/ACM في الشبكات . 11 (1): 17-32 . doi : 10.1109/TNET.2002.808407 . S2CID 221276912 .
- ↑ "نظرة معمقة على إصدارات MinIO والبيانات الوصفية والتخزين" . 3 يناير 2022. تم الاطلاع عليه بتاريخ 24 أكتوبر 2023 .
المراجع
- مويترا، أنكور (10 فبراير 2016). "الخوارزميات المتقدمة، 6.854" (ملف PDF) . معهد ماساتشوستس للتكنولوجيا . مؤرشف (ملف PDF) من الأصل في 13 أبريل 2021. تم الاطلاع عليه في 8 أكتوبر 2021 .
- رافغاردن، تيم؛ فاليانت، غريغوري (28 مارس 2021). "مجموعة أدوات الخوارزميات الحديثة، مقدمة في التجزئة المتسقة" (ملف PDF) . جامعة ستانفورد . مؤرشف (ملف PDF) من الأصل في 25 يوليو 2021. تم الاطلاع عليه في 7 أكتوبر 2021 .
روابط خارجية
- التجزئة
