DATA · SHARDING · 2026
توزيع البيانات (Sharding)
لما قاعدة بيانات واحدة مش هتستحمل. إزاي توزّع بياناتك على سيرفرات متعددة عشان تخدم مليارات الـ users؟
0%
Section 00
يعني إيه Sharding؟
البداية من الصفر
الفكرة الكبيرة
سيرفر واحد له سقف. عدة سيرفرات = scale بلا حدود
SINGLE DATABASE · وصلت للسقف
قاعدة بيانات واحدة
Users table: 5 billion rows
Database size: 20 TB
Peak: 500K queries/sec
Server: 64 cores, 512GB RAM, 10TB SSD
Status: 🔥 CPU 100%، RAM full
Latency: 5 seconds
Backups: 12 hours
Downtime: 4x per month- ✗ RAM مش كفاية للـ indexes
- ✗ CPU عاجز عن الـ throughput
- ✗ Disk I/O bottleneck
- ✗ Backup و maintenance كارثة
SHARDED · scaled horizontally
10 shards
Each shard: 500M users, 2TB, 50K qps Shard 1: users 0-499M │ Server 1 Shard 2: users 500M-999M │ Server 2 Shard 3: users 1B-1.5B │ Server 3 ... Shard 10: users 4.5B-5B │ Server 10 Each: 16 cores, 128GB RAM ✓ healthy
- ✓ كل shard يخدم subset صغير
- ✓ Scale أفقي (أضف shards لما تكبر)
- ✓ Backups منفصلة وأسرع
- ✓ Isolation بين الـ shards
١. Scale أفقي
أضف سيرفرات بدل ما تشتري سيرفر أضخم
٢. Isolation
مشكلة في shard واحد مش بتأثر على الباقي
٣. Cost efficiency
١٠ سيرفرات متوسطة أرخص من واحد عملاق
الـ Sharding هو تقسيم البيانات على عدة سيرفرات مختلفة. كل سيرفر (shard) بيحتوي جزء من البيانات، والـ application بيعرف يوجه كل query للـ shard الصح.
📖 التشبيه
تخيل مكتبة كتب فيها 100 مليون كتاب. مستحيل تكون في مبنى واحد. الحل: 100 مبنى، كل واحد فيه مليون كتاب، وعندك directory بيقولك أي كتاب في أي مبنى. ده الـ sharding: البيانات موزعة، ومحتاج نظام يعرف كل حاجة فين.
مصطلحات أساسية
- shard: سيرفر (أو مجموعة سيرفرات) فيه جزء من البيانات
- shard key: العمود اللي بتقرر على أساسه كل row يروح فين
- shard function: الـ algorithm اللي بيحدد الـ shard من الـ key
- router / proxy: الطبقة اللي بتوجه الـ queries للـ shard الصح
- hot shard: shard بيتحمل traffic أكتر من التانيين (مشكلة!)
- resharding: إعادة توزيع البيانات على shards جديدة
⚠️ حقيقة صعبة
Sharding هو آخر حل تلجأ ليه. بيضيف تعقيد ضخم للنظام: JOINs بتبقى صعبة، transactions بتبقى ضعيفة، و resharding كابوس. أغلب المشاريع مش محتاجاه أبداً. Vertical scaling + partitioning + replicas أول.
⚡ إمتى تحتاجه فعلاً؟
- ← بياناتك أكبر من أكبر سيرفر متاح (TB+ لا يسع)
- ← الـ traffic أكتر من ما سيرفر واحد يستحمل (millions QPS)
- ← Users في أنحاء العالم محتاجين data residency
- ← عندك budget وفريق يقدر يدير التعقيد
أسئلة انترفيو على القسم ده
3القسم 1 / 13