
ما به عنوان توسعه دهندگان نرم افزار، اغلب با پروژه هایی سروکار داریم که با سطح بالایی از عدم قطعیت مواجه هستند. به طور مثال یک شبکه مجازی را در نظر بگیرید; ما نمیتوانیم به طور قطعی پیش بینی کنیم که تعداد کانکشن های هر شخص در آینده چقدر پیچیده خواهد بود. بنابراین انتخاب یک پشته (Stack) فناوری بهینه ممکن است سخت باشد. با این حال، ممکن است یک پایگاه داده کامل برای چنین مواردی وجود داشته باشد... این پایگاه داده آرانگو دیبی (ArangoDB) نام دارد.
آرانگو دیبی یک پایگاه داده متن باز و چند مدلی میباشد که با سی پلاس پلاس توسعه داده شده است. این پایگاه داده از سندها، چارت ها و مقادیر key value پشتیبانی میکند و به کاربران این امکان را میدهد تا آزادانه همه مدلهای داده را در یک پرس و جو (Query) واحد ترکیب کنند.
هر چقدر اپلیکیشن ها پیچیده تر میشوند، نیاز به استفاده از بیش از یک نوع پایگاه داده نو اسکیوال بیشتر دیده میشود. استفاده از ویژگی چند مدلی آرانگو دیبی میتواند با ترکیب چند نوع از نو اسکیوال در کنار هم اما در یک زیرساخت، تا حدی زیادی معماری را سهولت بخشد.
آرانگو دیبی به شما امکان می دهد با مقیاس پذیری عمودی و افقی به سرعت با شرایط مورد نیاز برای بهبود عملکرد و ذخیره سازی داده های مورد نظرتان سازگار شوید. همچنین از مقیاس پذیری مستقل مدل های مختلف داده پشتیبانی می کند و به شما امکان می دهد تا منابع سخت افزاری دیتابیس خود را به سرعت کاهش دهید و در هزینه های عملیاتی صرفه جویی کنید.
پایگاه های داده چند مدلی به شما امکان می دهند از فناوری های مختلف ذخیره سازی استفاده کنید که با نحوه استفاده از داده های شما توسط اجزای مختلف در برنامه شما بهتر مطابقت دارند.
آرانگو دیبی به شما امکان می دهد با استفاده از یک زبان پرس و جو اعلانی به هر داده ای (صرف نظر از نوع مدل آن) دسترسی پیدا کنید. این زبان بسیار شبیه به زبان استاندارد SQL است اما با برخی تفاوت های جزئی

در مقایسه با سایر دیتابیس های نو اسکیوال، یکی از مزایای بسیار مهم آرانگو دیبی همین مورد است.. آرانگو دیبی از تراکنش های قابل تعریف توسط کاربر پشتیبانی می کند. تراکنش های در آرانگو دیبی Atomic, Isolated, Consistent و Durable هستند.. به این ترتیب موارد زیر تضمین میشوند:
برای برسی بیشتر محدودیت ها در تراکنش ها، مستندات را بررسی کنید.
در ریاضیات گسسته ، نمودار به عنوان مجموعه ای از رأس و لبه ها تعریف می شود. در محاسبات یک نوع داده انتزاعی در نظر گرفته می شود که در نمایش ارتباطات (Relations) واقعاً خوب عمل کند; برخلاف ساختار داده های جداول در سیستم های دیتابیس های رابطه ای ، که از قضا در بیان روابط بسیار محدود هستند.
یک نمودار را می توان بصورت مستقیم در رابط کاربری وب آرانگو دیبی Visualize و دستکاری کرد. در این رابط کاربری تنظیمات زیادی برای نمایش لبه ها و راس ها قرار دارد.
در تصویر زیر دیتا سِتی از اطلاعات IMDB را با درجه عمق ۴ و نتایج محدود به ۳۰۰ آیتم رو میبینیم.. که نوع لبه Visualize شده به صورت منحنی و با برچسب های راس و لبه سفارشی تنظیم شده است. این یک نمای سریع از ژانرها ، فیلم های آن ژانرها و بازیگرانی است که در آن فیلم ها بازی کرده اند.

همانطور که برنامه شما رشد می کند ، به احتمال زیاد اندازه نمودار های شما همراه با آن رشد میکند. آرانگو دیبی برای اطمینان از پرفرمنس راه حلی را به نام SmartGraphs ارائه می دهد.
مشکل اصلی پرفرمنس از Latency شبکه ناشی می شود. مخصوصا زمانی که نمودار های روی کلاستر های مختلف هستند..

که نهایتا با اسمارت گراف نتایج زیر حاصل میشه:

تصاویر زیر نتایج بنچ مارک آرانگو دیبی با سایر دیتابیس های مطرح هست:


برای بررسی کامل بنچ مارکها میتوانید این مقاله را دنبال کنید
نتایجی که من از تست این دیتابیس به دست آوردم، همه بیان کننده پرفرمنس بالای این دیتابیس هست.. آرانگو دیبی با بهره گرفتن از متد های مدرن Deployment به راحتی قابل استفاده است. (استفاده از Kubernetes, Docker و کلاستر کردن نود ها به راحتی امکان پذیر است)
همچنین با پشتیبانی از چند مدل داده ها، آرانگو دیبی تعداد کامپوننت هایی که باید نگهداری شوند را کاهش داده و باعث کاهش پیچیدگی در معماری میشود.
این دیتابیس نسبتا جوان است (۲۰۱۱) اما به خوبی توانسته درایور های زبان های مطرح را ارائه کند.. و برای برخی فریمورک ها نیز پکیج هایی جهت Integration وجود دارد.
چنانچه در پروژه های پیش رو به خواصی که بررسی کردیم نیاز داشتید، حتما این دیتابیس را بیشتر مورد بررسی قرار دهید.
نسخه انگلیسی مقاله در مِدیوم:
https://medium.com/@ali.bayat/arangodb-features-review-7db4d72824b3