RocksDB: قاعدة بيانات NoSQL للأداء العالي وقابلية التوسع

نشرت: 2022-11-19

RocksDB هي قاعدة بيانات NoSQL شائعة تستخدمها العديد من الشركات نظرًا لأدائها العالي وقابليتها للتوسع. إنه مشروع مفتوح المصدر بدأه Facebook ويديره الآن مجتمع من المطورين. يستخدم RocksDB بنية بيانات شجرة دمج السجلات (LSM) التي تجعلها فعالة لأحمال العمل الشاقة في الكتابة.

بعد استخدام قاعدة الأريكة لأكثر من أربع سنوات ، انتقلنا إلى MongoDB وسعدنا بكيفية ظهورها. كانت تجربة Couchbase مروعة ، على الرغم من حقيقة أننا تلقينا دعمًا من المؤسسة بالإضافة إلى إدراجنا على المنصة. لجعلها تعمل ، ستحتاج إلى ستة خوادم على الأقل في المجموع. للإنتاج ، هناك ستة خوادم فقط سيتم بناؤها. تتم معالجة ذاكرة التخزين المؤقت في الذاكرة بواسطة مثيل Memcached أصغر على مثيل Couchbase. يستهلك هذا البرنامج 8 جيجا بايت من ذاكرة الوصول العشوائي ، والتي يمكن أن تخدم 5000 مستند. الحقيقة ليست في غير محلها. كان هناك أقل من 5000 مستند على مثيل Couchbase وأقل من 20 فهرسًا ، وكان استهلاك الذاكرة للمثيل دائمًا أكثر من 8 جيجابايت.

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

عندما قاموا ببناء نسخة Cassandra الخاصة بهم ، قاموا بتضمين محرك تخزين RocksDB ، المعروف أيضًا باسم Rocksandra. لقد غيّرنا بشكل كبير طريقة تفكيرنا في تخزين Cassandra مع الحفاظ أيضًا على تنسيق الشبكات والعقد الخاص بها سليمًا.

هل Rocksdb قاعدة بيانات في الذاكرة؟

ملكية الصورة تعود إلى: github

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

يمكن أن يؤدي مكون واحد أو أكثر في RocksDB إلى استخدام مفرط للذاكرة. عند استدعاء GetUsage () على كائن ذاكرة التخزين المؤقت للكتلة في MongoRocks ، يمكنك تحديد حجم ذاكرة التخزين المؤقت للكتلة. عندما يتم تقليل حجم ذاكرة التخزين المؤقت للكتل ، سيتم تخزين المزيد من البيانات مؤقتًا ، حيث لن يزيد الإدخال / الإخراج. على الرغم من أن استخدام وحدة المعالجة المركزية قد لا يرتفع نتيجة لحاجة RocksDB لفك ضغط الصفحات التي تقرأها من ذاكرة التخزين المؤقت للصفحة ، إلا أنها قد ترتفع. تُستخدم كتل الفهرس وكتل مرشح bloom بشكل شائع لشرح الاختلاف. في MongoRocks ، يمكنك إعداد ذاكرة تخزين مؤقت للكتل من خلال تخصيص ميزانية الذاكرة لجداول الذاكرة. عندما يتعلق الأمر بحساب استخدام الذاكرة للكتل المثبتة ، يكون الأمر بسيطًا. يمكن التحكم في حجم L1 عن طريق إضافة أو طرح البايت للمستوى الأساسي. عندما يكون لديك 100 كيلو من معاملات القراءة تجري في نفس الوقت ، فقد يتسبب ذلك في تباطؤ الذاكرة.

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

لماذا Rocksdb هو أفضل متجر ذي قيمة رئيسية

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

كيف يختلف Rocksdb عن Redis؟

ملكية الصورة تعود إلى: githubusercontent

حالة الاستخدام الرئيسية لـ Redis هي الذاكرة ، على الرغم من أنه يمكنها أيضًا نسخ البيانات احتياطيًا للتخزين الدائم والحساب في الذاكرة إذا لزم الأمر. في معظم الحالات ، يتم استخدام RocksDB لاستمرار البيانات الثابتة ، وفي كثير من الحالات ، يتم تخزين البيانات على وسيط ثابت.

ما هي مزايا Redis مقابل RocksDB؟ مخزن البيانات Redis هو تخزين افتراضي في الذاكرة مشابه لـ Memcached. يتيح لك متجر المفتاح / القيمة المضمّن في RocksDB قراءة أشجار الدمج متعددة مؤشرات الترابط والسجلات. نظرًا لأن Redis فعال للغاية وقابل للتطوير (باستثناء وحدة المعالجة المركزية) ، فلا توجد حدود على حجمه. على الرغم من أن Redis يبدو أسرع ، فإن نقطة OP هي أنه ، كما يقول ، لا تحتاج مجموعات البيانات الخاصة بك إلى أن تكون محدودة بمقدار الذاكرة المتوفرة في تطبيقك. في بعض الحالات ، يمكنك استخدام LedisDB ومكتبة عميل Redis نفسها لاستبدال Redis ، وهو ما يمثل قطرة في الدلو تقريبًا.

هل يتم توزيع Rocksdb؟

RocksDB هي قاعدة بيانات موزعة تتيح القياس الأفقي للتخزين والأداء. إنه مصمم لتوفير مستوى عالٍ من التوافر والأداء باستخدام نموذج نشر بسيط.

يعتمد متجر قيمة المفتاح ChakrDB (KVS) على RocksDB وهو مناسب للبيتابايت إلى عشرات من موازين تيرابايت. يتم استخدام العمارة القائمة على العقدة (vNodes) لتقسيم ChakrDB. تدعم vNodes كلاً من وحدات التخزين المستندة إلى نظام الملفات ext4 والتي تم إنشاؤها بواسطة تكوينات نظام الملفات الداخلية Kubernetes و Nutanix BlockStore. يعد RocksDB ، وهو KVS يعتمد على أشجار الدمج المهيكلة (LSM) ، هو البرنامج وراء ChakrDB. تعمل بنية بيانات LSM بشكل جيد مع أجهزة NVMe وكذلك محركات أقراص الحالة الصلبة. يمكن تشغيل ChakrDB على مجموعة متنوعة من الأقراص والأجهزة الافتراضية وفي Azure باستخدام Kubernetes. نظرًا لأنه يتم وضعه في حاويات ، يمكن تشغيل برنامج ChakrDB المعبأ في حاويات على أي بيئة K8s في Pod.

يمكن استضافة النظام الأساسي على خدمة التخزين الموزع في Nutanix (إما Azure أو AWS) أو أي مزود خدمة تخزين سحابي. مدير مجموعة Chakr هو المسؤول عن كل حركة مرور طائرات التحكم في المجموعة. الغرض من chharDB هو توفير الأداء والحجم. باستخدام vNode ، يقوم بإنشاء بنية تجزئة توزع الإدخال / الإخراج عبر مثيلات RocksDB متعددة لتحسين التوازي وإنتاجية الكتابة. Nutanix Objects هو مثال على خدمة ذات حالة يمكن تشغيلها في الوضع المدمج أو البعيد باستخدام chacherDB. إنه يوفر MetadataService مع القدرة على الحفاظ على طبقة التخزين المؤقت مع ضمان اتساق القراءة بعد القراءة. يمكننا أن نرى مقدار الإنتاجية التي حصلنا عليها من خلال قياس مثيلات ChakrDB خطيًا في الرسم البياني أدناه.

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

Rocksdb: محرك تخزين سريع لقواعد البيانات

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


بديل Rocksdb

هناك العديد من البدائل المختلفة لـ rocksdb المتوفرة اعتمادًا على الاحتياجات المحددة لديك. تتضمن بعض البدائل الشائعة hbase و leveldb و berkeley db.

اعتبارًا من عام 2022 ، صنفت SourceForge RocksDB كأفضل بديل لنظام Linux. باستخدام ApsaraDB for Redis ، يمكننا قراءة البيانات من ذاكرة التخزين المؤقت في الذاكرة بسرعات عالية ، مما يضمن استمرار البيانات واستخدام الذاكرة وتخزين محرك الأقراص الثابتة في هذه العملية. منذ عام 2009 ، عملت Tair كمزود التخزين المؤقت للبيانات الرسمي لمجموعة Alibaba ، وقد تم الاعتراف بأدائها في سيناريوهات تخزين البيانات مؤقتًا مثل Double 11 Shopping Festival. تتيح استجابة تانزو GemFire ​​منخفضة الكمون لطلبات الوصول إلى البيانات للتطبيقات دائمًا إرجاع بيانات جديدة. Google Cloud Bigtable هي خدمة قاعدة بيانات NoSQL مُدارة بالكامل تم إنشاؤها لأحمال العمل التي تتطلب بيانات تحليلية وتشغيلية في الوقت الفعلي. يمكن لخدمة Amazon DynamoDB معالجة أكثر من 10 تريليون طلب يوميًا ودعم ذروة حركة المرور لأكثر من 20 مليون طلب في الثانية. BergDB هي قاعدة بيانات NoSQL غير مخطط لها ومضمنة وموجهة نحو المستندات وهي مفتوحة المصدر ومجانية الاستخدام.

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

تعمل Oracle Autonomous Database على تبسيط إدارة قواعد البيانات العلائقية. باعتبارها واحدة من أكثر عمليات النشر مرونة ، يتوفر Redis Enterprise في نموذج مختلط. InfinityDB Embedded ، قاعدة بيانات Java NoSQL ، تحتوي على تسلسلات هرمية لتخزين سجلات القيمة الرئيسية. أداء النظام ومرونته وطبيعته الخالية من الصيانة تجعله مثاليًا للاستخدام عالي الأداء ومتعدد النواة والمرن ولا يحتاج إلى صيانة. LeanXcale هي قاعدة بيانات سريعة وقابلة للتطوير تجمع بين SQL و NoSQL بطريقة تجعلهما يعملان معًا بشكل جيد. تم تصميم محرك التخزين KiVi لتخزين البيانات بتنسيق علائقي. يسمح لك ModJS بكتابة وظائف جافا سكريبت التي يمكنك الاتصال بها مباشرة من KeyBD.

يمكن بسهولة إعداد مخزن بيانات شائع في الذاكرة وتشغيله وتوسيع نطاقه باستخدام Amazon ElastiCache. التخزين المؤقت ، ومخازن الجلسات ، والألعاب ، وخدمات psyg ، والتحليلات في الوقت الفعلي ، والتخزين المؤقت ليست سوى عدد قليل من حالات الاستخدام في الوقت الفعلي المتاحة مع Amazon ElastiCache. بفضل مكتبة وخادم قاعدة بيانات NoSQL عالية الأداء ، يعد Go هو الخيار الأفضل لتطوير Ledisdb. OrientDB هي أسرع قاعدة بيانات للرسم البياني في السوق. قم بتحسين ميزتك التنافسية وتسريع الابتكار من خلال تدفقات الإيرادات الجديدة. قاعدة بيانات Macrometa NoSQL بدون خادم وتستند إلى محرك دفق ، مما يسمح لها بمعالجة البيانات وحسابها بسرعة عالية. يقوم Memorystore بأتمتة مهام Redis و Memcached المعقدة مثل التوافر العالي وتجاوز الفشل والتصحيح والمراقبة.

تستفيد قواعد البيانات عالية الأداء مثل upscaledb من التخزين السريع للقيمة الرئيسية والخوارزميات من أجل تعظيم استخدامها. يعد UpscaleDB معيارًا مفتوح المصدر يمكنه مسح أكثر من 50 مليون سجل واسترداد أكثرها. تتيح منصة Tablestore نمو البيانات وتوسيع التزامن بطريقة سلسة باستخدام تقنية تجزئة البيانات وموازن تحميل الخادم. InsightEdge هو مزود التحليلات التي تتيح التحليلات في الوقت الفعلي لتدفق البيانات التي تم تنظيمها تاريخيًا. من خلال استخدام طريقة الدفع حسب الاستخدام لهذه الخدمة ، يمكنك التأكد من أن نظام التحكم في المخاطر الخاص بك لا يزال في التشغيل الأمثل. تم تصميم قواعد بيانات ScyllaDB للتطبيقات كثيفة البيانات ذات الأداء العالي ومتطلبات زمن الوصول المنخفض. يتم استخدام ScyllaDB من قبل أكثر من 400 شركة لتغيير قواعد اللعبة ، مثل Disney و Expedia و FireEye و Discord و Zillow و Starbucks و Comcast و Samsung.

عندما تحتاج إلى قابلية التوسع والتوافر العالي ، فإن قواعد بيانات Apache Cassandra تعد خيارًا جيدًا. توفر شبكة بيانات Hazelcast القائمة على منصة تخزين وإدارة بيانات Infinispan مفتوحة المصدر مجموعة قوية من الإمكانات لتخزين البيانات وإدارتها ومعالجتها. يتم إنشاء البيانات متعددة الأبعاد كجزء من InterSystems IRIS باستخدام مجموعة من واجهات برمجة التطبيقات التي تسمح بالعمليات المتزامنة على البيانات ذات القيمة الرئيسية والعلائقية والكائن والمستندات وغيرها من البيانات المستمرة للمعاملات. FairCom DB عبارة عن منصة تحليلات في الوقت الفعلي تتيح معاملات كبيرة الحجم بطريقة يمكن التنبؤ بها ومعالجة موازية للبيانات الضخمة. إنه محرك قاعدة بيانات متقدم يوفر استمرارية التحكم وهو أقل تكلفة إجمالية للملكية (TCO) بين جميع محركات قواعد البيانات. ذاكرة التخزين المؤقت هي نظام إدارة قواعد بيانات متعدد النماذج (كائن ، علائقي ، ذو قيمة رئيسية) وخادم تطبيق تم إنشاؤه بواسطة InterSystems. يؤدي استخدام Ehcache كعميل إلى زيادة الأداء وتقليل أعباء عمل قاعدة البيانات وتبسيط قابلية التوسع باستخدام ذاكرة التخزين المؤقت مفتوحة المصدر القائمة على المعايير.

مخازن البيانات في قواعد بيانات IBM Cloud هي منصات برامج مجانية ومفتوحة المصدر لتطوير تطبيقات المؤسسة. من خلال إطار عمل مبني على النظام الأساسي للخدمات المصغرة ، فإنها تتيح تطبيقات بدون خادم. لا يحاول فولدمورت إرضاء العلاقات التعسفية أو إرضاء خصائص ACID في قاعدة بيانات علائقية. يتم تعريف الكتلة على أنها شبكة باستخدام اتصال متعدد البث. تم تصميم XAP ، وهي شبكة بيانات في الذاكرة من GigaSpaces ، للمعاملات الشديدة ومعالجة التدفق للتطبيقات ذات المهام الحرجة ذات الأداء العالي والمرونة وزمن الانتقال المنخفض للغاية. يمكن لـ FoundationDB تشغيل كميات كبيرة من البيانات الثقيلة على أجهزة السلع بتكاليف منخفضة. نظرًا لأن خادم شبكة Kyoto Tycoon خفيف الوزن ، فهو متوافق مع كل من قاعدة بيانات قيمة مفتاح Kyoto Cabinet وخادم شبكة Kyoto Tycoon.

تم تحسين أحدث إصدارات المنبع ، ويقصد استخدامها معًا واختبارها في ظروف الإنتاج الواقعية. تعد إصلاحات الأخطاء والميزات الجديدة البسيطة وعدد قليل من تحديثات حزم توزيع Linux بعض التحسينات. أصبح من الممكن الآن تخزين التطبيقات والمستندات والبيانات الأخرى المستخدمة بشكل متكرر في أجهزة أسرع. يمكنه الوصول إليها بسرعات مماثلة لـ RAM أو SSD. يمكنك استخدام Memcached لأخذ ذاكرة من أجزاء الكمبيوتر التي تحتاج إلى ذاكرة أكبر مما يمكنها التعامل معه. تتحد المعايير المفتوحة ومحرك SQL القوي لإنشاء إطار عمل NoSQL قوي لا مثيل له. Amadeus و American Express و Carrefour و Cisco و Comcast / Sky و Disney و eBay و LinkedIn و Marriott و Tesco و Tommy Hilfiger و United و Verizon ومئات من الشركات الأخرى تستخدم المنصة.

هل Rocksdb سريع؟

يعد التخزين السريع والمنخفض ، مثل محركات الأقراص المحمولة والأقراص عالية السرعة ، مثاليًا لـ RocksDB. مع RocksDB ، يمكنك الاستفادة الكاملة من الذاكرة وقدرات القراءة / الكتابة للفلاش وذاكرة الوصول العشوائي.

يعد Badger خيارًا أسرع لتخزين البيانات في قاعدة بيانات الرسم البياني

لتخزين البيانات في قاعدة بيانات الرسم البياني ، تعد مكتبة Badger بديلاً أسرع لـ RocksDB. نظرًا لأن شجرة LSM تحتوي على العديد من المفاتيح ، فمن غير المرجح أن يؤدي عدد أكبر من المفاتيح إلى الضغط. علاوة على ذلك ، يقوم RocksDB بتخزين البيانات للقراءة والكتابة في الذاكرة ، مما يؤدي إلى تخزين القراءات الواردة مؤقتًا.

روكسدب الموزعة

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

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

يتطلب نظام التخزين عالي الأداء وجود KVS خفيف الوزن للغاية يمكن أن يتسع لأكبر عدد من الملفات في نفس الوقت. لقد اتخذنا قرارًا باستخدام النسخة المتشعبة من Cassandra ، والتي استخدمناها خلال السنوات الثماني الماضية. أظهر متجر Nutanix للمدى المستقل (AES) ، وهو عبارة عن قاعدة بيانات بيانات وصفية محلية على قرص AOS ، نتائج أداء واعدة خلال فترة الاختبار. على الرغم من حقيقة أن RocksDB قادرة على تخزين كميات كبيرة من البيانات ، إلا أنها تتطلب قدرًا صغيرًا نسبيًا من الذاكرة. نظرًا لأنه يمكننا تضمين RocksDB في عمليات أخرى ، فلدينا مزايا كبيرة عندما يتعلق الأمر بزمن الاستجابة والإنتاجية. بفضل تصميمه الموزع ، والسحابة الأصلية ، والطبيعة المتاحة للغاية ، والميزات عالية الأداء ، يعد ChahalDB بمثابة KVS ممتاز مع RocksDB. تتيح لك الواجهة الخلفية لـ RocksDB Env الاتصال بأي طبقة تخزين أخرى. سيغطي هذا الجزء الثاني من السلسلة بنية ChakrDB الموزعة KVS ومراجعة كيفية تطور المنطق والنظرية إلى واقع.

Rocksdb مقابل Sqlite

يتم استخدام SQLite و RocksDB بشكل أساسي في قواعد البيانات. السبب الرئيسي وراء اختيار المطورين لـ RocksDB على SQLite هو أنه أكثر سهولة في الاستخدام ، بينما يعتبر الوزن الخفيف عاملاً حاسمًا. يحتوي RocksDB ، وهو مشروع مفتوح المصدر ، على عدد نجوم GitHub يبلغ 14.1 ألفًا وشوكات GitHub تبلغ 3.09 ألفًا.

ما هي الاختلافات بين RocksDB و SQLite؟ من المحتمل أن يكون SQLite هو الأسوأ من بين أسوأ المرشحين عندما يتعلق الأمر بالعلاقات بين الخادم والعميل (قواعد البيانات المركزية) ، في حين أن RocksDB هي علاقة الخادم والعميل ( قاعدة البيانات المركزية ). لا يعد Firebase شيئًا جديدًا من حيث أنه تطبيق تستضيفه شركة وليس خدمة. على الرغم من وجود بعض السلبيات ، إلا أن الفوائد كبيرة. نتيجة لذلك ، ستحتاج إلى إنشاء خادم وتطبيق عميل وقاعدة بيانات. يمكن أن يكون هذا هو Javascript مع واجهة برمجة تطبيقات REST المستندة إلى Express على Node.js ، أو Javalin مع قاعدة بيانات ObjectDB مضمنة لتخزين قاعدة البيانات. قد تتراوح التكاليف الأولية من منخفضة للغاية إلى الصفر. على الرغم من أنك ستحتاج إلى تعلم واجهة برمجة تطبيقات Firebase ، أعتقد أن Firebase هو الخيار الأفضل.

روكسدب جولانج

RocksDB هي قاعدة بيانات ذات قيمة أساسية تم تطويرها بواسطة Facebook. إنه مكتوب بلغة C ++ وله روابط للعديد من لغات البرمجة ، بما في ذلك Go.
تم تصميم RocksDB لتكون قابلة للتطوير وفعالة. يمكن استخدامه كقاعدة بيانات مستقلة أو كجزء من نظام أكبر. يتم استخدام RocksDB من قبل العديد من الشركات الكبيرة ، بما في ذلك Facebook و Google و Microsoft.

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

يقوم CompactRange بالضغط اليدوي على نطاق مفاتيحه عند استخدام وضع الضغط اليدوي. يحسب GetApproximateSizes حجم نظام الملفات بالبايت لكل نطاق مفتاح مستخدم. تُرجع PropertyValue قيمة خاصية قاعدة البيانات كنتيجة لطريقة property () الخاصة بها. وضع يكتب البيانات المرتبطة بمفتاح قاعدة البيانات. إذا تم تمرير nil [] بايت كقيمة ، يتم إرجاع شريحة من صفر [] بايت. إنها بيئة استدعاء قاعدة البيانات المستخدمة في مكالمات النظام. عندما لا يحتاج البرنامج إلى Envs ، يلزم إجراء مكالمة إغلاق لمنع تسرب الذاكرة.

سيعود خطأ إذا حدث خطأ LevelDB أثناء حدث GetError. ستكون العوائد معدومة بالنسبة للمكررات التي تكون ببساطة غير صالحة. عندما يقوم الإغلاق بإلغاء تخصيص التكرار المحدد ، فإنه يحرر البنية C الأساسية. عندما يتوقف البرنامج عن استخدام مكرر ، فمن الضروري تنشيط إغلاق لمنع تسرب الذاكرة. عند فتح قاعدة بيانات ، يقوم SetCache بتخزين كائن ذاكرة التخزين المؤقت في قاعدة البيانات. عند استخدام setCompression ، تحدد خوارزمية الضغط المحددة بواسطة SetCompression الكتل التي يمكن ضغطها. عند استخدام SetFilterPolicy ، يقوم Open بإنشاء قاعدة بيانات جديدة بسياسة التصفية المحددة فيها.

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

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

Rocksdb: متجر ذو قيمة مفتاح قابل للتضمين للتطبيقات التي تواجه المستخدم

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

تنفيذ Rocksdb

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

سنستعرض كيفية استخدام RocksDB في Rockset في منشور المدونة هذا ، بالإضافة إلى كيفية ضبطه للحصول على أفضل أداء. عندما يتعلق الأمر بـ Rockset ، نريد أن يتمكن المستخدمون لدينا من الاستعلام عن بياناتهم في غضون 10 ثوانٍ من المللي ثانية مع زمن انتقال أقل من الثانية واستيعاب البيانات بشكل مستمر. يستخدم RocksDB في الإنتاج في Facebook و LinkedIn و Uber وعدد كبير من الشركات الأخرى. يقوم RocksDB بتخزين بيانات القيمة الرئيسية في شكل مفاتيح مضمنة. في مثيل واحد من RocksDB ، لا يتم نقل البيانات إلى أجهزة أخرى. تم تصميمه لتدوم وتم تصميمه بالتعاون مع RocksDB-Cloud. منعت أعطال الآلة RocksDB من التعافي.

نتيجة لذلك ، لا يمكن استخدام سجل الكتابة التمهيدية الخاص بـ RocksDB. نظرًا لأن RocksDB مكتوبة في الذاكرة ، فإن جميع كتاباتنا لها نفس البنية. ينتج عن مجموعة الكتابة مع مجموعة من التحديثات الفردية المجمعة في WriteBatch إنتاجية كتابة أعلى لـ RocksDB ؛ ويتم فرز مفتاح واحد في دفعة كتابة إلى مضاعفات. قبل كتابة التحديثات إلى RocksDB ، نجمعها في مجموعات صغيرة بحجم 100 كيلو بايت ونقوم بفرزها. في RocksDB ، يمكن تعيين الأحجام المستهدفة لكل مستوى ديناميكيًا بناءً على حجم المستوى الأخير في تلك النقطة. البيانات من المستويين L0 و L1 محدودة للغاية مقارنة بالمستويات الأخرى في شجرة LSM. يجب الوصول إلى جميع الملفات في L1 أثناء الضغط من L0 إلى L1. إنشاء عدد كبير من التكرارات مطلوب للاستعلامات التي تقوم بمسح النطاق أو استرداد عدد كبير من الحقول. لا يُسمح بإعادة استخدام التكرارات في استعلام في المجموعة المجانية الموجودة فيه.

مقارنة قاعدة بيانات سحابة البيانات

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

مشروع Couchbase

Couchbase Enterprise Edition هو الإصدار الأكثر شمولاً والأداء من Couchbase Server. يتضمن جميع ميزات إصدار المجتمع ويضيف ميزات المؤسسة مثل النسخ المتماثل الجغرافي النشط والنسخ المتماثل عبر مراكز البيانات (XDCR) ، بالإضافة إلى تعزيز الأمان والمراقبة. يتوفر Couchbase Enterprise Edition في مستويين اشتراك: قياسي و Enterprise.

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

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

Couchbase: قاعدة بيانات Nosql شائعة

تعد قاعدة بيانات NoSQL مثل Couchbase خيارًا رائعًا لمجموعة متنوعة من تطبيقات الويب والجوال وإنترنت الأشياء (IoT). شركة Couchbase الرائدة في مجال توفير الحلول المستندة إلى السحابة ، تخدم أكثر من 2000 عميل من مكاتب في خمس دول ، بما في ذلك طيران الإمارات ، وتومي هيلفيغر ، و SyncThink ، و LinkedIn ، وفنادق ماريوت.