الأخبار

لماذا قد تصبح SQLite أساسًا للتقدم الرقمي

انطلاقا من الأخبار الأخيرة، تقضي SQLite يومها في الشمس!. في الأسابيع القليلة الماضية، أعلنت العديد من الشركات أنها تبني أو تدعم مشاريع جديدة مبنية على قاعدة البيانات مفتوحة المصدر (open-source database).

هل SQLite أحد أسس الجيل القادم من الإنترنت؟ يعتقد البعض ذلك. أعلنت Cloudflare أنها تنشر خدمة قاعدة بيانات جديدة مبنية على أداة الواجهة الخلفية (backend tool). وفي الوقت نفسه، أعلنت Fly أنها توظف أحد مطوري Litestream، وهو مشروع مفتوح المصدر يعزز الإصدار الأساسي من SQLite عن طريق إضافة القدرة على تكرار البيانات لزيادة الأداء والقدرة على البقاء.

SQL، في طليعة أدوات المطورين بعد عقدين من الزمن
للوهلة الأولى، تبدو الفكرة غريبة بعض الشيء. عمر المشروع أكثر من 20 عامًا ومكتوب بلغة عادية، قديمة. إنه أقل من تطبيق مستقل يستحق اسمه بقدر ما هو مكتبة يمكن ربطها بكودك. إنه ليس خيار برنامج سرادق أمام المنزل بقدر ما هو خادم منسي يقوم بعمل جاد. قد يبدأ العديد من المطورين في استخدام الكود عند رسم مشروع أو بناء نموذج أولي، لكنهم غالبًا ما ينتقلون إلى خيارات أخرى كاملة الميزات مثل Oracle أو PostgreSQL.

لكن الإعلانات تشير إلى أن الشركات ترى شيئًا أكثر. تقوم Cloudflare، على سبيل المثال، بطرح خدمة قاعدة بيانات جديدة تسمى D1 لمنح المطورين طريقة أخرى لتخزين البيانات التي تم إنشاؤها بواسطة تطبيقات Workers التي لا تحتوي على خادم. إنهم يقدمون بالفعل متجرًا ذا قيمة رئيسية ومنتج bucket (R2)، لكن المطورين غالبًا ما يرغبون في الاعتماد على هيكل وقوة SQLite لتبسيط عبء العمل.

قالت Rita Kozlov، كبيرة مديري المنتجات في Cloudflare: "إنها قاعدة بيانات لنموذج الحافة (edge model)". "إن الطبيعة المضمنة لها أيضًا منطقية للغاية، حيث يتمثل الغرض الكامل من D1 في تسهيل حق مطورينا ليكونوا قادرين على إنشاء قاعدة بيانات جنبًا إلى جنب مع حساباتهم".

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

تساعد إضافة SQLite المطورين على توفير تطبيقات أكثر تعقيدًا. يمكن تخزين البيانات محليًا على عقدة حافة (edge node) ومن ثم يتم نسخها في نهاية المطاف في جميع أنحاء العالم. يمكن للمطورين الأكثر طموحًا والذين يحتاجون إلى تتبع المزيد من حالات المستخدمين اعتماد النظام الأساسي.

قال Kozlov: "لقد سألنا العديد من المطورين الداخليين لدينا"، كيف يمكننا جعلك تبني المزيد مع Workers؟"، "كانت إجابتهم"، أعطني قاعدة بيانات. هذه هي الأداة التي اعتدت عليها. ربما يمكنني معرفة كيفية القيام بما أحتاج إلى فعله باستخدام [Key-Value] ولكنه ليس مكان تواجد الأشخاص اليوم. نريد دائمًا مقابلة المطورين أينما كانوا ".

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

من السهل معرفة من أين جاءت فكرة Fly لمراجعة وتوسيع قاعدة بيانات مفتوحة المصدر. أحد منتجاتها الرئيسية هو مجموعات PostgreSQL المدعومة بالكامل. يمكن للمطورين إعداد إصدار مرن وقابل للتطوير من PostgreSQL ببضع نقرات.

تقوم العديد من الشركات الأخرى بنفس الشيء مع قواعد البيانات مفتوحة المصدر. بدأت شركات مثل PlanetScale و Yugabyte و Amazon و Oracle و Google إما بـ MySQL أو PostgreSQL ثم أضافت طبقات إضافية من الميزات لتحسين الموثوقية وقابلية التوسع والمزيد.

في الأسبوع الماضي فقط، أعلنت Google عن إصدار AlloyDB الخاص بها من PostgreSQL الذي يوفر توافقًا كاملاً مع بعض التحسينات الإضافية مثل متجر الأعمدة الذي يمكنه تحسين بعض أعباء العمل بشكل كبير.

Single-threaded, but multidimensional
لا يزال هناك العديد من الاختلافات بين SQLite والمشاريع الأخرى. SQLite هو نظام أساسي Single-threaded. تم تصميم قواعد البيانات الأخرى باستخدام مؤشرات ترابط متعددة للتوفيق بين مجموعات أكثر تعقيدًا من المستخدمين.

بالنسبة للعديد من المشاريع الصغيرة، لا يمثل هذا قيدًا كبيرًا ويرى بعض المطورين أنه ميزة.

"لقد أدرت شركة قاعدة بيانات قبل ذلك وأعتقد أن الشيء الذي لا يريد الناس مثلي أبدًا التحدث عنه هو أن كل شخص لديه عدد قليل من قواعد البيانات التي تقل عن 10 جيجابايت." قال Kurt Mackey، الرئيس التنفيذي لشركة Fly. "إذا كنت حقًا في هذه الفئة، فأنت تعلم أن هذا مثير جدًا للاهتمام لأنه SQL وهو رائع لقواعد بيانات 10gig".

يمكن للمطورين في كثير من الأحيان الحصول على الكثير مما يريدون من الوظائف الأساسية الأساسية دون تعقيد دعم قاعدة بيانات كاملة الميزات.

قال بن جونسون Ben Johnson، أحد المطورين في Fly: "وثائق Postgres 14 هي ما يقرب من 3000 صفحة". "وإذا لم تكن بحاجة إلى ميزات Postgres، فهي مسؤولية. على سبيل المثال، حتى إذا كنت لا تستخدم حسابات مستخدمين متعددة، فستظل بحاجة إلى تهيئة وتصحيح المصادقة المستندة إلى المضيف. يجب عليك إغلاق جدار الحماية من خادم Postgres".

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

قال Kent Dodds، مطور يستخدم SQLite بشكل متكرر في المشاريع: "إنه أمر رائع حقًا أثناء التطوير". "[ليست هناك] حاجة إلى تشغيل خادم قاعدة البيانات (أو حاوية عامل إرساء). إنه مجرد ملف. يمكنك حتى إرسال ملف قاعدة البيانات إلى زميل في العمل إذا كنت بحاجة إلى بعض المساعدة في شيء ما".

العيوب وما ينتظرنا
ومع ذلك، في حين أن العديد من عملاء Fly يستخدمون SQLite بنجاح لتخزين البيانات لبعض التطبيقات البسيطة التي تعمل على الخدمة، فإن Fly’s Mackey تفيد بوجود بعض الجوانب القاسية. يعمل البرنامج بسرعة كبيرة دون حدوث خلل في الأداء، ولكن لا يوجد نفس عدد الأدوات التي يمكن أن تساعد في دعمه.

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

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

قال David Crawshaw، كبير المسؤولين التقنيين في Tailscale: "أحد الأشياء التي أحبه فيها كمنتج هو أنه مستقر للغاية". تستخدم الشركة SQL لدعم العديد من عمليات الشبكة. "الأشياء التي فعلتها قبل 15 عامًا، ما زالت تفعلها حتى اليوم. هذا يعني أنه عندما أعود إليها، فإن الأشياء التي تعلمتها لا تزال مفيدة".

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

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

ومع ذلك، فإن هذا يترك البعض يتساءل عن مدى كون هذا اتجاهًا حقيقيًا ومدى كونه مجرد نقطة انطلاق للشركات. وقد أكد Kozlov هذا بشكل أكبر، حيث أشار إلى أن اسم المشروع "D1" في Cloudflare تمت تسميته بهذه الطريقة لعدة أسباب: من السهل زيادة الرقم وقال، "لا أعتقد أن هذا- أو بالأحرى، أعلم أن هذه ليست - محطتنا الأخيرة في مساحة قاعدة البيانات. أعتقد أننا سنجد طرقًا لتوسيع نطاق عرضنا أو سنقوم بتوسيع نطاق عرضنا".