كيف يقوم Dolt بتخزين بيانات الجدول

يعد Dolt هو Git للبيانات. إنها قاعدة بيانات SQL تتيح لك استنساخ بياناتك وفرعها وفرقها ودمجها وتقسيمها كما يمكنك باستخدام شجرة نظام ملفات في Git. يستكشف منشور المدونة هذا أحد هياكل البيانات الأساسية التي تدعم تنفيذ Dolt لجداول SQL.

ماذا نحتاج

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

يجب توجيه قيمة بطاقة معينة إلى المحتوى.

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

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

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

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

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

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

غالبًا ما تستخدم قواعد بيانات SQL الأشجار B ، أو أشكال مختلفة منها ، لتنفيذ الفهارس المرتبة. في بعض قواعد البيانات ، tuples a ...

كيف يقوم Dolt بتخزين بيانات الجدول

يعد Dolt هو Git للبيانات. إنها قاعدة بيانات SQL تتيح لك استنساخ بياناتك وفرعها وفرقها ودمجها وتقسيمها كما يمكنك باستخدام شجرة نظام ملفات في Git. يستكشف منشور المدونة هذا أحد هياكل البيانات الأساسية التي تدعم تنفيذ Dolt لجداول SQL.

ماذا نحتاج

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

يجب توجيه قيمة بطاقة معينة إلى المحتوى.

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

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

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

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

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

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

غالبًا ما تستخدم قواعد بيانات SQL الأشجار B ، أو أشكال مختلفة منها ، لتنفيذ الفهارس المرتبة. في بعض قواعد البيانات ، tuples a ...

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow