كود المصدر لتقديم ورقة ICDE 2023: "فهرسة البيانات القريبة من الفرز"
يحتوي المستودع على الكود المصدري لتطبيقات B+tree وSWARE. في الإصدار الحالي من التعليمات البرمجية، يكون كلا التطبيقين عامًا، لكن ملفات التطبيق التي تختبر بنيات بيانات الفهرس هذه تدعم فقط نوع البيانات الصحيحة. كما تستخدم ملفات التطبيق نفس القيمة لكل من المفتاح وقيمة كل إدخال. ستدعم الامتدادات المستقبلية للكود أنواع بيانات أكبر.
تتطلب كلا بنيتي البيانات تخصيص تجمع المخزن المؤقت أثناء تشغيل التعليمات البرمجية، والتي يمكن توسيعها إلى المقدار المطلوب إذا لزم الأمر للتشغيل بالكامل في الذاكرة. يتم تخصيص تجمع المخزن المؤقت من حيث عدد الكتل حيث يبلغ حجم كل كتلة 4 كيلو بايت. على سبيل المثال، إذا كنت تستخدم تخصيص كتل بحجم 1 مليون، فإنك تقوم بتخصيص 1M*4KB = 4GB من الذاكرة لبنية بيانات الشجرة.
تتطلب SA B+-tree أيضًا عدد الإدخالات التي يمكن أن يحتفظ بها المخزن المؤقت في الذاكرة أثناء تنفيذ البرنامج، بالإضافة إلى عامل التعبئة الذي يجب الحفاظ عليه أثناء التحميل المجمع. كل إدخال هو زوج من القيمة الرئيسية.
استخدم منشئ بيانات الفرز من هذا الريبو: https://github.com/BU-DiSC/bods لإنشاء مفاتيح العرض (يمكن تحديد حجم الحمولة = 0 لإنشاء المفاتيح فقط). كما ذكر أعلاه، تستخدم ملفات التطبيق نفس القيمة لكل من المفتاح وقيمة كل إدخال (زوج K،V). لاحظ المسار إلى عبء العمل الذي تم إنشاؤه.
./ test_base_index < ingestion_workload_path > < output_file_name > < buffer_pool_allocation > < K > < L > < #. queries >
على سبيل المثال، يمكنك استخدام:
./ test_base_index createdata_1000000 - elems_100000 - K_100000 - L_1seed1632764083 . dat sample . txt 1000000 100000 100000 200000
نحن هنا نستوعب عبء عمل مكون من مليون إدخال/مفاتيح بقيمة K=L=100,000. نحن نستخدم ذاكرة تخزين مؤقت للتجمّع المؤقت لعدد مليون كتلة ونقوم بتنفيذ 200000 استعلام نقطة. تتم كتابة زمن استجابة الإخراج لكل من استعلامات العرض والنقطة إلى "sample.txt".
./ test_satree < ingestion_workload_path > < output_file_name > < buffer_pool_allocation > < K > < L > < #. entries > < swareBuffer allocation > < fill factor % > < #. queries >
على سبيل المثال، يمكنك استخدام:
/ test_satree createdata_1000000 - elems_10 - K_10 - L_1seed1632764083 . dat swaresample . txt 1000000 10 10 1000000 10000 95 200000
نحن هنا نستوعب عبء عمل مكون من مليون إدخال/مفتاح مع K=L=100,000 (10% من إجمالي الإدخالات). نحن نستخدم ذاكرة تخزين مؤقت للتجمّع المؤقت لعدد مليون كتلة ونقوم بتنفيذ 200000 استعلام نقطة. تتم كتابة زمن استجابة الإخراج لكل من استعلامات الاستقبال والنقطة إلى "swaresample.txt". سيحتوي المخزن المؤقت في الذاكرة على 10000 إدخال (1% من 1 مليون) ونحتفظ بعامل تعبئة يبلغ 95%.