اگر SQLite با فضای ابری ترکیب می‌شد چه می‌شد؟

تصور کنید مثل همیشه می‌خواهید سریع یک ایده را پیاده کنید. مثلاً یک اپ ساده که قیمت گوشی‌ها یا لپ‌تاپ‌ها را از سایت‌هایی مثل دیجی‌کالا، ترب و زومیت جمع می‌کند، تحلیل‌هایی انجام می‌دهد (مثل ارزان‌ترین فروشنده یا نمودار تغییرات قیمت در یک ماه گذشته) و نتایج را در یک رابط وب یا اپلیکیشن موبایل ساده نمایش می‌دهد.

خب طبیعتاً در مراحل اولیه، هیچ‌کس نمی‌خواهد دردسر راه‌اندازی پایگاه داده سنگین مثل PostgreSQL، MongoDB یا مدیریت یک REST API کامل را به جان بخرد. ترجیح می‌دهید همه‌چیز ساده باشد؛ دقیقاً مثل تجربه کار با #SQLite: یک فایل دیتابیس کنار برنامه، بدون نیاز به سرور، بدون کانفیگ پیچیده.

اما یک مشکل هست: اگر بخواهید چند برنامه (مثل یک crawler، یک سرویس API ساده، و یک رابط کاربری React) همزمان از همان دیتابیس استفاده کنند، دیگر فایل لوکال #SQLite کافی نیست. چون این فایل فقط در یک جاست — روی دیسک محلی. پس یا باید سرور راه بیندازید، یا دنبال راهی باشید که این فایل دیتابیس لوکال، روی فضای ابری باشد و همه‌ اپ‌ها انگار از همان فایل مشترک می‌خوانند.

 اینجاست که SlateDB وارد می‌شود.

SlateDB: دیتابیس تعبیه‌شده بدون دیسک، نوشته‌شده با Rust . این دیتابیس مثل SQLite ساده و سبک است، اما با یک تفاوت مهم:

به جای نوشتن روی دیسک، همه‌چیز مستقیماً روی فضای ابری مثل Amazon S3 یا سرویس‌های داخلی مثل پارس‌پک، آروان‌کلاد یا ستون ذخیره می‌شود.

یعنی برنامه شما همچنان مثل SQLite ساده و سریع است، ولی انگار همه‌ اپ‌ها به یک دیتابیس مشترک روی ابر وصل‌اند.

SlateDB - An embedded storage engine built on object storage | SlateDB

SlateDB – An embedded storage engine built on object storage | SlateDB

Description will go into a meta tag in <head />

https://slatedb.io/

 برگردیم به مثال: تحلیل قیمت گوشی‌ها در بازار ایران – با SlateDB:

نیازی به پایگاه‌داده مرکزی ندارید.

کراولر فقط داده‌ها را در SlateDB ذخیره می‌کند.

همه اپ‌ها همزمان از همان SlateDB – یعنی همان فضای استوریج، داده‌ها را می‌خوانند.

اگر Crawler یا اپ‌ها روی سرورهای مختلف باشند، فقط کافی است دسترسی به S3 مشترک داشته باشند.

بدون نیاز به تعریف API پیچیده یا سرور مرکزی.

 چرا SlateDB انتخاب خوبی است؟

سادگی: مثل SQLite، می‌توانید آن را مستقیماً داخل برنامه (embed) کنید.

مقیاس‌پذیری: با تکیه بر #ObjectStorage، نیاز به شارد یا ریپلیکیشن ندارید؛ خود فضا مقیاس‌پذیر است.

بدون نیاز به سرور: دیگر لازم نیست دیتابیس جداگانه راه‌اندازی و مدیریت کنید.

پشتیبانی از خوانندگان متعدد: چند اپ یا سرویس می‌توانند همزمان بدون مشکل داده‌ها را بخوانند.

 معماری بدون دیسک: آینده دیتابیس‌های سبک و ابری

در الگوی ZeroDiskArchitecture، برنامه‌ها دیگر نیازی به دیسک محلی ندارند و مستقیماً داده‌ها را روی فضاهای ابری مانند S3 می‌نویسند. این رویکرد با حذف پیچیدگی سرورها، راهی ساده، مقیاس‌پذیر و مقرون‌به‌صرفه برای ساخت اپ‌های serverless، edge-based، و مخصوصاً crawlerهای توزیع‌شده و IoT ارائه می‌دهد.

 دیتابیسSlateDB نمونه‌ای عملی از این ترند است — دیتابیسی سبک و بدون سرور که مانند SQLite در برنامه embed می‌شود، اما داده‌ها را روی فضای ابری نگه می‌دارد.

محدودیت‌های SlateDB

تک‌نویسنده: فقط یک نویسنده همزمان مجاز است؛ برای نوشتارهای موازی، باید از صف پیام یا پارتیشن‌بندی استفاده شود.

تأخیر نوشتن: latency نوشتن به دلیل استفاده از Object Storage بین ۵۰ تا ۱۰۰ میلی‌ثانیه است.

نبود تراکنش (فعلاً): قابلیت‌هایی مثل snapshot isolation هنوز در حال توسعه هستند.

نوشته های مشابه