تكنولوجيا التخزين وجوه لممارسة الصناعية من البيانات الكبيرة

المصدر: كونلون البيانات K2Data

ما هو تخزين الكائن

يشير تخزين الكائن عموما إلى خدمات التخزين للبيانات "الكائن" (كائن) في شكل من أشكال التنظيم. إشارات على ويكيبيديا التعاريف الواردة أدناه:

تخزين الكائن (المعروف أيضا باسم تخزين الكائن مقرها ) هي بنية ذاكرة التي تدير البيانات ككائنات، بدلا من أبنية تخزين أخرى مثل أنظمة الملفات التي تدير البيانات والتسلسل الهرمي الملف، وتخزين كتلة التي تدير البيانات كما هو الكتل داخل القطاعات والمسارات

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

تعريف تخزين كائن لا يحدد نموذج البيانات، لكننا عموما استخدام تطبيق هيكل + + بيانات رئيسية من البيانات الوصفية لوصف كائن (كما هو موضح أعلاه) حيث:

  • مفاتيح جوه: لتحديد فريد معرف الكائن؛
  • بيانات: كائن البيانات نفسها، وعادة ما يكون ملف، مثل صورة أو ملف فيديو، وهلم جرا؛
  • البيانات الوصفية (الفوقية): وهناك مجموعة منظم من البيانات التي تصف كائن، ودعا الفوقية، وعادة المخزنة كقيمة أساسية؛

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

تحليل الكائن الوضع التخزين

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

  • AWS S3

AWS هي الخدمات السحابية العامة الأمازون، S3 هو خدمة التخزين موضوعها. كل كائن له الأمازون S3 مفتاح، البيانات والبيانات الفوقية، بما يتفق مع المفاهيم وصفها. في S3، وأعرب عن المفتاح كما هو دليل نظام الملفات التسلسل الهرمي مماثل، على سبيل المثال:

صور / الأسرة / 2019 / a.jpgDocs / العمل / b.doc

يبدو مسار نظام الملفات يونكس، ولكن هناك فرق واحد، وأنه هو اسم دلو لبدء (مثل أعلاه صور ومستندات هو اسم للبرميل)، بدلا من نظام الملفات يونكس في "/" الدليل الجذر. التسلسل الهرمي للنظام الملفات سهل الاستعمال بطريقة مماثلة لتنظيم كائنات البيانات، يمكن للمستخدمين حتى خلق "مجلد". بالطبع، هذه المجلدات فقط على تصميم التفاعل، ولكن في واقع الأمر مجرد سلسلة من التسلسل الهرمي الرئيسيين.

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

بالنسبة لبعض هيكلة (أو شبه منظمة) البيانات، مثل CSV، شكل JSON أو النيابة العامة، ودعا S3 S3 حدد وظيفة دعم. S3 حدد لذلك يمكن للمستخدمين استخدام SQL للحصول على وجوه، على سبيل المثال:

s._1 SELECT، s._2 من S3Object ق WHERE s._3 >  100

اثنين المقابلة لاستخراج قبل من صيغة CSV S3Object هذا الموضوع، وتحتاج أيضا إلى تلبية شرط العمود الثالث أكبر من 100.

AWS S3 هي واحدة من الخدمات الأساسية، وإدخال حقبة سابقة، كانت خدمة تخزين الكائن اللاحقة لها تأثير عميق. الصين الغيوم تينسنت علي وظائف سحابة OSS COS وS3 هي قريبة، أوبن ستاك سويفت هي خدمة تخزين الكائن مفتوحة المصدر، والتي تعمل على نحو مماثل S3. من حيث تناسق البيانات، S3، سويفت وCOS دعم الاتساق في نهاية المطاف، وتقديم الدعم OSS الاتساق قوي.

  • أزور النقطة التخزين

مايكروسوفت أزور النقطة هو كائن لتوفير حلول التخزين السحابية العامة. AWS S3 وأزور النقطة باستخدام نموذج بيانات مماثلة، في حين أن بعض الصقل على تطبيق السيناريو. تخزين أزور النقطة يدعم ثلاثة سيناريوهات:

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

تم تنقيح أزور النقطة بالإضافة إلى الوصول إلى الملف المشهد، ولكن يدعم أيضا أزور بحث لإنشاء فهرس بيانات كائن (أزور البحث هو مايكروسوفت الخدمات السحابية العامة أطلقت خدمة المؤشر العام). يمكن أن أزور طلبات بحث استخدام الملفات المخزنة في أزور النقطة والوصول إلى البيانات وفقا لمعايير البحث. تدعم حاليا فهرسة من تنسيقات الملفات، بما في ذلك PDF، مستندات Office، ملفات نصية، JSON، CSV، وهلم جرا. إذا تغير البيانات المفهرسة، أزور البحث يدعم مؤشر تدريجي. حتى بالمقارنة مع الدعم AWS S3، أزور النقطة وصول أكثر مرونة. أزور النقطة تدعم تناسق البيانات قوي.

  • سحابة التخزين جوجل

جوجل سحابة التخزين هو خدمة جوجل للتخزين الكائن، نموذج البيانات الخاصة به وAWS S3 وبالمثل، ليس هناك مشهد انهيار أزور النقطة تخزين البيانات. وأزور النقطة يشبه سحابة التخزين جوجل تدعم استخدام الاستعلام الشامل الفهرسة والاستعلام، وبعض من أنواع البيانات الدعم الرئيسي منظم، مثل CSV، JSON، أفرو وهلم جرا. تدعم بيانات Google سحابة التخزين الاتساق في نهاية المطاف.

  • ملخص الوضع

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

الاعتراض تصميم التخزين

  • تخزين كائن من السيناريو الطلب الصناعي

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

النظر في السيناريو محددة، ونحن نفترض أن توربينات الرياح سجل خطأ ملف 10000 تنتج، ونحن نأمل أنه من خلال تحليل كثير من الأحيان الإجابة:

  • تردد من أنواع مختلفة من فشل مروحة هي نفسها؟
  • تكرار فشل إنتاج دفعات مختلفة من نفس نموذج مروحة يحدث؟
  • مع أنواع معينة من المشجعين نشأت تغييرات التوقيت في معدل فشلها؟
  • ما هي خصائص مروحة عطل مناطق جغرافية مختلفة؟
  • توزيع أنواع مختلفة من الفشل؟

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

  • = + بيانات كائن نموذج البيانات الفوقية

أولا، نرى نموذجا أكثر ملاءمة لاسترداد كائن البيانات، فقد وصفها بأنها FIG.

بشكل عام يعمل نموذج بيانات الكائن الفوقية فقط لتكملة، ولكن هدفنا في نموذج البيانات:

مفتاح الهدف Metamodel = + + ملحق مؤشر البيانات والمعلومات العامة +

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

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

حيث:

  • = كائن مفتاح توربينات الرياح معرف معرف +
  • = وقت محتوى مخصص نوع تسجيل الاحداثيات كود + + + خطأ
  • معلومات عامة مكون = حجم +

مؤشرات البيانات لتخزين الموقف من بيانات تسجيل الهدف، إذا كانت البيانات المخزنة الكائن في نظام ملفات معين، على سبيل المثال HDFS، ثم شكل المؤشر قد تكون hdfs: // nameservice1: منفذ / مسار / إلى / البيانات، لذلك من الناحية النظرية يمكن أن تكون البيانات وجوه تخزينها في أي نظام.

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

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

  • بنية النظام

نحن نعطي إشارة وبناء على هذا القانون HDFS وElasticsearch، بنية النظام كما هو مبين في الشكل. القراءة وطلب الكتابة للمستخدم عن طريق تحميل موازن لتوزيع محطة الخادم REST محددة؛ الحذف تتغير تنفيذ منطق الاختيار تشغيل الكائنات في REST المخزنة في الخدمة؛ دعوة لمنطق التشغيل على أساس تكوين الخدمات الأساسية. ثلاثة تخزين الكامنة وراء العمل هم:

  • الخلية تعريف المخطط لتخزين الأشياء الفوقية.
  • Elasticsearch الفوقية لتخزين واسترجاع الأشياء.
  • HDFS لتخزين البيانات الكائن؛

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

المستخدمين عموما سيناريوهات استخدام هي:

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

هو مكتوب 2. البيانات: REST واجهة المستخدم استدعاء الكتابة كائن، يتألف مكتوبة جزأين، أي البيانات الفوقية والكائن في كل مرة. إذا وفقط إذا كانت البيانات الفوقية والكائن بعد الانتهاء من الكتابة عملية الكتابة الأولى لا يستطيعون العودة بنجاح للمستخدم.

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

4. استرجاع البيانات ونصها كما يلي: يمكن للمستخدم استرجاع نوع كائن من بيانات التعريف الكائن في الأعمدة، للحصول على مجموعة من البيانات الوصفية إلى قائمة المستحقين. منذ الفوقية يحتوي على مؤشر لافتا إلى بيانات الكائن، الكائن يمكن قراءة في المعاملات اللاحقة؛

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

  • تقنيات 1: عملية الكتابة الذرية

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

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

لتحقيق الهدف المذكور أعلاه، كائن العملية كما هو موضح أدناه:

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

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

نحن هنا النظر في عملية لإزالة، كما هو مبين أدناه:

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

تحديث كائن يمكن تقسيمها إلى حالتين:

  • بتحديث محتوى الفوقية كائن مخصص فقط؛
  • بيانات الكائن التحديث، وهو ما يعني عادة أن البيانات الوصفية تتغير، مثل حجم البيانات الإحصائية.

في الحالة الأولى، وتعتمد عملية التحديث الذرية فقط على دعم Elasticsearch تحديث الذري، أي اهتمام إضافي. الحالة الأخيرة هي مماثلة لكائن العملية مكتوبة ثلاث خطوات:

  • خطوة 1: نسخ البيانات وجوه جديدة إلى مخازن الكائن؛
  • خطوة 2: تحديث الهدف البيانات الوصفية للمحتوى، والفوقية في مؤشر البيانات إلى بيانات كائن جديد (هذه الخطوة هي نفسها الذري)؛
  • الخطوة 3: حذف بيانات الكائن الأصلي إلى مساحة واضحة.

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

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

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

  • تقنيات 2: حل النزاعات الكتابة

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

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

  • نقطة الفني 3: مناقشة الاتساق

من المناقشة السابقة من عمليات الذرية، يمكننا أن نرى اتساق خدمة تخزين الكائن هو في الواقع قرار تقسيم من قبل الفوقية المخزنة. وهذا هو، إذا يمكننا أن نفعل التعريف المخزنة الاتساق قوية، ثم الهدف من ذلك هو الاتساق قوي من الخدمة. نحن نستخدم Elasticsearch إلى التعريف المخزن، حتى هنا Elasticsearch ضرورة مناقشة قضية التوافق. Elasticsearch الاتساق كان هناك عدم وضوح (راجع https://www.elastic.co/guide/en/elasticsearch/resiliency/current/index.html)، جنبا إلى جنب مع تصاعد نسخة، فريق التطوير في محاولة للحد من بعض المشاكل المعروفة .

بصفة عامة من Elasticsearch يجب أن تنتمي إلى الاتفاق النهائي (الاتساق في نهاية المطاف)، ولكن يمكن أن يكون لها "وثيقة" التوافق قوي من السلوك من قبل بعض التعديلات. علينا أن نعدل تكوين Elasticsearch ما يلي:

  • تفضيلي قراءة البيانات من العقدة الأولية؛
  • عدد العقد في المجموعة بشكل فعال في عملية الكتابة ليست أقل من ن / 2، حيث n يمثل حجم الكتلة Elasticsearch.
  • عقد نظام المجموعة النشطة إذا كانت أقل من ن توقف / 2 الخدمات الخارجية؛
  • تحديث تطبيق العملية قبل قراءة البيانات، تأكد من قراءة قبل حدث عملية كتابة خارج مرئية.

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

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

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

  • تقنيات 4: ملفات دمج

غالبا ما تحتاج خدمات التخزين الكائن إلى تخزين كميات كبيرة من البيانات وجوه، وسوف يتم تخزين هذه البيانات في نظام الملفات الأساسية كملف. إذا كان هناك عدد كبير من الملفات الصغيرة، قد يؤدي نظام الملفات إلى انخفاض الكفاءة. على سبيل المثال، في HDFS، حجم كل كتلة بشكل عام 64M (أو 128M)، وهي واحدة المقابلة من كتلة inode، أي ذاكرة تسجيل Namenode HDFS. حتى ذلك الحين ملف صغير، في HDFS لا تزال تحتل inode واحدة، حتى أن عددا كبيرا من الملفات الصغيرة سيجلب Namenode ضغط الذاكرة. اذا كنا نستطيع دمج الملفات الصغيرة إلى ملفات كبيرة، يمكنك تقليل إشغال الملفات الكائن inode، وبالتالي تخفيف الضغط على الذاكرة، وهذا هو نقطة الانطلاق لدمج الملفات. إذا كان نظام الملفات الأساسي ليس لينكس ولكن ملف HDFS رقم النظام inode المحلي حد معين، وسوف تكون هناك مشكلة المقابلة.

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

...، (8: 00،9: 00>، (9: 00،10: 00> ...

على فترات (8: 00،9: 00> على سبيل المثال، تقع في هذه المرة إنشاء كائن سيتم دمج البيانات الفاصل الزمني لكافة الكائنات في ملف واحد كبير، الفوقية في نقاط المؤشر إلى جزء من ملف كبير، ومحددة وتشمل:

  • اسم الملف كبير من الملفات؛
  • أوفست في ملف بيانات كائن كبير من.
  • طول البيانات المستهدفة؛

المعلومات الواردة أعلاه الثلاث، يمكننا قراءة البيانات المطابقة من ملف كائن كبير. استغرق الاندماج ملف المكان بعد أن تم كتابة الكائن خدمات الكائن، كما هو الحال في المثال أعلاه (8: 00،9: 00> توحيد البيانات ضمن فترة زمنية معينة يحدث بعد 9:00، و يجب أن تكون عمليات دمج ملف شفافا بالنسبة للمستخدم . وبعبارة أخرى، فإن عملية الاندماج وثيقة، يجب على المستخدم لا ينظرون يتم الجمع بين بيانات كائن الأساسية، وسوف عملية مشتركة لن يؤثر على عملية الكتابة للمستخدم. تحقيقا لهذه الغاية، وتشمل الخطوات مجتمعة:

  • خطوة 1: ملفات صغيرة المراد دمجها في ملف واحد كبير.
  • خطوة 2: يتم دمج كافة الكائنات بتحديث بالتتابع من البيانات الوصفية، لذلك أن جزءا كبيرا من المؤشر إلى الملف؛
  • الخطوة 3: وقد تم الجمع بين ملفات صغيرة الحذف إلى الفضاء تنظيف.

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

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

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

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

ملخص

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

- انتهى -

تسينغهوا الانتباه - بيانات أكاديمية تشينغداو للعلوم قناة الصغرى الرسمية منصة الجمهور " بيانات الإرسال THU "أيتها الأخوات ولا". إرسال البيانات THU "لرعاية المزيد من المحاضرات ونوعية المحتوى.

المناطق المتضررة عاصفة رملية بكين تتحكم بدقة "القفار القبو" واحة السابقة

البيانات الكبيرة @ لك! "ضربة مضاعفة" ترقية من أبرز هنا

منغوليا السهوب جمال الصيف

رحلة القطار أول شخص!

"أرجل سميكة ليتل" في الصيف كيفية ارتداء الحجاب بشكل ملحوظ رقيقة الساقين؟ اختيارك ليس اللباس فقط

التقارب الشباب للحفاظ بنجاح هذه العادات جيدة الأهم

كبار السنة، دعونا التوصل إلى ذكريات المدرسة

شارع Hanting منطقة العليا في نجاح الدورة الثانية من البطيخ تذوق الجمعية العامة

200+ البريدية الأسلحة النارية! فوجيان خمسة رجال "البنادق الأمريكية" لل

مع 160،000 النقدية لسداد المحكمة لابنه، والآباء القدامى لديهم طلب واحد فقط: مواصلة اعتقال أرسلت!

TENGZHOU انظر زراعة الحقول الصيف

رد: ديلي شجرة هيرت في النهاية لا يمكن أن يكون تحت