Skip to Sidebar Skip to Content
اقرأ-تك اقرأ-تك
ضيفنا الكريم

  • قائمة القراءة
  • تسجيل الدخول
  • الرئيسية
  • المقالات
  • خطط الاشتراك
  • - اصدارتنا
  • ورقة وقلم
  • مدونات فطين
  • شنطة مبرمج
  • النشرة الأسبوعية
  • كنوز
  • - تعرف علينا
  • من نحن
  • الشراكات
  • كتاب المحتوى
  • اكتب معنا
  • تواصل معنا
  • - بنود الخدمة
  • سياسة الخصوصية
  • الشروط والأحكام
الوسوم
  • Backend
  • Distributed Systems
  • System Design
  • Databases
  • LinkedIn
  • X
  • Facebook
  • Telegram
  • GitHub
جميع الحقوق محفوظة لمنصة اقرأ-تِك 2024©

Optimistic Vs Pessimistic Locking

  • Mahmoud Youssef by Mahmoud Youssef
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • •
  • 11 May, 2023
  • •
  • 1 min read
  • Share on X
  • Share on Facebook
  • Share on LinkedIn
  • Share on Pinterest
  • Email
Optimistic Vs Pessimistic Locking
Optimistic Vs Pessimistic Locking
  • Databases

ما هو الـLocking ؟

يعتبر الـLocking من أهم الآليات التي تعتمد عليها قواعد البيانات بشكل أساسي للتحكم في الـConcurrent Access للبيانات من خلال أكثر من Transactions، فإذا كان هناك عدد من الـTransactions تحاول الوصول لتلك البيانات في نفس الوقت فلاشك أنه سينشأ عن ذلك تضارب بينهم يعرف بالـConflicts.

يمكنك تخيل أن الـLocking يشبه القفل الذي تغلق به أي شيء لتمنع وصول الآخرين لهذا الشيء أثناء استعمالك له. فأنت تقوم بغلق الباب وراءك حتى لا يستطيع أحد الدخول للغرفة وأنت موجود بها وتستعملها. ولكن بمجرد انتهائك من عملك وخروجك من الغرفة ستقوم بفتحه حتى يتسنى لغيرك استعمال الغرفة.  

ولكي نمثل هذا في قواعد البيانات، فعند وجود Transaction يحاول استخدام Row أو Record من البيانات، تقوم قاعدة البيانات بعمل Lock أحيانًا على هذا Row أو Record حتى تمنع أية Transactions أخرى من محاولة الوصول أو التعديل فيه لحين انتهاء الـTransaction أولًا. 

لماذا نحتاج إلى الـLocking؟

نحن في أشد الحاجة إلى تلك الآلية وذلك لإنها تضمن لنا العديد من الفوائد المهمة كالـData Consistency and Integrity وهو ما يعرف بصحة واتساق البيانات. كما أنه يعمل على منع حدوث أية مشاكل أو أخطاء للبيانات ناتجة عن حدوث أية Conflicts. وأبسط مثال يوضح هذا التعارض هو أنه من الممكن لـ Two Transactions أن يحاولوا تغيير قيمة Column في نفس الوقت لقيم مختلفة، فالـLocking قادر على منع حدوث هذا النوع من التعارض والتحكم في محاولة الوصول للبيانات بين أكثر من Transactions. 

ولكن على الرغم من فوائد الـLocking التي تناولناها إلا أنه يضم باستعماله بعض التحديات والمشاكل التي يجب ذكرها، فيجب أن تكون على دراية كاملة به وبكيفية عمله حتى تحسن استعماله. وهذه المشاكل والتحديات سنتناولها لاحقًا بعد حديثنا عن الـOptimistic Vs Pessimistic Locking. 

يمكننا تشبيه الـPessimistic Locking هو شخص متشائم نزل من بيته مرتديًا معطفا لخوفه من هطول الأمطار في أي وقت… مما سيبطئ من حركته بالتأكيد لأن المعطف ثقيل وسيجعله يشعر بالحر في حين أن الـOptimistic Locking هو شخص متفائل سينزل من منزله دون معطف ولو هطل المطر سيبدأ بالتفكير في استعمال مظلة أو معطف من أي مصدر قريب فالـOptimistic سيقوم بالتصرف عند حدوث المشكلة… ولكن الـPessimistic سيأخذ إجراءً قبل حدوثها وسيفترض أسوأ الظروف نظرًا لتشائمه.

الـOptimistic Locking 

هذا المقال مخصص للأعضاء المنتسبين لخطط الاشتراك المدفوعة فقط

اشترك الآن وتصفح كافة المقالات المميزة واستمتع بمحتوى حصري وابق على اطلاع دائم بالتحديثات المستمرة.

اشترك الآن 🚀

هل لديك حساب؟ تسجيل الدخول

في هذا المقال
اشترك الآن واكمل قراءة المقال
قناة اقرأ-تِك على التليجرام قناة اقرأ-تِك على التليجرام

اشترك الآن بنشرة اقرأ‑تِك الأسبوعية

لا تدع أي شيء يفوتك. واحصل على أحدث المقالات المميزة مباشرة إلى بريدك الإلكتروني وبشكل مجاني!

مقالات ذات صلة

  • Redis Persistence 1 min read

    Redis Persistence

    Mahmoud Youssef Mahmoud Youssef • 4 Jul, 2025
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • How YouTube Supports Billions of Users With MySQL 2 min read

    How YouTube Supports Billions of Users With MySQL

    Mahmoud Youssef Mahmoud Youssef • 19 Apr, 2025
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • How Slack Handles Billions of Tasks in Milliseconds 3 min read

    How Slack Handles Billions of Tasks in Milliseconds

    Mahmoud Youssef Mahmoud Youssef • 11 Apr, 2025
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • How Netflix Migrates Critical Traffic at Scale With No Downtime 4 min read

    How Netflix Migrates Critical Traffic at Scale With No Downtime

    Mahmoud Youssef Mahmoud Youssef • 5 Apr, 2025
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • ElasticSearch 1 min read

    ElasticSearch

    Alaa Elkzaz Alaa Elkzaz • 31 Mar, 2025
    Alaa Elkzaz Alaa Elkzaz
    Co-Founder & Software Engineer
    • Website
  • Redis 1 min read

    Redis

    Alaa Elkzaz Alaa Elkzaz • 31 Mar, 2025
    Alaa Elkzaz Alaa Elkzaz
    Co-Founder & Software Engineer
    • Website
  • How Canva Built Scalable and Reliable Content Usage Counting Service 2 min read

    How Canva Built Scalable and Reliable Content Usage Counting Service

    Mahmoud Youssef Mahmoud Youssef • 17 Jan, 2025
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Deep Dive Into SQL Window Functions: Explained Visually Part II - Lead and Lag 5 min read

    Deep Dive Into SQL Window Functions: Explained Visually Part II - Lead and Lag

    Ahmed Anwar Ahmed Anwar • 8 Jan, 2025
    Ahmed Anwar Ahmed Anwar
    Software Technical Writer
    • Website
  • Change Data Capture at Pinterest 2 min read

    Change Data Capture at Pinterest

    Mahmoud Youssef Mahmoud Youssef • 21 Dec, 2024
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Demystifying SQL Unique Constraints 2 min read

    Demystifying SQL Unique Constraints

    Nahla Hatem Nahla Hatem • 8 Dec, 2024
    Nahla Hatem Nahla Hatem
    Data Engineer
    • Website
اقرأ-تك اقرأ-تك
  • الرئيسية
  • المقالات
  • خطط الاشتراك
  • - اصدارتنا
  • ورقة وقلم
  • مدونات فطين
  • شنطة مبرمج
  • النشرة الأسبوعية
  • كنوز
  • - تعرف علينا
  • من نحن
  • الشراكات
  • كتاب المحتوى
  • اكتب معنا
  • تواصل معنا
  • - بنود الخدمة
  • سياسة الخصوصية
  • الشروط والأحكام
الوسوم
  • Backend
  • Distributed Systems
  • System Design
  • Databases
  • LinkedIn
  • X
  • Facebook
  • Telegram
  • GitHub
جميع الحقوق محفوظة لمنصة اقرأ-تِك 2024©