ك InnoDB لشرح مبادئ المعاملة

هذه المقالة مستعدة تفسير تحقيق مبدأ المعاملات مشغل التخزين ك InnoDB الخلية شعبية في.

أولا وقبل كل شيء، ونحن نعلم أن الصفقة أربعة خصائص ACID. وهي: atomicity، التناسق، والعزلة، والمتانة.

هذه الخصائص الأربعة ليس لدينا كلمات لوضع ذبلت، نحن بحاجة لمعرفة سلسلة من العمليات لضمان أن المعاملة إما عن تنفيذ أو عدم تنفيذ بعض الوقت مرة واحدة ولجان الصفقة، سيتم إجراء تغييرات الدائم أن يتم حفظ إلى قاعدة البيانات يمكن.

التالي ونحن نلقي نظرة على كيفية تحقيق المعاملة ك InnoDB.

ويتم تنفيذ ميزة ACD ثلاثة سجل الإعادة (سجل إعادته) وسجل تراجع. ويتحقق بمعزل عن طريق القفل. بسبب العزلة وقفل عليها في المادة السابقة تحدثت عنه. ولذلك، فإن هذه الورقة تركز الإعادة سجل وسجل تراجع.

A، سجل الإعادة

الإعادة تسجيل الدخول إلى تحقيق المتانة من المعاملات، وهي خصائص الأبعاد. وهو يتألف من جزأين:

إعادته الذاكرة عازلة سجل

  ملفات السجل إعادته

إلقاء نظرة على اثنين من الكيانات المناظرة على الذاكرة والقرص، ونحن نعلم أن هذا هو بالتأكيد لمصلحة الكفاءة، لأن ذاكرة القراءة والكتابة كفاءة من كفاءة قراءة القرص والكتابة مرتفعة للغاية.

ك InnoDB دعم مشغل التخزين المعاملات، عندما يرتكب معاملة، يجب عليك أولا إرسال سجل من جميع المعاملات لإعادة ملفات السجل، والمعاملات ارتكاب عملية لاعتبار كامل المعاملة بالكامل كاملة. بعد كل عازلة سجل وإعادة يكتب ملف سجل إعادته، الحاجة إلى الاتصال مرة واحدة عملية fsync، فقط لأن محتويات المخزن المؤقت سجل إعادته هو مكتوب لنظام المخزن نظام التشغيل، وضمان عدم وجود كتابتها مباشرة إلى القرص، لذلك يجب إجراء عملية fsync مرة واحدة. ولذلك، أداء القرص إلى حد ما، ويحدد أيضا تلتزم أداء الصفقة.

حول fsync هذه العملية يمكن أن يكون تدخل من المستخدم، لأن كل ارتكاب المعاملات يتم تنفيذها مرة واحدة fsync، فإنه لا يؤثر على أداء قاعدة البيانات. للسيطرة على إعادته سجل مسح إلى استراتيجية القرص innodb_flush_log_at_trx_commit. قيمة المعلمة الافتراضية هي 1، في كل مرة يتم تنفيذ العملية مرة واحدة fsync عند ارتكاب المعاملة. 0 يعني عدم وجود صفقة تلتزم هو مكتوب ملف سجل إعادته، عملية الكتابة لإتمام العملية من خلال موضوع رئيسي، فإن كل موضوع رئيسي الثاني جاهزا للعمل مرة واحدة الملفات سجل إعادته fsync. وقال اثنان فإنه سيتم إعادة كتابة سجل ملف سجل إعادته عندما يرتكب معاملة، ولكن نظام الملفات التخزين المؤقت للكتابة فقط لا يتم تنفيذ عملية fsync. يمكن للمستخدم تحديد إلى 0 أو 2 يحسن يمكن تقديم المعاملة المقدمة مطالبة لضمان ملف سجل إعادته هو مكتوب في الطرق الثلاثة القصيرة لها مزايا وعيوب.

هناك حاجة لمعرفة ما يلي:

 يتم مسح عازلة سجل إعادته سيتم تسجيل الذاكرة كتلة على القرص لديه بعض القواعد: عندما يرتكب معاملة (المذكورة سابقا)، عندما يستخدم المخزن المؤقت سجل في نصف مساحة الذاكرة، والوقت نقطة تفتيش السجل.

ثم ان علينا ان ننظر الى ما يعيد ملف سجل المخزنة في النهاية هو عليه.

من أجل تجنب كل دائرة جاهل، وليس الذهاب الى شكل مخزن حفر غرامة (القوة التي لم أكن، ها ها ها). نحن بحاجة فقط لمعرفة ما يقرب كيف انه مصمم على خط المرمى. في هذه الطريقة، ونحن في المستقبل إذا كان مشهد مماثل لتصميم المنتجات الخاصة بها، يمكننا أن نتعلم من تصميمه ذلك.

حسنا، لنبدأ:

 في مشغل التخزين ك InnoDB، من أجل إعادة سجلات يتم تخزينها في وحدة من 512 بايت، وهو ما يعني أن المخزن المؤقت سجل إعادته، وكتل ملف سجل إعادته هي كتل (كتلة) تخزينها بالطريقة المشار إليها إعادته كتلة سجل (إعادته كتلة السجل). كتلة حجم 512 بايت لكل منهما. منذ حجم كتلة سجل إعادته وحجم قطاع من القرص، هي 512 بايت، وبالتالي يكتب سجل إعادته يمكن أن تضمن atomicity، لا أسلوب الكتابة مزدوجة.

كل كتلة المحتوى الإعادة بسرعة تسجيل السجل إلا نفسه، ولكن أيضا من قبل رأس السجل (سجل المنع رأس) وكتلة سجل ذيل (سجل المنع جاسوس) تتألف من جزأين. تحتل إعادته رئيس سجل ما مجموعه 12 بايت، 8 بايت احتلت من قبل نهاية السجل إعادة. يتم إصلاح هذه جزأين. ولذلك، فإن حجم كل كتلة في الواقع قد إعادته تخزين سجل 492 بايت (512-12-8)، كما هو مبين أدناه إعادته بنية كتلة عازلة السجل:

تميز بها يست قلقة جدا حول معنى هذه الحقول في الأرقام، لأنها لا يكون لها تأثير كبير على فهم الآليات لتنفيذ الصفقة الإعادة السجل، ولكن إذا كانت هذه المخاوف، والناس تحصل على رؤية هذه المتغيرات يشعر حروف بالدوار.

ملاحظة: هذه المتغيرات هي المتغيرات الحفاظ على الدولة كتلة السجل. على سبيل المثال، يمثل كتلة سجل الاستخدام الحالي، نقطة الانطلاق الحالي لأول كتلة إعادته سجل إعادته وهلم جرا. وعلى سبيل المثال:

عملية T1 سجل إعادته 1 تحتل 762 بايت، سجل المعاملة إعادته T2 تحتل 100 بايت. لأن كل كتلة سجل في الواقع يمكن أن ينقذ 492 بايت، وهو في حالة من العازلة السجل يجب أن تكون على النحو التالي:

ويتم تحقيق هذه الميزة من قبل رئيس كتلة سجل من الميدان لتحقيقه. حسنا، هذا ليس همنا، أقول هذا فقط لإشباع فضول الجميع وكذلك الفهم الأولي من هذه المتغيرات.

الإعادة كتلة تسجيل الخروج محتويات رأس وجاسوس هو سجل خاص إعادته. سوف المقابلة لعمليات مختلفة إعادة تنسيق قاعدة بيانات السجل. وبالإضافة إلى ذلك، منذ يستند إدارة التخزين ك InnoDB مشغل التخزين على الصفحة، بحيث يستند تنسيق السجل إعادته أيضا على الصفحة. على الرغم من أن إعادة سجلات لها تنسيقات مختلفة، ولكن لديهم شكل رأس مشترك، كما هو مبين:

يتكون شكل رأس العالمي لحوالي 3 أجزاء

  redo_log_type:  الإعادة نوع السجل

  الفضاء: ID الفضاء الجدول

  page_no  موقف إزاحة الصفحة، أي الصفحة

بعد هيئة سجل إعادته، وهذا يتوقف على نوع من إعادة سجلات، لديها محتويات ذاكرة مختلفة، على سبيل المثال، لإدخال وحذف السجلات على الصفحة، على التوالي المقابلة لشكل FIG (مرة أخرى، وليس موضوع الغرامة كل حقل وهذا يعني، انها ليست محور متناول أيدينا):

إعادة هيكل سجل presentation.thank إلى حد كبير. في التحدث أمام ملف الاسترداد سجل إعادته، بل قال أيضا إن مفهوم LSN، LSN هو اختصار سجل رقم تسلسل، الذي يمثل رقم التسلسل السجل، مشغل التخزين ك InnoDB، LSN 8 بايت، وزيادة monotonically.

يمثل LSN المبلغ الإجمالي للصفقة هو مكتوب بايت سجل إعادته. وLSN 1000 إعادة سجلات الحالية، هناك 100 بايت سجل المعاملات الكتابة T1 إعادته، يصبح LSN 1100، إذا الكتابة المعاملة T2 سجل إعادته أخرى 200 بايت، ثم LSN يصبح 1300.

LSN لم تسجل فقط في سجل إعادته، ولكن أيضا وجود كل صفحة، على رأس كل صفحة، هناك FIL_PAGE_LSN القيمة القياسية الصفحة LSN، في الصفحة، LSN LSN يمثل آخر مرة تم تحديث الصفحة حجم . لأن سجل إعادته وسجل كل صفحة، وبالتالي فإن الصفحة يمكن تحديد ما إذا كانت الحاجة الصفحة LSN لعمليات الاستعادة. على سبيل المثال، P1 صفحة من LSN 10000، في حين يتم تشغيل قاعدة البيانات ك InnoDB بالكشف عن الكتابة إعادته سجل LSN 13000، وقد تم تقديم هذه الصفقة، ثم يحتاج إلى قاعدة البيانات لتكون عملية الانتعاش. إعادة السجلات إلى P1 الصفحة، والشيء نفسه بالنسبة للالصفحة سجل إعادته LSN LSN أقل من P1، لا يلزم أن يكون إعادة بنائه، لأن LSN الصفحة P1 يمثل موقف لابد من تحديثها، قبل هذا المنصب وقد تم تجهيز المحتوى بنجاح.

ثم هناك عمليات الاستعادة:

 مشغل التخزين ك InnoDB لتشغيل بغض النظر عن ما إذا كانت البيانات اغلاق الماضي بشكل صحيح عند بدء تشغيل، ومحاولة استئناف العملية لأن السجل سجل إعادته هو السجل الفعلي (وليس متشابكة)، وبالتالي فإن سرعة التعافي من السجلات المنطقية، مثل سجل ثنائي أسرع بكثير المزيد من الوقت نفسه، ك InnoDB مشغل التخزين نفسها لاستعادة درجة معينة من التحسين، مثل بالتسلسل قراءة وتطبيقها في إعادة سجلات موازية، الأمر الذي يزيد من يحسن سرعة استرداد قاعدة البيانات

منذ قال الحاجز أنه قد مسح إلى LSN القرص على الصفحة، وبالتالي فإن عملية الانتعاش ليست سوى جزء من حاجز سجل الانتعاش بدأ. على سبيل المثال في الرسومات وعند حدوث قاعدة البيانات وصولا الى 000 في 10 LSN نقطة تفتيش عملية استعادة لاستعادة مجموعة من فقط سجل LSN 10000 ~ 13000.

السجل الفعلي

 على سبيل المثال، من أجل تشغيل إدراج، سجل سجل التغيير المادي للكل صفحة:

 إذا كنت تنفيذ عبارات SQL:

 INSERT INTO ر SELECT 1،2.

 سجل سجل الإعادة مشابه تقريبا لهذا:

 صفحة (2،3)، ويقابل 32، قيمة 1،2

اثنين، التراجع عن السجل

الجزء الثاني وسجل التراجع، فمن الممكن لتحقيق اثنين الميزات:

 1. لتحقيق تراجع المعاملات

 2. تحقيق MVCC

إعادة السجلات سجل وسجل التراجع ليس هو نفسه السجل الفعلي، فمن المنطقي سجل. قد أخذها في الاعتبار عند حذف سجل، التراجع تسجيل السجلات في سجل المقابلة لإدراج، والعكس بالعكس، عندما سجل التحديث، الذي يسجل لتحديث السجلات المقابلة لعكس ذلك.

عند إجراء العودة، يمكن قراءتها من سجل سجل التراجع المنطقي لمحتوى والتراجع المناسب. في بعض الأحيان عندما يطبق على الصف الإصدارات، ويتحقق ذلك من خلال سجل التراجع: عند قراءة خط مؤمن من قبل معاملة أخرى، فإنه يمكن تحليل ما يسجل البنك البيانات السابقة من سجل التراجع، وتوفير خط معلومات الإصدار لمساعدة المستخدمين على تحقيق متسقة قفل غير القراءة. نعطي مثالا ملموسا. أمثلة من هذه المادة.

يوضح هذا المثال التحديثات الصفقة الكبرى لمعالجة صف من سجل:

قبل العرض، إضافة:

 ك InnoDB حققت كل ثلاثة صفوف حقل مخفي استخدامها لتنفيذ MVCC:

  • 6-بايت ID الصفقة (DB_TRX_ID، كل التعامل مع الصفقة، تلقائيا قيمة +1.
  • 7 مؤشر بايت العودة إلى الحالة السابقة (DB_ROLL_PTR)، نقطة مكتوبة مقطع إلغاء التعديلات (إرجاع) من سجل سجل التراجع.
  • ID مخفي

1. صف البيانات الأولية

F1 ~ F6 هو اسم من صفوف 1-6 هي البيانات ذات الصلة. حقول مخفية وراء الثلاثة وعدد من الصفقة على التراجع الصف المؤشر، إذا كان هذا هو يمكن اعتبار البيانات INSERT مثلما ID 1، وغيرها من المجالات هما فارغة.

2. عملية 1 تغير قيمة كل حقل من الخط

عندما الصفقة لتغيير القيمة من الصف، سنمضي على النحو التالي:

  • مع تأمين حصرية الصف
  • سجل سجل الإعادة
  • قيمة خط قبل تعديل نسخة (يمكن أن يفهم على أنه نسخ، لا متشابكة هنا أن التحديثات قالت في وقت سابق تكرار العكسي، والمبدأ هو نفسه) إلى سجل التراجع، أي أقل من الرقم فوق خط
  • تعديل القيمة الحالية من الخط، وملء عدد المعاملات، ومؤشر التراجع إلى خط قبل سجل التراجع من التغييرات.

3. تعديل قيمة الصفقة من الصف 2

1 ونفس المعاملة، ثم التراجع تسجيل، وهناك صفين، ومرتبطة معا من قبل المتداول مؤشر الظهر.

هذه ربط المؤشر من قبل المتداول الصف الخلفي ما يعادل أكثر من لقطات من البيانات، من أجل تحقيق الاتساق MVCC غير قفل للقراءة.

قواعد محددة هي كما يلي:

ك InnoDB هو MVCC، ويتحقق عن طريق فوق كل صف وراء عمود سجل مخبأة نقول. أنها توفر الوقت ووقت انتهاء الصلاحية لإنشاء صفوف من خطوط (أو وقت الحذف)، وبطبيعة الحال، لا يتم تخزين قيمة الوقت الفعلي، ولكن رقم إصدار نظام. كل بدء معاملة جديدة، فإن النظام الاضافة رقم الإصدار تلقائيا. ونظام رقم الإصدار هو وقت بدء المعاملة حيث وصل عدد نسخة من هذه الصفقة، ورقم الإصدار إلى كل صف من الاستعلام إلى السجل للمقارنة. في مستوى العزل تكرار القراءة، عملية MVCC محددة كما يلي:

SELECT

 ك InnoDB يتحقق كل صف من السجلات تحت شرطين التاليين:

  • ك InnoDB تجد سوى إصدار أقدم من الإصدار المعاملة الحالية من الصف، وهذا هو، ورقم إصدار نظام رقم إصدار نظام خط أقل من أو المعاملات متساوية، وضمان أن الخط يقرأ الشؤون، سواء قبل بداية الصفقة موجود بالفعل، إما إدراج المعاملة نفسها أو تعديلها.
  • نسخة حذف السطر، إما غير معرفة أو أكبر من رقم الإصدار من المعاملة الحالية. هذا يضمن أن الصفقة لقراءة صف واحد، لم يتم حذف قبل بدء العملية.
  •  السجلات فقط تلبية فوق شرطين للعودة نتيجة الاستعلام.

INSERT

  • يتم إدراجها ك InnoDB في كل صف لإنقاذ الحالي رقم إصدار نظام كإصدار التوالي.

DELETE

  • حفظ ك InnoDB رقم إصدار نظام الحالي لكل صف كما حذف الصفوف المحذوفة الهوية.

UPDATE

  • ك InnoDB لإدراج سجل صف جديد، حفظ رقم إصدار نظام الحالي حيث وصل عدد نسخة من الخط، في نفس الوقت، حفظ الحالي رقم إصدار نظام لحذف الصف الأصلي كمعرف التوالي.

اقرأ هنا، قد يكون هناك سؤال، والنظر في تسلسل التنفيذ التالية:

011.png

تحديد وفقا للقواعد السابقة، جلسة المعاملات B على الجزء الخلفي من الدورة A، B ثم هو أكبر من عدد نسخة من المعاملة معاملة A هو رقم الإصدار. وإدراج ذلك في البيانات في حالة غير ملتزم، يمكن قراءة B A البيانات المعدلة، وأنه لا يتعارض ذلك؟

في الواقع لم يكن كذلك، يتم تحديد ك InnoDB من وجهة النظر للقراءة قاعدة بيانات لقطة التناسق عند القراءة، ك InnoDB هي وجهة للقراءة إلى تحديد ما إذا كان سجل لنرى، وهناك نوعان من القواعد:

 1 لا ترى وجهة النظر للقراءة إنشاؤها في وقت لاحق يبدأ وقت المعاملة

 (2) انظر نشط عند إنشاء المعاملة لا يمكن قراءة عرض

لدورة A، تبدأ ولم إنشاء طريقة عرض القراءة عند هذه الصفقة، ولكن تم إنشاؤه في بيان التحديث. لذلك عرض للقراءة الدورة زمن خلق من أواخر الدورة ب. لذلك سوف B لا يرى تشغيل A. وبالتالي منع قراءة غير قابلة للتكرار.

ووصفت الأصلية القاعدتين أدناه:

  المادة 1:  عندما يتم إنشاء الكائن عرض القراءة وتلاحظ أسفل معرف المعاملة أصغر التي لم يتم استخدامها بعد كمعرف الصفقة (trx_sys_t :: max_trx_id). ونظرا للقراءة يسمونها الحد منخفضة، وبالتالي فإن الصفقة باستخدام طريقة العرض القراءة يجب أن لا نرى أي الصفقة مع أكبر المعرف من أو يساوي إلى هذا الحد المنخفض.

المادة 2:  الصفقة باستخدام طريقة العرض للقراءة يجب أن لا نرى المعاملات التي كانت نشطة عندما تم إنشاء عرض للقراءة.

ملاحظة: إذا قمت بذلك قد تم حذفه لا سجل التراجع، وسوف دحر التراجع من قبل مؤشر السجل الحالي إلى المحتوى الأصلي عند إنشاء الخط، هناك المواضيع تطهير لحسن الحظ، في ك InnoDB، فإنه يستعلم أقدم من تلك مما هو عليه الآن أيضا المعاملات النشطة في وقت مبكر التراجع السجل، وحذفها، وبالتالي ضمان وملف سجل التراجع لا تنمو إلى أجل غير مسمى.

الكاتب: نسعى شمال صغير

الرابط: الشبكي: //www.jianshu.com/p/9b83ea78b380

يمكنك انتزاع لي تفقد العد! سوار الدخن 3 تفاصيل التعرض الصفحة: السعر 169 يوان

وقد بدا هذا خمس مدارس بازدراء بسبب الاسم، وقوة غير عادية

لا تلتصق على نافذة "الذهاب أمين" لل! ولكنه سوف يكون على ما يرام

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

تعلم أساسيات إنجن إكس

ممن لهم لديك قلب في البكاء! هواوي الحرارة فرك: نحن "ديزي الإنسان"

عنوان JKL المطلوبين أو جلده! رئيس الحي وبطل كشفت الرسائل الجلد مزدوجة

الأبيض يجب أن انظر: الشبكات العصبية الابتداء دليل

هو جين تاو مي عمل جديد "في العاصمة" ملف معين مايو 10 ماي لي فو دالونج لاول مرة مذهلة

صباح القراءة | متعددة الجنسيات بوينغ 737MAX8 أن وقفة الدعوة

يأتي الشيطان الحية! اندلعت النار من قبل MVP لاعب والفم يا Theshy؟

مهزوم س NIKE مشتركة أيضا إخفاء منتج واحد! بالإضافة إلى شراء الهواء ماكس 97 ضرورة إيلاء اهتمام خاص!