Globals عبارة عن سيوف كنز لتخزين البيانات. الأشجار. الجزء 1

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

إذا استخدمت الكرة العالمية في حل تلك المشكلات التي تجيدها حقًا، فيمكنك تحقيق نتائج رائعة. إما في الإنتاجية أو في تبسيط حل المشكلة (1, 2).

تعد Globals طريقة خاصة لتخزين البيانات ومعالجتها، وهي مختلفة تمامًا عن الجداول في SQL. ظهرت في عام 1966 باللغة م (UMPS) (التطور التدريجي - كائن التخزين المؤقت، والمشار إليها فيما بعد بـ COS) في قاعدة البيانات الطبية ولا تزال موجودة تستخدم بنشاط، وتغلغلت أيضًا في بعض المجالات الأخرى التي تتطلب الموثوقية والأداء العالي: التمويل والتداول وما إلى ذلك.

تدعم Globals في أنظمة إدارة قواعد البيانات الحديثة المعاملات والتسجيل والنسخ المتماثل والتقسيم. أولئك. ويمكن استخدامها لبناء أنظمة حديثة وموثوقة وموزعة وسريعة.

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

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

2. كيف تعمل العوالم

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

وببساطة، فإن المصفوفة العالمية هي مصفوفة مستمرة. مصفوفة يتم حفظها تلقائيًا على القرص.
من الصعب تخيل شيء أبسط لتخزين البيانات. في الكود (في لغات COS/M) يختلف عن المصفوفة النقابية العادية فقط في الرمز ^ قبل الاسم.

لحفظ البيانات بشكل عالمي، لا تحتاج إلى تعلم لغة استعلام SQL، وأوامر العمل معهم بسيطة للغاية. يمكن تعلمها في ساعة واحدة.

لنبدأ بأبسط مثال. شجرة ذات مستوى واحد لها فرعين. الأمثلة مكتوبة في COS.

Globals عبارة عن سيوف كنز لتخزين البيانات. الأشجار. الجزء 1

Set ^a("+7926X") = "John Sidorov"
Set ^a("+7916Y") = "Sergey Smith"



عند إدراج معلومات في أمر عام (Set)، تحدث 3 أشياء تلقائيًا:

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

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

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

Globals عبارة عن سيوف كنز لتخزين البيانات. الأشجار. الجزء 1

  • أكبر قوة في الكرات العالمية هي السرعة التي يمكن بها إدراج العقد الجديدة.
  • تتم دائمًا فهرسة البيانات الموجودة على المستوى العالمي. إن عبورها، سواء على مستوى واحد أو في عمق الشجرة، يكون دائمًا سريعًا.

دعونا نضيف بضعة فروع أخرى من المستويين الثاني والثالث إلى المستوى العالمي.

Set ^a("+7926X", "city") = "Moscow"
Set ^a("+7926X", "city", "street") = "Req Square"
Set ^a("+7926X", "age") = 25
Set ^a("+7916Y", "city") = "London"
Set ^a("+7916Y", "city", "street") = "Baker Street"
Set ^a("+7916Y", "age") = 36

Globals عبارة عن سيوف كنز لتخزين البيانات. الأشجار. الجزء 1

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

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

نقطة أخرى مثيرة للاهتمام. يمكنك بناء شجرة دون تحديد قيم عقد المستويات العليا.

Globals عبارة عن سيوف كنز لتخزين البيانات. الأشجار. الجزء 1

Set ^b("a", "b", "c", "d") = 1
Set ^b("a", "b", "c", "e") = 2
Set ^b("a", "b", "f", "g") = 3

الدوائر الفارغة هي العقد التي ليس لها قيمة معينة.

من أجل فهم Globals بشكل أفضل، دعونا نقارنها بالأشجار الأخرى: أشجار الحدائق وأشجار أسماء نظام الملفات.

دعونا نقارن الأشجار على الكرات العالمية مع الهياكل الهرمية الأكثر شيوعًا لدينا: مع الأشجار العادية التي تنمو في الحدائق والحقول، وكذلك مع أنظمة الملفات.

Globals عبارة عن سيوف كنز لتخزين البيانات. الأشجار. الجزء 1

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

وهنا بنية البيانات العالمية.

Globals عبارة عن سيوف كنز لتخزين البيانات. الأشجار. الجزء 1الاختلافات:

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



فيما يتعلق بالعقد الداخلية، يمكننا القول أن البنية العالمية هي مجموعة شاملة من بنية أشجار الأسماء في أنظمة الملفات وأشجار الحدائق. أولئك. أكثر مرونة.

بشكل عام، العالمية شجرة مرتبة مع القدرة على تخزين البيانات في كل عقدة.

لفهم عمل العوالم بشكل أفضل، تخيل ماذا سيحدث إذا استخدم منشئو أنظمة الملفات أسلوبًا مشابهًا للعوالم العالمية لتخزين المعلومات؟

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

    Globals عبارة عن سيوف كنز لتخزين البيانات. الأشجار. الجزء 1

  3. قد لا تكون هناك حاجة لأشياء مثل ملفات README.txt. كل ما يجب قوله عن محتويات الدليل يمكن كتابته في ملف الدليل نفسه. في مساحة المسار، لا يمكن تمييز اسم الملف عن اسم الدليل، لذلك كان من الممكن التعامل مع الملفات فقط.
  4. ستزداد سرعة حذف الدلائل ذات الدلائل الفرعية والملفات المتداخلة بشكل كبير. في كثير من الأحيان كانت هناك مقالات على حبري حول المدة التي يستغرقها حذف ملايين الملفات الصغيرة وصعوبة ذلك (1, 2). ومع ذلك، إذا قمت بإنشاء نظام ملفات زائف على شبكة عالمية، فسيستغرق الأمر ثوانٍ أو أجزاء منها. عندما اختبرت حذف الأشجار الفرعية على جهاز كمبيوتر منزلي، تمت إزالة 1-96 مليون عقدة من شجرة ذات مستويين على محرك أقراص ثابتة (وليس SSD) في ثانية واحدة. علاوة على ذلك، نحن نتحدث عن حذف جزء من الشجرة، وليس فقط الملف بأكمله الذي يحتوي على العناصر العالمية.

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

في شجرتنا يمكن القيام بذلك باستخدام الأمر قتل.

Kill ^a("+7926X")

Globals عبارة عن سيوف كنز لتخزين البيانات. الأشجار. الجزء 1

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

الأوامر والوظائف الأساسية للعمل مع العناصر العالمية في COS

المجموعات
تعيين الفروع على العقدة (إذا لم يتم تحديدها بعد) وقيم العقدة

دمج
نسخ شجرة فرعية

قتل
إزالة شجرة فرعية

زي كيل
حذف قيمة عقدة معينة. لم يتم لمس الشجرة الفرعية الخارجة من العقدة

استعلام $
اجتياز الشجرة بالكامل، والتعمق في الشجرة

طلب $
اجتياز فروع عقدة معينة

بيانات $
التحقق مما إذا تم تعريف العقدة

زيادة $
زيادة قيمة العقدة ذريًا. لتجنب القيام بالقراءة والكتابة، لـ ACID. وقد أوصي مؤخرًا بالتغيير إلى تسلسل $

شكرا لاهتمامكم، ونحن على استعداد للإجابة على أسئلتكم.

إخلاء المسئولية: هذه المقالة وتعليقاتي عليها هي رأيي ولا تمثل الموقف الرسمي لشركة InterSystems Corporation.

تمديد Globals عبارة عن سيوف كنز لتخزين البيانات. الأشجار. الجزء 2. سوف تتعرف على أنواع البيانات التي يمكن عرضها على الكرات العالمية والمهام التي توفر أقصى فائدة.

المصدر: www.habr.com

إضافة تعليق