التحكم التزامني
في تكنولوجيا المعلومات وعلوم الكمبيوتر وخاصة في مجالات برمجة الكمبيوتر لأنظمة التشغيل، المعالجات المتعددة وقواعد البيانات، يضمن التحكم التزامني أن يتم إنتاج النتائج الصحيحة للعمليات المتزامنة، مع الحصول على هذه النتائج في أسرع وقت ممكن.
تتكون أنظمة الكمبيوتر سواء البرامج أم الأجهزة من وحدات أو مكونات تم تصميم كل مكوّن فيها للعمل بشكل صحيح، على سبيل المثال، تلبية بعض قواعد التناسق، عندما تتفاعل المكونات التي تعمل بشكل متزامن عن طريق المراسلة أو عن طريق مشاركة البيانات التي تم الوصول إليها (في الذاكرة أو التخزين)، فقد ينتهك مكوّن آخر تناسق مكوّن معين، توفّر المنطقة العامة للتحكم التزامني القواعد والأساليب ومنهجيات التصميم والنظريات للحفاظ على تناسق المكونات التي تعمل بشكل متزامن أثناء التفاعل، وبالتالي اتساق وصحة النظام بأكمله، وإدخال التحكم التزامني في نظام ما يعني تطبيق قيود التشغيل التي تؤدي عادة إلى بعض التخفيض في الأداء.
يجب تحقيق اتساق العملية وصحتها بأكبر قدر ممكن من الكفاءة، دون تقليل الأداء دون المستويات المعقولة.
يمكن أن يتطلب التحكم التزامني تعقيدًا إضافيًا ونفقات إضافية في خوارزمية متزامنة مقارنة بالخوارزمية التسلسلية الأكثر بساطة، على سبيل المثال، يمكن أن يؤدي الفشل في التحكم التزامني إلى تلف البيانات من عمليات القراءة أو الكتابة الممزقة.
التحكم التزامني في قواعد البيانات
تعليقات:
يضمن التحكم التزامني في أنظمة إدارة قواعد البيانات (على سبيل المثال بيرنشتاين وآخرون 1987 وويكوم وفوسن 2001)، وكائنات المعاملات الأخرى والتطبيقات الموزعة ذات الصلة (على سبيل المثال الحوسبة الشبكية والحوسبة السحابية) تنفيذ معاملات قاعدة البيانات بشكل متزامن دون انتهاك تكامل البيانات من قواعد البيانات المعنية، وبالتالي فإن التحكم التزامني هو عنصر أساسي للصحة في أي نظام حيث يمكن لمعاملتين من قواعد البيانات أو أكثر، يتم تنفيذها مع تداخل زمني، الوصول إلى نفس البيانات، على سبيل المثال، تقريبًا في أي نظام قاعدة بيانات للأغراض العامة، وبالتالي تم تجميع مجموعة كبيرة من البحوث ذات الصلة منذ ظهور أنظمة قواعد البيانات في أوائل السبعينيات، تم توضيح نظرية التحكم التزامني الراسخة لأنظمة قواعد البيانات في المراجع المذكورة أعلاه: نظرية قابلية التسلسل، والتي تسمح بتصميم وتحليل طرق وآليات التحكم التزامني بشكل فعّال، ويتم تقديم نظرية بديلة للتحكم التزامني للمعاملات الذرية على أنواع البيانات المجردة في (لينش وآخرون 1993)، ولا يتم استخدامها أدناه، هذه النظرية أكثر دقة وتعقيدًا ذات نطاق أوسع، وكانت أقل استخدامًا في أدب قاعدة البيانات من النظرية الكلاسيكية أعلاه، كل نظرية لها إيجابيات وسلبيات، والتركيز والبصيرة، فهي إلى حد ما مكملة، وقد يكون دمجها مفيدًا.
لضمان الصحة، تضمن أنظمة إدارة قواعد البيانات عادةً إنشاء جداول المعاملات القابلة للتسلسل فقط، ما لم يتم تخفيف القابلية للتسلسل عن قصد لزيادة الأداء، ولكن فقط في الحالات التي لا تتضرر من صحة التطبيق، للمحافظة على الصحة في حالات المعاملات الفاشلة (التي يمكن أن تحدث دائمًا لأسباب عديدة) تحتاج الجداول أيضًا إلى امتلاك خاصية الاسترداد (نتيجة إلغاء المعاملة)، تضمن أنظمة إدارة قواعد البيانات أيضًا عدم فقد أي تأثير للمعاملات المرتكبة، ولا يبقى أي تأثير للمعاملات المجهولة (التي تم التراجع عنها) في قاعدة البيانات ذات الصلة، عادة ما يتم تلخيص التوصيف الكلي للمعاملة بواسطة القواعد (الذرية، الاتساق، العزلة و المتانة) أدناه، نظرًا لأن قواعد البيانات أصبحت موزعة أو ضرورية للتعاون في البيئات الموزعة (مثل قواعد البيانات الموحدة في أوائل عام 1990 والحوسبة السحابية حاليًا)، فقد حظي التوزيع الفعال لآليات التحكم التزامني باهتمام خاص.
معاملة قاعدة البيانات وقواعد ACID
لقد تطور مفهوم معاملة قاعدة البيانات (أو المعاملة الذرية) من أجل تمكين كل من سلوك نظام قاعدة البيانات المفهوم جيدًا في بيئة معيبة حيث يمكن أن يحدث التعطل في أي وقت، والانتعاش من التعطل إلى حالة قاعدة بيانات مفهومة جيدًا، معاملة قاعدة البيانات هي وحدة عمل، تضم عادةً عددًا من العمليات على قاعدة بيانات (على سبيل المثال قراءة كائن قاعدة بيانات، والكتابة، والحصول على القفل، وما إلى ذلك)، وتجريد مدعوم في قاعدة البيانات وأيضًا الأنظمة الأخرى، كل معاملة لها حدود محددة جيدًا من حيث يتم تضمين تنفيذ البرنامج / الرمز في تلك المعاملة (يحددها مبرمج المعاملة عبر أوامر معاملة خاصة). تلتزم كل معاملة قاعدة بيانات بالقواعد التالية (عن طريق الدعم في نظام قاعدة البيانات؛ أي أن نظام قاعدة البيانات مصمم لضمان حصولهم على المعاملات التي يديرها):
* الذرية (Atomicity) – إما أن تظل تأثيرات كل عمليات التشغيل أو لا شيء (دلالات “كل شيء أو لا شيء”) عند اكتمال المعاملة (يتم الالتزام بها أو إجهاضها على التوالي)، بمعنى آخر، بالنسبة للعالم الخارجي، تظهر المعاملة الملتزمة (بتأثيرها على قاعدة البيانات) غير قابلة للتجزئة (ذرية)، ولا تؤثر المعاملة المجهضة على قاعدة البيانات على الإطلاق، إما أن تتم جميع العمليات أو لا يتم أي منها.
* الاتساق (Consistency) – يجب أن تترك كل معاملة قاعدة البيانات في حالة (صحيحة) متسقة، أي الحفاظ على قواعد التكامل المحددة مسبقًا لقاعدة البيانات (قيود على كائنات قاعدة البيانات وفيما بينها)، يجب أن تحول المعاملة قاعدة بيانات من حالة متسقة إلى حالة متسقة أخرى (ومع ذلك، تقع على عاتق مبرمج المعاملة التأكد من صحة المعاملة نفسها، أي تنفيذ ما تنوي تنفيذه بشكل صحيح (من وجهة نظر التطبيق) في حين يتم تطبيق قواعد التكامل المحددة مسبقًا من قبل أنظمة إدارة قاعدة البيانات)، وبالتالي بما أنه لا يمكن تغيير قاعدة البيانات عادةً إلا بالمعاملات، فإن جميع حالات قاعدة البيانات متسقة.
* العزلة (Isolation) –لا يمكن أن تتداخل المعاملات مع بعضها البعض (كنتيجة نهائية لعمليات إعدامهم)، علاوة على ذلك، عادةً ما تكون تأثيرات المعاملة غير المكتملة (وفقًا لطريقة التحكم التزامني) غير مرئية لمعاملة أخرى، توفير العزلة هو الهدف الرئيسي للتحكم التزامن.
* المتانة (Durability)- يجب أن تستمر تأثيرات المعاملات (الملتزمة) الناجحة من خلال الأعطال (عادةً عن طريق تسجيل تأثيرات المعاملات وحدث الالتزام في ذاكرة غير متقلبة).
تم توسيع مفهوم المعاملة الذرية خلال السنوات إلى ما أصبح معاملات تجارية تقوم بالفعل بتنفيذ أنواع من سير العمل وليست ذرية، ومع ذلك، فإن هذه المعاملات المحسنة تستخدم عادة المعاملات الذرية كمكونات.
لماذا هناك حاجة إلى التحكم التزامني ؟
إذا تم تنفيذ المعاملات بشكل تسلسلي، أي بالتتابع دون تداخل في الوقت المناسب، لا يوجد تزامن في المعاملة، ومع ذلك، إذا تم السماح بالمعاملات المتزامنة مع عمليات متداخلة بطريقة غير خاضعة للرقابة، فقد تحدث بعض النتائج غير المتوقعة وغير المرغوب فيها، مثل:
تحتاج معظم أنظمة المعاملات عالية الأداء إلى تشغيل المعاملات بشكل متزامن لتلبية متطلبات الأداء الخاصة بها، وبالتالي ، بدون التحكم التزامني ، لا يمكن لهذه الأنظمة أن تقدم نتائج صحيحة ولا تحتفظ بقواعد بياناتها باستمرار.
آليات التحكم التزامني
الفئات الرئيسية لآليات التحكم المتزامن هي:
* متفائل (Optimistic)– تأخير التحقق مما إذا كانت الصفقة تلبي قواعد العزل وسلامة قواعد البيانات الأخرى (على سبيل المثال، قابلية التسلسل وقابلية الاسترداد) حتى نهايتها، دون حظر أي من عملياتها (القراءة والكتابة) (“… وكن متفائلاً بشأن القواعد التي يجري تنفيذها … “)، ثم أجهض معاملة لمنع الانتهاك، إذا تم انتهاك القواعد المطلوبة عند ارتكابها، تتم إعادة تشغيل المعاملة التي تم إحباطها على الفور وإعادة تنفيذها، مما يؤدي إلى حدوث حِمل واضح (مقابل تنفيذها حتى النهاية مرة واحدة فقط)، إذا لم يتم إحباط الكثير من المعاملات، فإن التفاؤل هو عادة استراتيجية جيدة.
* متشائم (Pessimistic) –حظر إجراء معاملة، إذا كان قد يتسبب في انتهاك للقواعد، إلى أن يختفي احتمال حدوث انتهاك، عمليات الحظر عادة ما تكون مرتبطة بتخفيض الأداء.
* شبه متفائل(Semi-Optimistic)– قم بحظر العمليات في بعض المواقف، إذا كانت قد تتسبب في انتهاك بعض القواعد، ولا تمنع في حالات أخرى أثناء تأخير التحقق من القواعد (إذا لزم الأمر) حتى نهاية المعاملة، كما يحدث مع التفاؤل،
توفر الفئات المختلفة أداء مختلفًا، مثل متوسط معدلات إتمام المعاملات المختلفة (الإنتاجية)، اعتمادًا على مزيج أنواع المعاملات ومستوى الحوسبة التوازي وعوامل أخرى، إذا كان الاختيار والمعرفة بالمفاضلات متوفرة، فيجب اختيار الفئة والطريقة لتوفير أعلى أداء.
يؤدي الحظر المتبادل بين معاملتين (حيث يقوم كل منهما بحظر الآخر) أو أكثر إلى توقف تام، حيث تتوقف المعاملات المعنية ولا يمكن أن تصل إلى الاكتمال، معظم الآليات غير المتفائلة (مع الحجب) معرضة إلى حالة توقف تام يتم حلها عن طريق إجهاض مقصود لمعاملة متوقفة (تُصدر المعاملات الأخرى في هذا الطريق المسدود) وإعادة تشغيلها الفوري وإعادة تنفيذها، احتمال حدوث حالة توقف تام منخفضة عادة.
يؤدي الحظر (blocking)والمأزق (deadlock) وإنهاء المعاملة بشكل غير صحيح (abort)إلى الحد من الأداء وبالتالي المفاضلة بين الفئات.
الطرق
توجد العديد من الطرق للتحكم في التزامن، يمكن تنفيذ معظمها ضمن أي فئة رئيسة أعلاه، الطرق الرئيسة، التي تحتوي على العديد من المتغيرات، وفي بعض الحالات قد تتداخل أو يتم تجميعها، هي:
1-القفل(Locking)(على سبيل المثال ، القفل ثنائي المرحلة) – التحكم في الوصول إلى البيانات عن طريق الأقفال المخصصة للبيانات، قد يتم حظر وصول معاملة إلى عنصر بيانات (كائن قاعدة بيانات) مقفل (محجوز) بمعاملة أخرى (اعتمادًا على نوع القفل ونوع عملية الوصول) حتى يتم تحرير القفل.
2- التحقق من تسلسل المعاملات (يُسمى أيضًا قابلية التسلسل ، أو التعارض ، أو التحقق من الأولوية بالرسم) – التحقق من وجود دورات في الرسم وكسرها بإلغاء المعاملات.
3- تنظيم الطابع الزمني – تعيين الطوابع الزمنية للمعاملات، والتحكم في الوصول إلى البيانات أو التحقق منه حسب ترتيب الطابع الزمني.
4- تنظيم التثبيت (أو ترتيب التثبيت) – مراقبة أو التحقق من ترتيب المعاملات الزمني لأحداث التثبيت لتكون متوافقة مع الأولوية الخاصة بها.
تتضمن أنواع التحكم التزامني الرئيسة الأخرى التي يتم استخدامها بالاقتران مع الطرق أعلاه:
* التحكم التزامني المتعدد – زيادة التزامن والأداء عن طريق إنشاء إصدار جديد من كائن قاعدة البيانات في كل مرة يتم فيها كتابة الكائن، والسماح بعمليات قراءة المعاملات للعديد من الإصدارات الأخيرة ذات الصلة (لكل كائن) اعتمادًا على طريقة الجدولة.
* التحكم بمؤشر التزامن– مزامنة عمليات الوصول إلى المؤشرات، بدلاً من بيانات المستخدم، توفر الطرق المتخصصة مكاسب أداء كبيرة.
* نموذج مساحة العمل الخاصة (التحديث المؤجل) – تحتفظ كل معاملة بمساحة عمل خاصة لبياناتها التي يتم الوصول إليها، وتصبح بياناتها المتغيرة مرئية خارج المعاملة فقط عند التثبيت (على سبيل المثال، ويكوم وفوسن 2001)، يوفر هذا النموذج سلوك تحكم بالتزامن مختلف مع فوائد في العديد من الحالات.
كان أكثر أنواع الآليات شيوعًا في أنظمة قواعد البيانات منذ أيامها الأولى في السبعينيات هو القفل الصارم ثنائي المرحلة القوي (يُطلق عليه أيضًا الجدولة الصارمة أو القفل الصارم ثنائي المرحلة) والذي يعد حالة خاصة (متباينة) لكل من القفل ثنائي المرحلة و ترتيب التثبيت، إنه متشائم، على الرغم من اسمها الطويل (لأسباب تاريخية)، فإن فكرة آلية القفل الصارمة القوية ثنائية المرحلة بسيطة: “حرر جميع الأقفال المطبقة بمعاملة فقط بعد انتهاء المعاملة.” يعد القفل الصارم القوي ثنائي المرحلة (أو الصلابة) هو أيضًا اسم مجموعة جميع الجداول التي يمكن إنشاؤها بواسطة هذه الآلية، أي أن هذه الجداول الزمنية القوية الصارمة ثنائية المرحلة (أو الصارمة)، لها قفل قوي ثنائي المرحلة ( أو صرامة) الملكية.
الأهداف الرئيسة لآليات التحكم التزامني
تحتاج آليات التحكم التزامني أولًا إلى العمل بشكل صحيح، أي للحفاظ على قواعد تكامل كل معاملة (كما هو الحال في التزامن؛ قاعدة التكامل الخاصة بالتطبيق خارج النطاق هنا) أثناء تشغيل المعاملات بشكل متزامن، وبالتالي تكامل نظام المعاملات بأكمله، يجب تحقيق الدقة بأداء جيد قدر الإمكان، بالإضافة إلى ذلك، هناك حاجة متزايدة للعمل بفعالية أثناء توزيع المعاملات على العمليات وأجهزة الكمبيوتر وشبكات الكمبيوتر، المواضيع الأخرى التي قد تؤثر على التحكم التزامني هي الاسترداد والنسخ المتماثل.
قابلية التسلسل
لتحقيق الصحة، يتمثل الهدف الرئيس المشترك لمعظم آليات التحكم التزامني في إنشاء جداول مع خاصية قابلية التسلسل، بدون حدوث تسلسل، قد تحدث ظواهر غير مرغوب فيها، على سبيل المثال، قد تختفي الأموال من الحسابات، أو يتم توليدها من أي مكان، تعني تسلسل جدول ما معادلة (في قيم قاعدة البيانات الناتجة) لبعض الجداول الزمنية التسلسلية بنفس المعاملات(أي ، حيث تكون المعاملات متسلسلة دون تداخل في الوقت المناسب، وبالتالي معزولة تمامًا عن بعضها البعض؛ لا يمكن الوصول المتزامن من قبل أي معاملة إلى نفس البيانات)، تعتبر قابلية التسلسل أعلى مستوى من العزل بين معاملات قاعدة البيانات، ومعيار الدقة الرئيس للمعاملات المتزامنة، في بعض الحالات، يتم السماح بأشكال استرخاء من التسلسل للحصول على أداء أفضل (على سبيل المثال، آلية عزل اللقطات الشائعة) أو لتلبية متطلبات التوافر في الأنظمة الموزعة للغاية، ولكن فقط في حالة عدم انتهاك صحة التطبيق من خلال الاسترخاء ( على سبيل المثال، لا يُسمح بالاسترخاء للمعاملات المالية، حيث أنه من خلال المال الاسترخاء يمكن أن تختفي أو تظهر من أي مكان).
تحقق جميع آليات التحكم المتزامنة المنفذة تقريبًا قابلية للتسلسل من خلال توفير تسلسل التعارض، وهي حالة خاصة واسعة من قابلية التسلسل (أي أنها تغطي، وتمكّن معظم الجداول الزمنية القابلة للتسلسل، ولا تفرض قيودًا إضافية تسبب التأخير) والتي يمكن تنفيذها بكفاءة.
قابلية الاسترداد
تعليق: بينما في المجال العام للأنظمة، قد يشير مصطلح “قابلية الاسترداد” إلى قدرة النظام على التعافي من الفشل أو من حالة غير صحيحة / محظورة، وفي نطاق التحكم التزامني في أنظمة قواعد البيانات، فإن هذا المصطلح قد حصل على معنى محدد.
عادةً ما يضمن التحكم التزامني خاصية الاسترداد للجداول الزمنية للحفاظ على صحتها في حالات المعاملات المجهولة (والتي يمكن أن تحدث دائمًا لأسباب عديدة)، الاسترداد (من الإلغاء غير الصحيح للمعاملة) يعني أنه لا توجد معاملة ملتزمة في جدول ما قد قرأت البيانات المكتوبة بواسطة معاملة تم إلغاؤها، تختفي هذه البيانات من قاعدة البيانات (عند الإلغاء) وهي جزء من حالة قاعدة بيانات غير صحيحة، قراءة هذه البيانات ينتهك قاعدة التناسق من الذرية، التناسق، العزل، الديمومة، على عكس قابلية التسلسل، قابلية الاسترداد لا يمكن المساس بها، أو الاسترخاء على أي حال، لأن أي استرخاء يؤدي إلى انتهاك سريع لقواعد البيانات عند الإلغاء. الطرق الرئيسة المذكورة أعلاه توفر آليات للتسلسل.
لا يوفر أي منها بشكله العام الاسترداد تلقائيًا، وهناك حاجة إلى اعتبارات خاصة وتحسينات لدعم الاسترداد، هناك حالة خاصة شائعة الاستخدام من الاسترداد وهي التشدد، والتي تتيح الاسترداد الفعال لقاعدة البيانات من الفشل(لكن يستبعد التطبيقات المتفائلة؛ على سبيل المثال، لا يمكن أن يكون لطلبات التثبيت الصارمة تنفيذ متفائل، ولكن لديه تطبيقات شبه متفائلة).
تعليق: لاحظ أن خاصية الاسترداد مطلوبة حتى في حالة عدم وجود فشل في قاعدة البيانات ولا توجد حاجة إلى استرداد قاعدة البيانات من الفشل، هناك حاجة إلى معالجة إحباط المعاملة تلقائيًا بشكل صحيح ، والتي قد تكون غير مرتبطة بفشل قاعدة البيانات والاسترداد منها.
التوزيع
مع التطور التكنولوجي السريع للحوسبة، أصبح الفرق بين الحوسبة المحلية والموزعة على شبكات أو ناقلات منخفضة الاستجابة غير واضحة، وبالتالي فإن الاستخدام الفعال الساكن للتقنيات المحلية في مثل هذه البيئات الموزعة أمر شائع، على سبيل المثال، في عناقيد الكمبيوتر والمعالجات متعددة النواة، ومع ذلك، فإن التقنيات المحلية لها حدودها وتستخدم عمليات متعددة (أو مؤشرات ترابط) مدعومة بمعالجات متعددة (أو متعددة النوى) للقياس، غالبًا ما يؤدي ذلك إلى تحويل المعاملات إلى معاملات موزعة، إذا احتاجوا إلى توسيع العمليات المتعددة، في هذه الحالات، لا يتم تحجيم معظم تقنيات التحكم التزامني المحلي بشكل جيد.
توزيع قابلية التسلسل وترتيب التثبيت
نظرًا لأن أنظمة قواعد البيانات أصبحت موزعة أو بدأت تتعاون في البيئات الموزعة (على سبيل المثال، قواعد البيانات الموحدة في أوائل التسعينيات، وفي الوقت الحاضر شبكات الحوسبة، والحوسبة السحابية، والشبكات مع الهواتف الذكية)، فقد أصبحت بعض المعاملات موزعة.تعني المعاملة الموزعة أن المعاملة تمتد عبر العمليات، وقد تشمل أجهزة الكمبيوتر والمواقع الجغرافية. هذا يولد حاجة إلى آليات التحكم التزامني الموزعة الفعالة. إن تحقيق خاصية التسلسل لجدول النظام الموزع (انظر التسلسل الموزع والتسلسل العالمي (قابلية التسلسل المعياري)) يشكل بفعالية تحديات خاصة لا تلبيها عادة معظم آليات قابلية التسلسل العادية، المصممة أصلاً للعمل محليًا. ويرجع ذلك بشكل خاص إلى الحاجة إلى التوزيع المكلِف لمعلومات التحكم التزامني وسط الاتصالات وفترة الكمون للكمبيوتر. التقنية الفعالة الوحيدة المعروفة للتوزيع هي طلب التثبيت، الذي تمّ الكشف عنه علنًا في عام 1991 (بعد الحصول على براءة اختراع). ترتيب التثبيت (أمر التثبيت، راز 1992) يعني أن الترتيب الزمني للمعاملات لأحداث التثبيت يتم الاحتفاظ به متوافقًا مع ترتيب الأولية الخاص به. لا يتطلب ترتيب التثبيت توزيع معلومات التحكم التزامني ويوفر حلًا فعالًا عامًا (موثوقًا وعالي الأداء وقابلًا للتوسعة) للتسلسل الموزع والعالمي، وأيضًا في بيئة غير متجانسة مع أنظمة قواعد البيانات (أو كائنات معاملات أخرى) (أي) آليات التحكم التزامني .ترتيب التثبيت غير مبال بالآلية المستخدمة، لأنه لا يتعارض مع أي جدولة لعمليات المعاملة (التي تتحكم فيها معظم الآليات) ، ويحدد فقط ترتيب أحداث التثبيت. وبالتالي، يتيح ترتيب التثبيت التوزيع الفعال لجميع الآليات الأخرى، وأيضًا توزيع مزيج من الآليات المحلية المختلفة (أي)، لتحقيق قابلية التسلسل الموزع والعالمي. يعتبر وجود مثل هذا الحل “غير مرجح” حتى عام 1991 ، ومن قبل العديد من الخبراء أيضًا في وقت لاحق ، بسبب سوء فهم حل ترتيب التثبيت (انظر الاقتباسات في التسلسل العالمي). من المزايا الجانبية الهامة لترتيب التثبيت هي دقة حالة توقف تام موزعة تلقائيًا. خلافًا لترتيب الالتزام، تكون جميع التقنيات الأخرى تقريبًا (عندما لا يتم دمجها مع ترتيب التثبيت) عرضة للوقوع في حالة توقف تام الموزعة (وتسمى أيضًا الاستعصاءالعالمية) التي تحتاج إلى معالجة خاصة. ترتيب التثبيت هو أيضًا اسم خاصية الجدول الناتج: يحتوي الجدول على خاصية ترتيب التثبيت إذا كان الترتيب الزمني لأحداث التثبيت بالمعاملات الخاصة به متوافقًا مع ترتيب الأولوية (جزئي) للمعاملات المعنية.
قفل مرحلتين المذكورة أعلاه هو البديل (حالة خاصة) من أجل التثبيت، وبالتالي فعّالة أيضًا لتحقيق التسلسل الموزعة والعالمية. كما يوفر دقة توقف تام الموزعة (حقيقة يتم تجاهلها في الأدب البحثي حتى بعد نشر ترتيب التثبيت)، وكذلك التشدد وبالتالي الاسترداد. إن امتلاك هذه الخصائص المرغوبة جنبًا إلى جنب مع التطبيقات المعروفة الفعالة القائمة على القفل يفسر شعبية القفل على مرحلتين. تم استخدام قفل مرحلتين لتحقيق قابلية التوزيع الموزعة والعالمية بكفاءة منذ عام 1980 ، وأصبح المعيار الفعلي لذلك. ومع ذلك، فإن القفل ثنائي المرحلة هو حظر وتقييد (تشاؤم)، ومع انتشار توزيع واستخدام أنظمة مختلفة عن أنظمة قواعد البيانات التقليدية (على سبيل المثال، كما في الحوسبة السحابية)، هناك أنواع أقل تقييدًا من ترتيب التثبيت (على سبيل المثال، ترتيب التثبيت الأمثل) قد تكون هناك حاجة لتحسين الأداء.
تعليقات:
1.يصعب تحقيق خاصية “قابلية تسلسل التعارض الموزع” في شكلها العام بكفاءة، ولكن يتم تحقيقها بكفاءة عبر حالتها الخاصة “ترتيب التثبيت الموزع”: يحتاج كل مكوّن محلي (على سبيل المثال، نظام إدارة قاعدة بيانات محلي) إلى توفير شكل من أشكال طلب التثبيت، وفرض إستراتيجية خاصة لترتيب الأصوات لبروتوكول التثبيت على مرحلتين (بروتوكول التثبيت على مرحلتين: يستخدم لتنفيذ المعاملات الموزعة). بشكل مختلف عن الترتيب العام للالتزام الموزع، يوجد القفل الصارم ذو مرحلتين القوي ثنائي المرحلة تلقائيًا عندما تكون جميع المكونات المحلية قوية قائمة على القفل على مرحلتين (في كل مكوّن، يوجد ترتيب للتثبيت، ضمنيًا، وتتم الآن تلبية استراتيجية ترتيب التصويت تلقائيًا). هذه الحقيقة معروفة واستُخدمت منذ الثمانينيات (أي أن القفل الصارم القوي ثنائي المرحلة موجود على مستوى العالم، دون معرفة أمر التثبيت) لضمان القفل الصارم ذي المرحلة القوي الصارم ذو المرحلتين، والذي يعني ضمنيًا قابلية التسلسل الموزع والصرامة. (على سبيل المثال، انظر راز 1992، الصفحة 293؛ كما أنه ضمني في بيرنشتاين وآخرون. 1987 ، صفحة 78). أقل تقييدًا يمكن تحقيق قابلية التسلسل والتوزيع الموزعين بكفاءة من خلال ترتيب التثبيت الصارم الموزع، أو بمزيج من المكوّنات القوية القائمة على القفل الصارم ثنائي المرحلة والتثبيت الصارم بالترتيب.
2.حول المراجع وترتيب التثبيت: (نشر بيرنشتاين وآخرون 1987) قبل اكتشاف أول أكسيد الكربون في عام 1990. وتسمى خاصية جدول أول أكسيد الكربون بالذرية الديناميكية في لينش وآخرون 1993 ، صفحة 201. يتم وصف ترتيب التثبيت في (ويكوم وفوسن 2001 ، الصفحات 102 ، 700) ، ولكن الوصف جزئي ويغيب عن جوهر طلب التثبيت. (راز 1992) كان أول حكم تم قبوله ومقالات نشره حول خوارزميات ترتيب التثبيت (ومع ذلك، يمكن تتبع المنشورات المتعلقة بخاصية الذرية الذرية المناظرة إلى 1988). اتباع المواد ترتيب التثبيت الأخرى. (برنشتاين ونيوكومير 2009) لاحظ الالتزام بالترتيب كواحد من أربع طرق رئيسة للتحكم في التزامن ، والقدرة على ترتيب الالتزام بتوفير إمكانية التشغيل المتداخل بين الأساليب الأخرى.
قابلية الاسترداد الموزعة
على عكس التسلسل، يمكن تحقيق قابلية الاسترداد الموزعة وصرامة الموزعة بكفاءة بطريقة مباشرة، على غرار الطريقة التي يتم بها تحقيق ترتيب التثبيت الموزع: في كل نظام قاعدة بيانات، يجب تطبيقها محليًا، واستخدام استراتيجية ترتيب التصويت للتثبيت ثنائي المرحلة بروتوكول (بروتوكول تثبيت مرحلتين ؛ راز 1992 ، صفحة 307).
كما ذكرنا سابقًا ، فإن القفل الصارم ذي المرحلتين الموزع القوي على مرحلتين، بما في ذلك الدقة الموزعة (قابلية الاسترداد) وترتيب التثبيت الموزع (قابلية التسلسل) ، يستخدم تلقائيًا استراتيجية ترتيب الأصوات المطلوبة ، ويتم تحقيقه (عالميًا) عند استخدامه محليًا في كل قاعدة بيانات (محلية) النظام (كما كان معروفًا ومستخدمًا لسنوات عديدة ؛ على سبيل الواقع ، يتم تعريف الموقع المحلي بحدود مشارك في بروتوكول الالتزام على مرحلتين (راز 1992).
الموضوعات الرئيسة الأخرى للاهتمام
غالبًا ما يتأثر تصميم آليات التحكم التزامني بالمواضيع التالية:
الاسترداد
جميع الأنظمة عرضة للفشل، ومعالجة الانتعاش من الفشل أمر لا بد منه. قد تؤثر خصائص الجداول التي تم إنشاؤها، والتي تمليها آلية التحكم التزامني ، على فعالية وكفاءة الاسترداد. على سبيل المثال ، غالبًا ما تكون خاصية الصرامة (المذكورة في القسم قابلية الاسترداد أعلاه) مرغوبة لتحقيق استرداد فعال.
للحصول على قاعدة بيانات توفر عالية غالبًا ما يتم نسخ الكائنات. تحديثات النسخ المتماثلة لكائن قاعدة البيانات نفسها تحتاج إلى أن تبقى متزامنة. قد يؤثر هذا على طريقة التحكم التزامني (على سبيل المثال ، جراي وآخرون 1996 .
التحكم التزامني في أنظمة التشغيل
تحتاج أنظمة تشغيل تعدد المهام، وخاصة أنظمة التشغيل في الوقت الفعلي، إلى الحفاظ على الوهم بأن جميع المهام التي تعمل فوقها تعمل جميعها في نفس الوقت، على الرغم من أن مهمة واحدة أو عدة مهام فقط تعمل بالفعل في أي لحظة معينة بسبب قيود الأجهزة التي يعمل عليها نظام التشغيل. إن تعدد المهام هذا بسيط إلى حد ما عندما تكون جميع المهام مستقلة عن بعضها البعض. ومع ذلك ، عندما تحاول العديد من المهام استخدام نفس المورد ، أو عندما تحاول المهام مشاركة المعلومات، فقد يؤدي ذلك إلى الارتباك وعدم الاتساق. مهمة الحوسبة المتزامنة هي حل هذه المشكلة. تتضمن بعض الحلول “أقفال” مشابهة للأقفال المستخدمة في قواعد البيانات ، ولكنها تنطوي على مخاطر التسبب في مشاكل خاصة بها مثل حالة توقف تام. الحلول الأخرى هي الخوارزميات غير المحظورة وتحديث قراءة النسخ.
في تكنولوجيا المعلومات وعلوم الكمبيوتر وخاصة في مجالات برمجة الكمبيوتر لأنظمة التشغيل، المعالجات المتعددة وقواعد البيانات، يضمن التحكم التزامني أن يتم إنتاج النتائج الصحيحة للعمليات المتزامنة، مع الحصول على هذه النتائج في أسرع وقت ممكن.
تتكون أنظمة الكمبيوتر سواء البرامج أم الأجهزة من وحدات أو مكونات تم تصميم كل مكوّن فيها للعمل بشكل صحيح، على سبيل المثال، تلبية بعض قواعد التناسق، عندما تتفاعل المكونات التي تعمل بشكل متزامن عن طريق المراسلة أو عن طريق مشاركة البيانات التي تم الوصول إليها (في الذاكرة أو التخزين)، فقد ينتهك مكوّن آخر تناسق مكوّن معين، توفّر المنطقة العامة للتحكم التزامني القواعد والأساليب ومنهجيات التصميم والنظريات للحفاظ على تناسق المكونات التي تعمل بشكل متزامن أثناء التفاعل، وبالتالي اتساق وصحة النظام بأكمله، وإدخال التحكم التزامني في نظام ما يعني تطبيق قيود التشغيل التي تؤدي عادة إلى بعض التخفيض في الأداء.
يجب تحقيق اتساق العملية وصحتها بأكبر قدر ممكن من الكفاءة، دون تقليل الأداء دون المستويات المعقولة.
يمكن أن يتطلب التحكم التزامني تعقيدًا إضافيًا ونفقات إضافية في خوارزمية متزامنة مقارنة بالخوارزمية التسلسلية الأكثر بساطة، على سبيل المثال، يمكن أن يؤدي الفشل في التحكم التزامني إلى تلف البيانات من عمليات القراءة أو الكتابة الممزقة.
التحكم التزامني في قواعد البيانات
تعليقات:
- 1. ينطبق هذا القسم على جميع أنظمة المعاملات، أي على جميع الأنظمة التي تستخدم معاملات قاعدة البيانات (المعاملات الذرية؛ على سبيل المثال، كائنات المعاملات في إدارة الأنظمة وشبكات الهواتف الذكية التي تطبق عادة أنظمة قواعد بيانات خاصة ومخصصة)، وليس فقط قاعدة بيانات للأغراض العامة، فقط أنظمة الإدارة.
- يجب أن تتعامل أنظمة إدارة قواعد البيانات أيضًا مع مشكلات التحكم التزامني والتي لا تعتبر نموذجية لمعاملات قاعدة البيانات فحسب، بل إلى أنظمة التشغيل بشكل عام، هذه المشكلات (على سبيل المثال، راجع التحكم التزامني في أنظمة التشغيل أدناه) خارج نطاق هذا القسم.
يضمن التحكم التزامني في أنظمة إدارة قواعد البيانات (على سبيل المثال بيرنشتاين وآخرون 1987 وويكوم وفوسن 2001)، وكائنات المعاملات الأخرى والتطبيقات الموزعة ذات الصلة (على سبيل المثال الحوسبة الشبكية والحوسبة السحابية) تنفيذ معاملات قاعدة البيانات بشكل متزامن دون انتهاك تكامل البيانات من قواعد البيانات المعنية، وبالتالي فإن التحكم التزامني هو عنصر أساسي للصحة في أي نظام حيث يمكن لمعاملتين من قواعد البيانات أو أكثر، يتم تنفيذها مع تداخل زمني، الوصول إلى نفس البيانات، على سبيل المثال، تقريبًا في أي نظام قاعدة بيانات للأغراض العامة، وبالتالي تم تجميع مجموعة كبيرة من البحوث ذات الصلة منذ ظهور أنظمة قواعد البيانات في أوائل السبعينيات، تم توضيح نظرية التحكم التزامني الراسخة لأنظمة قواعد البيانات في المراجع المذكورة أعلاه: نظرية قابلية التسلسل، والتي تسمح بتصميم وتحليل طرق وآليات التحكم التزامني بشكل فعّال، ويتم تقديم نظرية بديلة للتحكم التزامني للمعاملات الذرية على أنواع البيانات المجردة في (لينش وآخرون 1993)، ولا يتم استخدامها أدناه، هذه النظرية أكثر دقة وتعقيدًا ذات نطاق أوسع، وكانت أقل استخدامًا في أدب قاعدة البيانات من النظرية الكلاسيكية أعلاه، كل نظرية لها إيجابيات وسلبيات، والتركيز والبصيرة، فهي إلى حد ما مكملة، وقد يكون دمجها مفيدًا.
لضمان الصحة، تضمن أنظمة إدارة قواعد البيانات عادةً إنشاء جداول المعاملات القابلة للتسلسل فقط، ما لم يتم تخفيف القابلية للتسلسل عن قصد لزيادة الأداء، ولكن فقط في الحالات التي لا تتضرر من صحة التطبيق، للمحافظة على الصحة في حالات المعاملات الفاشلة (التي يمكن أن تحدث دائمًا لأسباب عديدة) تحتاج الجداول أيضًا إلى امتلاك خاصية الاسترداد (نتيجة إلغاء المعاملة)، تضمن أنظمة إدارة قواعد البيانات أيضًا عدم فقد أي تأثير للمعاملات المرتكبة، ولا يبقى أي تأثير للمعاملات المجهولة (التي تم التراجع عنها) في قاعدة البيانات ذات الصلة، عادة ما يتم تلخيص التوصيف الكلي للمعاملة بواسطة القواعد (الذرية، الاتساق، العزلة و المتانة) أدناه، نظرًا لأن قواعد البيانات أصبحت موزعة أو ضرورية للتعاون في البيئات الموزعة (مثل قواعد البيانات الموحدة في أوائل عام 1990 والحوسبة السحابية حاليًا)، فقد حظي التوزيع الفعال لآليات التحكم التزامني باهتمام خاص.
معاملة قاعدة البيانات وقواعد ACID
لقد تطور مفهوم معاملة قاعدة البيانات (أو المعاملة الذرية) من أجل تمكين كل من سلوك نظام قاعدة البيانات المفهوم جيدًا في بيئة معيبة حيث يمكن أن يحدث التعطل في أي وقت، والانتعاش من التعطل إلى حالة قاعدة بيانات مفهومة جيدًا، معاملة قاعدة البيانات هي وحدة عمل، تضم عادةً عددًا من العمليات على قاعدة بيانات (على سبيل المثال قراءة كائن قاعدة بيانات، والكتابة، والحصول على القفل، وما إلى ذلك)، وتجريد مدعوم في قاعدة البيانات وأيضًا الأنظمة الأخرى، كل معاملة لها حدود محددة جيدًا من حيث يتم تضمين تنفيذ البرنامج / الرمز في تلك المعاملة (يحددها مبرمج المعاملة عبر أوامر معاملة خاصة). تلتزم كل معاملة قاعدة بيانات بالقواعد التالية (عن طريق الدعم في نظام قاعدة البيانات؛ أي أن نظام قاعدة البيانات مصمم لضمان حصولهم على المعاملات التي يديرها):
* الذرية (Atomicity) – إما أن تظل تأثيرات كل عمليات التشغيل أو لا شيء (دلالات “كل شيء أو لا شيء”) عند اكتمال المعاملة (يتم الالتزام بها أو إجهاضها على التوالي)، بمعنى آخر، بالنسبة للعالم الخارجي، تظهر المعاملة الملتزمة (بتأثيرها على قاعدة البيانات) غير قابلة للتجزئة (ذرية)، ولا تؤثر المعاملة المجهضة على قاعدة البيانات على الإطلاق، إما أن تتم جميع العمليات أو لا يتم أي منها.
* الاتساق (Consistency) – يجب أن تترك كل معاملة قاعدة البيانات في حالة (صحيحة) متسقة، أي الحفاظ على قواعد التكامل المحددة مسبقًا لقاعدة البيانات (قيود على كائنات قاعدة البيانات وفيما بينها)، يجب أن تحول المعاملة قاعدة بيانات من حالة متسقة إلى حالة متسقة أخرى (ومع ذلك، تقع على عاتق مبرمج المعاملة التأكد من صحة المعاملة نفسها، أي تنفيذ ما تنوي تنفيذه بشكل صحيح (من وجهة نظر التطبيق) في حين يتم تطبيق قواعد التكامل المحددة مسبقًا من قبل أنظمة إدارة قاعدة البيانات)، وبالتالي بما أنه لا يمكن تغيير قاعدة البيانات عادةً إلا بالمعاملات، فإن جميع حالات قاعدة البيانات متسقة.
* العزلة (Isolation) –لا يمكن أن تتداخل المعاملات مع بعضها البعض (كنتيجة نهائية لعمليات إعدامهم)، علاوة على ذلك، عادةً ما تكون تأثيرات المعاملة غير المكتملة (وفقًا لطريقة التحكم التزامني) غير مرئية لمعاملة أخرى، توفير العزلة هو الهدف الرئيسي للتحكم التزامن.
* المتانة (Durability)- يجب أن تستمر تأثيرات المعاملات (الملتزمة) الناجحة من خلال الأعطال (عادةً عن طريق تسجيل تأثيرات المعاملات وحدث الالتزام في ذاكرة غير متقلبة).
تم توسيع مفهوم المعاملة الذرية خلال السنوات إلى ما أصبح معاملات تجارية تقوم بالفعل بتنفيذ أنواع من سير العمل وليست ذرية، ومع ذلك، فإن هذه المعاملات المحسنة تستخدم عادة المعاملات الذرية كمكونات.
لماذا هناك حاجة إلى التحكم التزامني ؟
إذا تم تنفيذ المعاملات بشكل تسلسلي، أي بالتتابع دون تداخل في الوقت المناسب، لا يوجد تزامن في المعاملة، ومع ذلك، إذا تم السماح بالمعاملات المتزامنة مع عمليات متداخلة بطريقة غير خاضعة للرقابة، فقد تحدث بعض النتائج غير المتوقعة وغير المرغوب فيها، مثل:
- 1. مشكلة التحديث المفقود (The Lost Update): تكتب المعاملة الثانية القيمة الثانية لعنصر البيانات (معطيات) أعلى من القيمة الأولى المكتوبة بواسطة معاملة متزامنة سابقة، وتضيع القيمة الأولى للمعاملات الأخرى التي تعمل بشكل متزامن والتي تحتاج، حسب الأسبقية، لقراءة القيمة الأولى، تنتهي المعاملات التي قرأت القيمة الخطأ بنتائج غير صحيحة.
- مشكلة القراءة القذرة (The Dirty Read): تقوم المعاملات بقراءة قيمة مكتوبة بواسطة معاملة أخرى تم إحباطها لاحقًا، تختفي هذه القيمة من قاعدة البيانات عند الإجهاض، ويجب ألا تتم قراءتها بواسطة أي معاملة (“قراءة متسخة”)، معاملات القراءة تنتهي بنتائج غير صحيحة.
- مشكلة الملخص غير الصحيحة (The Incorrect Summary): بينما تأخذ إحدى المعاملات ملخصًا على قيم كافة مثيلات عنصر بيانات متكرر، تحدث معاملة ثانية بعض مثيلات عنصر البيانات هذا، لا يعكس الملخص الناتج النتيجة الصحيحة لأي ترتيب أسبقية (عادة ما يكون ضروريًا للصحة) بين المعاملتين (إذا تم تنفيذ أحداهما قبل الأخرى)، بل بعض النتائج العشوائية، اعتمادًا على توقيت التحديثات، وما إذا كانت بعض التحديثات تم تضمين نتائج التحديث في الملخص أم لا.
تحتاج معظم أنظمة المعاملات عالية الأداء إلى تشغيل المعاملات بشكل متزامن لتلبية متطلبات الأداء الخاصة بها، وبالتالي ، بدون التحكم التزامني ، لا يمكن لهذه الأنظمة أن تقدم نتائج صحيحة ولا تحتفظ بقواعد بياناتها باستمرار.
آليات التحكم التزامني
الفئات الرئيسية لآليات التحكم المتزامن هي:
* متفائل (Optimistic)– تأخير التحقق مما إذا كانت الصفقة تلبي قواعد العزل وسلامة قواعد البيانات الأخرى (على سبيل المثال، قابلية التسلسل وقابلية الاسترداد) حتى نهايتها، دون حظر أي من عملياتها (القراءة والكتابة) (“… وكن متفائلاً بشأن القواعد التي يجري تنفيذها … “)، ثم أجهض معاملة لمنع الانتهاك، إذا تم انتهاك القواعد المطلوبة عند ارتكابها، تتم إعادة تشغيل المعاملة التي تم إحباطها على الفور وإعادة تنفيذها، مما يؤدي إلى حدوث حِمل واضح (مقابل تنفيذها حتى النهاية مرة واحدة فقط)، إذا لم يتم إحباط الكثير من المعاملات، فإن التفاؤل هو عادة استراتيجية جيدة.
* متشائم (Pessimistic) –حظر إجراء معاملة، إذا كان قد يتسبب في انتهاك للقواعد، إلى أن يختفي احتمال حدوث انتهاك، عمليات الحظر عادة ما تكون مرتبطة بتخفيض الأداء.
* شبه متفائل(Semi-Optimistic)– قم بحظر العمليات في بعض المواقف، إذا كانت قد تتسبب في انتهاك بعض القواعد، ولا تمنع في حالات أخرى أثناء تأخير التحقق من القواعد (إذا لزم الأمر) حتى نهاية المعاملة، كما يحدث مع التفاؤل،
توفر الفئات المختلفة أداء مختلفًا، مثل متوسط معدلات إتمام المعاملات المختلفة (الإنتاجية)، اعتمادًا على مزيج أنواع المعاملات ومستوى الحوسبة التوازي وعوامل أخرى، إذا كان الاختيار والمعرفة بالمفاضلات متوفرة، فيجب اختيار الفئة والطريقة لتوفير أعلى أداء.
يؤدي الحظر المتبادل بين معاملتين (حيث يقوم كل منهما بحظر الآخر) أو أكثر إلى توقف تام، حيث تتوقف المعاملات المعنية ولا يمكن أن تصل إلى الاكتمال، معظم الآليات غير المتفائلة (مع الحجب) معرضة إلى حالة توقف تام يتم حلها عن طريق إجهاض مقصود لمعاملة متوقفة (تُصدر المعاملات الأخرى في هذا الطريق المسدود) وإعادة تشغيلها الفوري وإعادة تنفيذها، احتمال حدوث حالة توقف تام منخفضة عادة.
يؤدي الحظر (blocking)والمأزق (deadlock) وإنهاء المعاملة بشكل غير صحيح (abort)إلى الحد من الأداء وبالتالي المفاضلة بين الفئات.
الطرق
توجد العديد من الطرق للتحكم في التزامن، يمكن تنفيذ معظمها ضمن أي فئة رئيسة أعلاه، الطرق الرئيسة، التي تحتوي على العديد من المتغيرات، وفي بعض الحالات قد تتداخل أو يتم تجميعها، هي:
1-القفل(Locking)(على سبيل المثال ، القفل ثنائي المرحلة) – التحكم في الوصول إلى البيانات عن طريق الأقفال المخصصة للبيانات، قد يتم حظر وصول معاملة إلى عنصر بيانات (كائن قاعدة بيانات) مقفل (محجوز) بمعاملة أخرى (اعتمادًا على نوع القفل ونوع عملية الوصول) حتى يتم تحرير القفل.
2- التحقق من تسلسل المعاملات (يُسمى أيضًا قابلية التسلسل ، أو التعارض ، أو التحقق من الأولوية بالرسم) – التحقق من وجود دورات في الرسم وكسرها بإلغاء المعاملات.
3- تنظيم الطابع الزمني – تعيين الطوابع الزمنية للمعاملات، والتحكم في الوصول إلى البيانات أو التحقق منه حسب ترتيب الطابع الزمني.
4- تنظيم التثبيت (أو ترتيب التثبيت) – مراقبة أو التحقق من ترتيب المعاملات الزمني لأحداث التثبيت لتكون متوافقة مع الأولوية الخاصة بها.
تتضمن أنواع التحكم التزامني الرئيسة الأخرى التي يتم استخدامها بالاقتران مع الطرق أعلاه:
* التحكم التزامني المتعدد – زيادة التزامن والأداء عن طريق إنشاء إصدار جديد من كائن قاعدة البيانات في كل مرة يتم فيها كتابة الكائن، والسماح بعمليات قراءة المعاملات للعديد من الإصدارات الأخيرة ذات الصلة (لكل كائن) اعتمادًا على طريقة الجدولة.
* التحكم بمؤشر التزامن– مزامنة عمليات الوصول إلى المؤشرات، بدلاً من بيانات المستخدم، توفر الطرق المتخصصة مكاسب أداء كبيرة.
* نموذج مساحة العمل الخاصة (التحديث المؤجل) – تحتفظ كل معاملة بمساحة عمل خاصة لبياناتها التي يتم الوصول إليها، وتصبح بياناتها المتغيرة مرئية خارج المعاملة فقط عند التثبيت (على سبيل المثال، ويكوم وفوسن 2001)، يوفر هذا النموذج سلوك تحكم بالتزامن مختلف مع فوائد في العديد من الحالات.
كان أكثر أنواع الآليات شيوعًا في أنظمة قواعد البيانات منذ أيامها الأولى في السبعينيات هو القفل الصارم ثنائي المرحلة القوي (يُطلق عليه أيضًا الجدولة الصارمة أو القفل الصارم ثنائي المرحلة) والذي يعد حالة خاصة (متباينة) لكل من القفل ثنائي المرحلة و ترتيب التثبيت، إنه متشائم، على الرغم من اسمها الطويل (لأسباب تاريخية)، فإن فكرة آلية القفل الصارمة القوية ثنائية المرحلة بسيطة: “حرر جميع الأقفال المطبقة بمعاملة فقط بعد انتهاء المعاملة.” يعد القفل الصارم القوي ثنائي المرحلة (أو الصلابة) هو أيضًا اسم مجموعة جميع الجداول التي يمكن إنشاؤها بواسطة هذه الآلية، أي أن هذه الجداول الزمنية القوية الصارمة ثنائية المرحلة (أو الصارمة)، لها قفل قوي ثنائي المرحلة ( أو صرامة) الملكية.
الأهداف الرئيسة لآليات التحكم التزامني
تحتاج آليات التحكم التزامني أولًا إلى العمل بشكل صحيح، أي للحفاظ على قواعد تكامل كل معاملة (كما هو الحال في التزامن؛ قاعدة التكامل الخاصة بالتطبيق خارج النطاق هنا) أثناء تشغيل المعاملات بشكل متزامن، وبالتالي تكامل نظام المعاملات بأكمله، يجب تحقيق الدقة بأداء جيد قدر الإمكان، بالإضافة إلى ذلك، هناك حاجة متزايدة للعمل بفعالية أثناء توزيع المعاملات على العمليات وأجهزة الكمبيوتر وشبكات الكمبيوتر، المواضيع الأخرى التي قد تؤثر على التحكم التزامني هي الاسترداد والنسخ المتماثل.
قابلية التسلسل
لتحقيق الصحة، يتمثل الهدف الرئيس المشترك لمعظم آليات التحكم التزامني في إنشاء جداول مع خاصية قابلية التسلسل، بدون حدوث تسلسل، قد تحدث ظواهر غير مرغوب فيها، على سبيل المثال، قد تختفي الأموال من الحسابات، أو يتم توليدها من أي مكان، تعني تسلسل جدول ما معادلة (في قيم قاعدة البيانات الناتجة) لبعض الجداول الزمنية التسلسلية بنفس المعاملات(أي ، حيث تكون المعاملات متسلسلة دون تداخل في الوقت المناسب، وبالتالي معزولة تمامًا عن بعضها البعض؛ لا يمكن الوصول المتزامن من قبل أي معاملة إلى نفس البيانات)، تعتبر قابلية التسلسل أعلى مستوى من العزل بين معاملات قاعدة البيانات، ومعيار الدقة الرئيس للمعاملات المتزامنة، في بعض الحالات، يتم السماح بأشكال استرخاء من التسلسل للحصول على أداء أفضل (على سبيل المثال، آلية عزل اللقطات الشائعة) أو لتلبية متطلبات التوافر في الأنظمة الموزعة للغاية، ولكن فقط في حالة عدم انتهاك صحة التطبيق من خلال الاسترخاء ( على سبيل المثال، لا يُسمح بالاسترخاء للمعاملات المالية، حيث أنه من خلال المال الاسترخاء يمكن أن تختفي أو تظهر من أي مكان).
تحقق جميع آليات التحكم المتزامنة المنفذة تقريبًا قابلية للتسلسل من خلال توفير تسلسل التعارض، وهي حالة خاصة واسعة من قابلية التسلسل (أي أنها تغطي، وتمكّن معظم الجداول الزمنية القابلة للتسلسل، ولا تفرض قيودًا إضافية تسبب التأخير) والتي يمكن تنفيذها بكفاءة.
قابلية الاسترداد
تعليق: بينما في المجال العام للأنظمة، قد يشير مصطلح “قابلية الاسترداد” إلى قدرة النظام على التعافي من الفشل أو من حالة غير صحيحة / محظورة، وفي نطاق التحكم التزامني في أنظمة قواعد البيانات، فإن هذا المصطلح قد حصل على معنى محدد.
عادةً ما يضمن التحكم التزامني خاصية الاسترداد للجداول الزمنية للحفاظ على صحتها في حالات المعاملات المجهولة (والتي يمكن أن تحدث دائمًا لأسباب عديدة)، الاسترداد (من الإلغاء غير الصحيح للمعاملة) يعني أنه لا توجد معاملة ملتزمة في جدول ما قد قرأت البيانات المكتوبة بواسطة معاملة تم إلغاؤها، تختفي هذه البيانات من قاعدة البيانات (عند الإلغاء) وهي جزء من حالة قاعدة بيانات غير صحيحة، قراءة هذه البيانات ينتهك قاعدة التناسق من الذرية، التناسق، العزل، الديمومة، على عكس قابلية التسلسل، قابلية الاسترداد لا يمكن المساس بها، أو الاسترخاء على أي حال، لأن أي استرخاء يؤدي إلى انتهاك سريع لقواعد البيانات عند الإلغاء. الطرق الرئيسة المذكورة أعلاه توفر آليات للتسلسل.
لا يوفر أي منها بشكله العام الاسترداد تلقائيًا، وهناك حاجة إلى اعتبارات خاصة وتحسينات لدعم الاسترداد، هناك حالة خاصة شائعة الاستخدام من الاسترداد وهي التشدد، والتي تتيح الاسترداد الفعال لقاعدة البيانات من الفشل(لكن يستبعد التطبيقات المتفائلة؛ على سبيل المثال، لا يمكن أن يكون لطلبات التثبيت الصارمة تنفيذ متفائل، ولكن لديه تطبيقات شبه متفائلة).
تعليق: لاحظ أن خاصية الاسترداد مطلوبة حتى في حالة عدم وجود فشل في قاعدة البيانات ولا توجد حاجة إلى استرداد قاعدة البيانات من الفشل، هناك حاجة إلى معالجة إحباط المعاملة تلقائيًا بشكل صحيح ، والتي قد تكون غير مرتبطة بفشل قاعدة البيانات والاسترداد منها.
التوزيع
مع التطور التكنولوجي السريع للحوسبة، أصبح الفرق بين الحوسبة المحلية والموزعة على شبكات أو ناقلات منخفضة الاستجابة غير واضحة، وبالتالي فإن الاستخدام الفعال الساكن للتقنيات المحلية في مثل هذه البيئات الموزعة أمر شائع، على سبيل المثال، في عناقيد الكمبيوتر والمعالجات متعددة النواة، ومع ذلك، فإن التقنيات المحلية لها حدودها وتستخدم عمليات متعددة (أو مؤشرات ترابط) مدعومة بمعالجات متعددة (أو متعددة النوى) للقياس، غالبًا ما يؤدي ذلك إلى تحويل المعاملات إلى معاملات موزعة، إذا احتاجوا إلى توسيع العمليات المتعددة، في هذه الحالات، لا يتم تحجيم معظم تقنيات التحكم التزامني المحلي بشكل جيد.
توزيع قابلية التسلسل وترتيب التثبيت
نظرًا لأن أنظمة قواعد البيانات أصبحت موزعة أو بدأت تتعاون في البيئات الموزعة (على سبيل المثال، قواعد البيانات الموحدة في أوائل التسعينيات، وفي الوقت الحاضر شبكات الحوسبة، والحوسبة السحابية، والشبكات مع الهواتف الذكية)، فقد أصبحت بعض المعاملات موزعة.تعني المعاملة الموزعة أن المعاملة تمتد عبر العمليات، وقد تشمل أجهزة الكمبيوتر والمواقع الجغرافية. هذا يولد حاجة إلى آليات التحكم التزامني الموزعة الفعالة. إن تحقيق خاصية التسلسل لجدول النظام الموزع (انظر التسلسل الموزع والتسلسل العالمي (قابلية التسلسل المعياري)) يشكل بفعالية تحديات خاصة لا تلبيها عادة معظم آليات قابلية التسلسل العادية، المصممة أصلاً للعمل محليًا. ويرجع ذلك بشكل خاص إلى الحاجة إلى التوزيع المكلِف لمعلومات التحكم التزامني وسط الاتصالات وفترة الكمون للكمبيوتر. التقنية الفعالة الوحيدة المعروفة للتوزيع هي طلب التثبيت، الذي تمّ الكشف عنه علنًا في عام 1991 (بعد الحصول على براءة اختراع). ترتيب التثبيت (أمر التثبيت، راز 1992) يعني أن الترتيب الزمني للمعاملات لأحداث التثبيت يتم الاحتفاظ به متوافقًا مع ترتيب الأولية الخاص به. لا يتطلب ترتيب التثبيت توزيع معلومات التحكم التزامني ويوفر حلًا فعالًا عامًا (موثوقًا وعالي الأداء وقابلًا للتوسعة) للتسلسل الموزع والعالمي، وأيضًا في بيئة غير متجانسة مع أنظمة قواعد البيانات (أو كائنات معاملات أخرى) (أي) آليات التحكم التزامني .ترتيب التثبيت غير مبال بالآلية المستخدمة، لأنه لا يتعارض مع أي جدولة لعمليات المعاملة (التي تتحكم فيها معظم الآليات) ، ويحدد فقط ترتيب أحداث التثبيت. وبالتالي، يتيح ترتيب التثبيت التوزيع الفعال لجميع الآليات الأخرى، وأيضًا توزيع مزيج من الآليات المحلية المختلفة (أي)، لتحقيق قابلية التسلسل الموزع والعالمي. يعتبر وجود مثل هذا الحل “غير مرجح” حتى عام 1991 ، ومن قبل العديد من الخبراء أيضًا في وقت لاحق ، بسبب سوء فهم حل ترتيب التثبيت (انظر الاقتباسات في التسلسل العالمي). من المزايا الجانبية الهامة لترتيب التثبيت هي دقة حالة توقف تام موزعة تلقائيًا. خلافًا لترتيب الالتزام، تكون جميع التقنيات الأخرى تقريبًا (عندما لا يتم دمجها مع ترتيب التثبيت) عرضة للوقوع في حالة توقف تام الموزعة (وتسمى أيضًا الاستعصاءالعالمية) التي تحتاج إلى معالجة خاصة. ترتيب التثبيت هو أيضًا اسم خاصية الجدول الناتج: يحتوي الجدول على خاصية ترتيب التثبيت إذا كان الترتيب الزمني لأحداث التثبيت بالمعاملات الخاصة به متوافقًا مع ترتيب الأولوية (جزئي) للمعاملات المعنية.
قفل مرحلتين المذكورة أعلاه هو البديل (حالة خاصة) من أجل التثبيت، وبالتالي فعّالة أيضًا لتحقيق التسلسل الموزعة والعالمية. كما يوفر دقة توقف تام الموزعة (حقيقة يتم تجاهلها في الأدب البحثي حتى بعد نشر ترتيب التثبيت)، وكذلك التشدد وبالتالي الاسترداد. إن امتلاك هذه الخصائص المرغوبة جنبًا إلى جنب مع التطبيقات المعروفة الفعالة القائمة على القفل يفسر شعبية القفل على مرحلتين. تم استخدام قفل مرحلتين لتحقيق قابلية التوزيع الموزعة والعالمية بكفاءة منذ عام 1980 ، وأصبح المعيار الفعلي لذلك. ومع ذلك، فإن القفل ثنائي المرحلة هو حظر وتقييد (تشاؤم)، ومع انتشار توزيع واستخدام أنظمة مختلفة عن أنظمة قواعد البيانات التقليدية (على سبيل المثال، كما في الحوسبة السحابية)، هناك أنواع أقل تقييدًا من ترتيب التثبيت (على سبيل المثال، ترتيب التثبيت الأمثل) قد تكون هناك حاجة لتحسين الأداء.
تعليقات:
1.يصعب تحقيق خاصية “قابلية تسلسل التعارض الموزع” في شكلها العام بكفاءة، ولكن يتم تحقيقها بكفاءة عبر حالتها الخاصة “ترتيب التثبيت الموزع”: يحتاج كل مكوّن محلي (على سبيل المثال، نظام إدارة قاعدة بيانات محلي) إلى توفير شكل من أشكال طلب التثبيت، وفرض إستراتيجية خاصة لترتيب الأصوات لبروتوكول التثبيت على مرحلتين (بروتوكول التثبيت على مرحلتين: يستخدم لتنفيذ المعاملات الموزعة). بشكل مختلف عن الترتيب العام للالتزام الموزع، يوجد القفل الصارم ذو مرحلتين القوي ثنائي المرحلة تلقائيًا عندما تكون جميع المكونات المحلية قوية قائمة على القفل على مرحلتين (في كل مكوّن، يوجد ترتيب للتثبيت، ضمنيًا، وتتم الآن تلبية استراتيجية ترتيب التصويت تلقائيًا). هذه الحقيقة معروفة واستُخدمت منذ الثمانينيات (أي أن القفل الصارم القوي ثنائي المرحلة موجود على مستوى العالم، دون معرفة أمر التثبيت) لضمان القفل الصارم ذي المرحلة القوي الصارم ذو المرحلتين، والذي يعني ضمنيًا قابلية التسلسل الموزع والصرامة. (على سبيل المثال، انظر راز 1992، الصفحة 293؛ كما أنه ضمني في بيرنشتاين وآخرون. 1987 ، صفحة 78). أقل تقييدًا يمكن تحقيق قابلية التسلسل والتوزيع الموزعين بكفاءة من خلال ترتيب التثبيت الصارم الموزع، أو بمزيج من المكوّنات القوية القائمة على القفل الصارم ثنائي المرحلة والتثبيت الصارم بالترتيب.
2.حول المراجع وترتيب التثبيت: (نشر بيرنشتاين وآخرون 1987) قبل اكتشاف أول أكسيد الكربون في عام 1990. وتسمى خاصية جدول أول أكسيد الكربون بالذرية الديناميكية في لينش وآخرون 1993 ، صفحة 201. يتم وصف ترتيب التثبيت في (ويكوم وفوسن 2001 ، الصفحات 102 ، 700) ، ولكن الوصف جزئي ويغيب عن جوهر طلب التثبيت. (راز 1992) كان أول حكم تم قبوله ومقالات نشره حول خوارزميات ترتيب التثبيت (ومع ذلك، يمكن تتبع المنشورات المتعلقة بخاصية الذرية الذرية المناظرة إلى 1988). اتباع المواد ترتيب التثبيت الأخرى. (برنشتاين ونيوكومير 2009) لاحظ الالتزام بالترتيب كواحد من أربع طرق رئيسة للتحكم في التزامن ، والقدرة على ترتيب الالتزام بتوفير إمكانية التشغيل المتداخل بين الأساليب الأخرى.
قابلية الاسترداد الموزعة
على عكس التسلسل، يمكن تحقيق قابلية الاسترداد الموزعة وصرامة الموزعة بكفاءة بطريقة مباشرة، على غرار الطريقة التي يتم بها تحقيق ترتيب التثبيت الموزع: في كل نظام قاعدة بيانات، يجب تطبيقها محليًا، واستخدام استراتيجية ترتيب التصويت للتثبيت ثنائي المرحلة بروتوكول (بروتوكول تثبيت مرحلتين ؛ راز 1992 ، صفحة 307).
كما ذكرنا سابقًا ، فإن القفل الصارم ذي المرحلتين الموزع القوي على مرحلتين، بما في ذلك الدقة الموزعة (قابلية الاسترداد) وترتيب التثبيت الموزع (قابلية التسلسل) ، يستخدم تلقائيًا استراتيجية ترتيب الأصوات المطلوبة ، ويتم تحقيقه (عالميًا) عند استخدامه محليًا في كل قاعدة بيانات (محلية) النظام (كما كان معروفًا ومستخدمًا لسنوات عديدة ؛ على سبيل الواقع ، يتم تعريف الموقع المحلي بحدود مشارك في بروتوكول الالتزام على مرحلتين (راز 1992).
الموضوعات الرئيسة الأخرى للاهتمام
غالبًا ما يتأثر تصميم آليات التحكم التزامني بالمواضيع التالية:
الاسترداد
جميع الأنظمة عرضة للفشل، ومعالجة الانتعاش من الفشل أمر لا بد منه. قد تؤثر خصائص الجداول التي تم إنشاؤها، والتي تمليها آلية التحكم التزامني ، على فعالية وكفاءة الاسترداد. على سبيل المثال ، غالبًا ما تكون خاصية الصرامة (المذكورة في القسم قابلية الاسترداد أعلاه) مرغوبة لتحقيق استرداد فعال.
للحصول على قاعدة بيانات توفر عالية غالبًا ما يتم نسخ الكائنات. تحديثات النسخ المتماثلة لكائن قاعدة البيانات نفسها تحتاج إلى أن تبقى متزامنة. قد يؤثر هذا على طريقة التحكم التزامني (على سبيل المثال ، جراي وآخرون 1996 .
التحكم التزامني في أنظمة التشغيل
تحتاج أنظمة تشغيل تعدد المهام، وخاصة أنظمة التشغيل في الوقت الفعلي، إلى الحفاظ على الوهم بأن جميع المهام التي تعمل فوقها تعمل جميعها في نفس الوقت، على الرغم من أن مهمة واحدة أو عدة مهام فقط تعمل بالفعل في أي لحظة معينة بسبب قيود الأجهزة التي يعمل عليها نظام التشغيل. إن تعدد المهام هذا بسيط إلى حد ما عندما تكون جميع المهام مستقلة عن بعضها البعض. ومع ذلك ، عندما تحاول العديد من المهام استخدام نفس المورد ، أو عندما تحاول المهام مشاركة المعلومات، فقد يؤدي ذلك إلى الارتباك وعدم الاتساق. مهمة الحوسبة المتزامنة هي حل هذه المشكلة. تتضمن بعض الحلول “أقفال” مشابهة للأقفال المستخدمة في قواعد البيانات ، ولكنها تنطوي على مخاطر التسبب في مشاكل خاصة بها مثل حالة توقف تام. الحلول الأخرى هي الخوارزميات غير المحظورة وتحديث قراءة النسخ.