تخيل أن لديك نظام تخزين مؤقت (Cache) أو قاعدة بيانات موزعة تعمل على 5 خوادم. مع زيادة عدد المستخدمين، قررت إضافة خادم سادس لتحسين الأداء.
في أنظمة التوزيع التقليدية، قد تضطر إلى إعادة توزيع معظم البيانات على جميع الخوادم، مما يؤدي إلى ضغط كبير وانخفاض الأداء.
لحل هذه المشكلة، تعتمد الأنظمة الحديثة على تقنية Consistent Hashing.
Consistent Hashing هو خوارزمية لتوزيع البيانات على عدة خوادم بطريقة تقلل كمية البيانات التي يجب نقلها عند إضافة أو إزالة خادم.
بدلًا من إعادة توزيع جميع البيانات، يتم نقل جزء صغير فقط إلى الخادم الجديد أو من الخادم الذي تمت إزالته.
تعتمد الخوارزمية على تمثيل الخوادم ومفاتيح البيانات على دائرة افتراضية (Hash Ring).
عند إضافة خادم جديد، تنتقل إليه البيانات الموجودة في الجزء الذي أصبح مسؤولًا عنه فقط.
إضافة خوادم جديدة دون إعادة توزيع كل البيانات.
يُنقل جزء صغير فقط من البيانات.
إزالة خادم لا تؤثر إلا على البيانات المرتبطة به.
تقليل الضغط أثناء عمليات التوسع.
لنفترض أن لديك 4 خوادم لتخزين بيانات الجلسات.
إذا أضفت خادمًا خامسًا:
بدون Consistent Hashing:
مع Consistent Hashing:
في بعض الحالات قد لا يكون توزيع البيانات متوازنًا بين الخوادم.
ولحل ذلك، يتم إنشاء Virtual Nodes، حيث يمثل كل خادم عدة نقاط على دائرة الـ Hash، مما يؤدي إلى توزيع أكثر عدالة للأحمال.
لا، بل يُستخدم أيضًا في قواعد البيانات الموزعة وأنظمة التخزين وخدمات CDN.
لا، لكنه يقلل كمية البيانات المنقولة بشكل كبير عند تغيير عدد الخوادم.
تحسين توزيع البيانات وتقليل احتمالية تحميل خادم أكثر من غيره.

يعد Consistent Hashing من أهم الخوارزميات في الأنظمة الموزعة، لأنه يسمح بتوسيع البنية التحتية أو تقليصها دون الحاجة إلى إعادة توزيع جميع البيانات، مما يحسن الأداء ويقلل وقت التوقف.