Apache CouchDB چیست؟


۱۰ مرداد ۱۳۹۹
apache couchdb چیست؟

دیتابیس Apache CouchDB توسط بنیاد نرم‌افزاری Apache توسعه داده شده و اولین بار در سال ۲۰۰۵ منتشر شده و با زبان Erlang نوشته شده است. یک دیتابیس متن‌باز که از فرمت‌ها و پروتکل‌های مختلفی برای ذخیره، انتقال و پردازش داده‌های خود استفاده می‌کند.

از JSON برای ذخیره داده‌ها، از زبان JavaScript به عنوان زبان کوئری با روش پردازش MapReduce و از HTTP برای API استفاده می‌کند. داکیومنت‌ها، واحدهای اصلی این دیتابیس هستند و metadataها را شامل می‌شوند. فیلدهای داکیومنت، به‌صورت منحصربه‌فرد نامگذاری شده‌اند و مقادیری با نوع‌های مختلف را شامل می‌شوند، هیچ محدودیتی برای اندازه متن یا تعداد عناصر وجود ندارد.

تاریخچه دیتابیس CouchDB

CouchDB با زبان Erlang نوشته شده است. این پروژه توسط Damien Katz در سال ۲۰۰۵ آغاز و در سال ۲۰۰۸ به پروژه شرکت Apache تبدیل شد. نسخه فعلی CouchDB 3.1 است.

معماری دیتابیس CouchDB

معماری couchdb

معماری CouchDB در زیر شرح داده شده است:

  1. CouchDB Engine: بر اساس B-tree است. داده‌ها توسط کلید‌ها یا محدوده‌های کلید که به‌طور مستقیم map می‌شوند تا در اختیار عملیات‌ B-Tree قرار بگیرند.
  2. HTTP Request: برای ایجاد شاخص‌ها و استخراج داده‌ها از داکیومنت‌ها استفاده می‌شود. با زبان جاوااسکریپت نوشته شده است که اجازه ساخت Adhoc views را می‌دهد که با MapReduce ایجاد شده‌ند.
  3. Document: حجم زیادی از داده‌ها را ذخیره می‌کند.
  4. دیتابیس Replica: این قسمت برای replicating (replicate در دیتابیس‌ها به این معنی است که از یک دیتابیس مرکزی داده‌ها در دیتابیس‌های جزئی‌تر کپی شوند) داده‌ها در یک دیتابیس لوکال، یا ریموت و طراحی همزمان داکیومنت‌ها مورد استفاده قرار می‌گیرد.

ویژگی‌های دیتابیس CouchDB

ویژگی‌های دیتابیس CouchDB موارد زیر را شامل می‌شود:

  1. Replication: این دیتابیس ساده‌ترین شکل replication را ارائه می‌دهد، هیچ دیتابیسی دیگری در این مورد به این اندازه ساده نیست.
  2. Document Storage: این یک دیتابیس NoSQL است که از document storage پیروی می‌کند و در آن هر فیلد به‌طور اختصاصی نامگذاری می‌شود و مقادیری از انواع داده‌های مختلف مانند متن، اعداد، Boolean، لیست‌ها و … در آن قرار می‌گیرند.
  3. خصوصیت‌های ACID: طراحی فایل CouchDB از تمام خصوصیت‌های ACID پیروی می‌کند.
  4. امنیت: همچنین امنیت در سطح دیتابیس را ارائه می‌کند و مجوزها به readers و admins تقسیم می‌شود، که خوانندگان می‌توانند عملیات خواندن و نوشتن در دیتابیس را انجام دهند.
  5. Map/Reduce: دلیل اصلی محبوبیت CouchDB استفاده از سیستم پردازشی Map/Reduce است.
  6. احرازهویت: CouchDB در حفظ احرازهویت از طریق سشن و کوکی مانند یک برنامه تحت وب، به ما کمک می‌کند.
  7. ساخته شده برای کارهای آفلاین: CouchDB می‌تواند در دستگاهای مختلف مانند گوشی‌های هوشمند که قابلیت رفتن به حالت آفلاین را دارند، replicate شود و هنگامی که گوشی به حالت آنلاین برگشت، همگام‌سازی داده‌ها را برای شما انجام دهد.
  8. Eventual Consistency: دیتابیس CouchDB، مواردی مانند در دسترس بودن و Partition tolerance را که از eventual consistency نشات می‌گیرند را ضمانت می‌کند.
  9. HTTP API: همه موارد دارای یک URI (Unique Resource Identifier) منحصربه‌فرد هستند که از طریق HTTP نمایش داده می‌شوند. از متد‌های HTTP مانند POST, GET, PUT و Delete برای چهار عملیات CRUD (Create, Read, Update, Delete) استفاده می‌کند.

مزیت‌های دیتابیس CouchDB

مزایای دیتابیس CouchDB موارد زیر را شامل می‌شود:

  1. از HTTP API برای ارتباط آسان‌تر استفاده می‌شود.
  2. این دیتابیس می‌تواند هر نوع داده‌ای را ذخیره کند.
  3. ReduceMap امکان بهینه‌سازی ترکیب داده‌ها را فراهم می‌کند.
  4. ساختار CouchDB بسیار ساده است.
  5. indexing و بازیابی سریعی دارد.

معایب دیتابیس CouchDB

معایب دیتابیس CouchDB موارد زیر را شامل می‌شود:

  1. CouchDB فضای زیادی برای overhead اشغال می‌کند، که یکی از مهم‌ترین معایب این دیتابیس در مقایسه با سایر دیتابیس‌ها به شما می‌رود.
  2. اجرای کوئری‌های Arbitrary، بسیار هزینه‌بر است.
  3. CouchDB در مقایسه با بقیه دیتابیس‌ها، overhead بیش‌تری ایجاد می‌کند.
  4. ممکن است Temporary viewها در مجموعه داده‌های عظیم بسیار کند باشند.
  5. از transactionها پشتیبانی نمی‌کند.
  6. ممکن است Replication در دیتابیس‌های بزرگ با شکست روبرو شود.

منبع: https://www.geeksforgeeks.org/introduction-to-apache-couchdb

برچسب‌ها:

خدمات رایگان لیارا

۲.۵ گیگابایت فضای ذخیره‌سازی ابری رایگان

۲.۵ گیگابایت Object Storage سازگار با پروتکل S3 با دیسک‌های SSD به‌صورت رایگان دریافت کنید.

هاست رایگان برای دیتابیس‌

دیتابیس‌های MariaDB، PostgreSQL و Redis را فقط با یک کلیک و به‌صورت رایگان تهیه کنید.

سرویس DNS رایگان

به سادگی دامنه‌تان را اضافه کنید و به صورت رایگان رکورد‌های آن را مدیریت کنید.

۱۰۰ هزار تومان اعتبار اولیه

بعد از ثبت نام در لیارا مبلغ ۱۰۰ هزار تومان اعتبار هدیه دریافت می‌کنید که با توجه به ساعتی بودن هزینه سرویس‌ها، می‌توانید تمامی خدمات پولی را برای چندین هفته رایگان استفاده کنید.

ارسال ۱۰۰ ایمیل تراکنشی رایگان در هر ماه

در سرویس ایمیل لیارا شما می‌توانید تا ۱۰۰ ایمیل رایگان در هر ماه ارسال کنید و فقط برای بیش از آن هزینه پرداخت کنید. (به‌همراه دسترسی SMTP)

هاست رایگان برای انواع وبسایت

تفاوتی ندارد برای وبسایت خود از Node استفاده می‌کنید یا Laravel و Django، در لیارا می‌توانید به صورت کاملا رایگان آن را میزبانی کنید.

توسعه‌دهندگان درباره‌ی ما چه می‌گویند

تجربه کار باliara_cloud@امروز خیلی خوب بود. یکی از سرویس هام رو منتقل کردم روش و راضیم. انقد سریع و جذاب کارم راه افتادم اصن باورم نمیشد! برعکس سرویس های PaaS دیگه با اون همه پیچیدگیشون. دمتون گرم
...

MohammadReza
liara testimonial
keikaavousi

بعد از بسته شدن @fandoghpaas و ناراحتی همه‌مون از اینکه یه سرویس خوب و صادق نمی‌تونه از پس هزینه‌ها بر بیاد، سرویسم رو منتقل کردم به پاس لیارا (https://liara.ir @liara_cloud) . تجربه راحت و خوب. تفاوت‌هایی داشت که کمی کار می‌خواست ولی تا الان کاملا راضی.

jadi
liara testimonial
jadi

یه خسته نباشید باید به تصمیمliara_cloud@بگم،
بعد از چندین روز سرکله زدن با سرویس های مشابه بالاخره تصمیم گرفتم لیارا رو امتحان کنم و باور نمیشه ۱۰ دقیقه بیشتر وقت نبرد،
دمتون گرم.

Arch
liara testimonial
EbadiDev

واسه سرویس PaaS با اختلاف لیارا بهترین رابط کاربری داره و یکی از مزیت‌های سرویس دیتابیس‌شون اینه که خودشون به صورت دوره‌ای بکآپ میگیرن.
...

Ali Najafi
liara testimonial
me_ali_najafi

یکی از کارهای خوبی که جدیداً میکنم اینه که یه دیتابیس روی لیارا میسازم و به پروژه وصل میکنم اینطوری هم خونه و هم محل کار دیتابیس بروز رو دارم و راحت میتونم ادامه بدم کار روliara_cloud@

Navid
liara testimonial
1navid

عاشقliara_cloud@شدم درسته در حد AWS نیست ولی خب تجربه خوبی واسه پروژه های داخل ایران ارائه میده، میتونم رو CD هم اجراش کنم

Amir H Shekari
liara testimonial
vanenshi

همراه شما هستیم

در خصوص سفارش یا استفاده از سرویس‌ها سوالی دارید؟
تلفن واحد فروش:
۰۲۵-۳۳۵۵۷۶۱۹ (۹ الی ۱۷)