بايگانی‌ وب‌نوشت

جایگاه NoSQL در دنیای امروز توسعه نرم افزار

قبل تر در دو مقاله  به معرفی NoSQL و نمونه هایی از آن که در .NET قابل استفاده هستند، پرداخته بودم. در این مقاله که از مجله ی ماهانه ی سایت Dr Dobbs برای شما ترجمه کردم، جایگاه این نوع از  دیتابیس را از منظر دیگه ای بررسی می کنم.

بابک فخریلو

یک از موضوعات بحث برانگیزی که حول NoSQL در بین توسعه دهندگان و معماران سیستم در جریان است، این است که بهترین جا برای استفاده از این نوع دیتابیس ها، کجاست. باور به بعضی فناوری ها، زمان زیادی را می طلبد. به عقیده برخی از توسعه دهندگان، NoSQL برای برنامه های کاربردی خاصی می تواند مفید باشد و دیتابیس های از نوع RDBMS همچنان چیرگی گذشته خود را حفظ خواهند کرد. چنین بحث هایی مانع از تغییرات بنیادین در چگونگی توسعه ی برنامه های کاربردی می شود. باهم چند ویژگی اساسی NoSQL را بررسی می کنیم تا ببینم تاثیر آن بر شکل دهی معماری برنامه های کاربردی در آینده و حتی حال حاضر چگونه خواهد بود.

بسط پذیری و Big Data

دیگر بحث بر سر داده هایی با چندین گیگابایت نیست، حتی برنامه های با اندازه کوچک هم با ترابایت یا پتابایت سر و کار دارند، که بیشتر این حجم از داده به طور مدوام در حال تغییر و رشد کردن است. هرچه بار داده ای بیشتر می شود، سازمان های IT محور به دنبال راهی خواهند بود که به سرعت سیستم خود را، بدون پرداخت صدهاهزار دلار برای خرید یک سرور، بسط و توسعه دهند.

دیتابیس های NoSQL برای چنین نیازی هایی راه حل ارائه می  دهند، چرا که طوری طراحی شده اند تا اصلاحا scale out شوند و نه scale up. این دیتایس ها با عملکرد خودکار روی چندین سرور ارزان قیمت یا روی بستر cloud، امکان افزایش و کاهش ظرفیت را با هزینه ای مقرون به صرفه فراهم می کنند. شما بدون نیاز به پرداخت هزینه های بالا، سیستمی با عملکرد فوق العاده خواهید داشت.

از انجایی که محدودیت بسط پذیری این دیتابیس ها کم است، در مدیریت حجم داده های زیاد، که نیاز برنامه های امروز است، بسیار بهتر عمل می کند.

تغییر معماری سیستم

با ظهور سیستم های Cloud، شکل گیری سیستم های نرم افزاری هم به شکل قابل توجهی دچار تحول شده است، و این تغییر با بروز انواع جدیدی از فناوری ها و سرورها، ادامه خواهد داشت. یک instance از دیتابیس می تواند خیلی ساده  در هزاران node پخش شود، که این node ها هم در سرتاسر دنیا پراکنده شده اند، و به میلیون ها کاربر در سرتاسر دنیا به طور همزمان سرویس می دهند.

NoSQL به طور ذاتی با معماری سیستم های جدید تطابق دارد، یعنی طوری طراحی شده که در node های بیشماری بسط پیدا می کند و با اضافه و کم شدن یک node، همچنان به عملکرد خود ادامه می دهد. این شکل از  طراحی، هزینه های بسط سیستم و نیز مدیریت سیستم (system administration) را کاهش می دهد. خیلی از دیتابیس های NoSQL حتی قابلیت location-aware را نیز دارند، یعنی بسته به محل جغرافیایی کاربر، سرعت ارائه داده ها می تواند افزایش پیدا کند (مانند انچه در Content Delivery Network ها وجود دارد).

سادگی استفاده

از آنجایی که این دیتابیس ها، برخلاف RDBMS، schema ی ثابت ندارند، کار کردن با آنها ساده است. شما می توانید خیلی سریع برنامه ی خود را اماده کنید، بدون این که نگران باشید به خاطر تغییر در سیستم نرم افزاری تان، مجبور به سپری کردن زمان برای تغییر schema باشید. به اضافه این که خاصیت document-oriented بودن این دیتابیس ها، نیاز به تبدیل پرس و جوهای SQL به کد object-oriented (انچه که ORM ها انجام می دهند)، و برعکس را، برطرف می کند. خوب با این توضیحات آیا NoSQL جایگزین RDBMS خواهد شد؟ پاسخ این است که نه به این زودی ها. باید چشم انتظار آینده بود…آینده ای نزدیک البته

برگرفته از:

Why NoSQL Is Here To Stay

بیشتر بخوانید:

NoSQL چیست؟

RavenDb

چیزی به نام حذف شدن (delete) در اینترنت وجود ندارد!!!

ترجمه و بازنویسی : بابک فخریلو

پیش از خواندن این مقاله :
خوب من و خیلی های دیگه قبلا نسبت به عملکرد شبکه های اجتماعی پیش از این هشدار داده بودیم . این مقاله که از بخش تکنولوژی سایت یاهو گرفته شده زنگ خطر خوبیه برای اون افرادی که بیش از اندازه به شبکه های اجتماعی اعتماد دارن . در ضمن توی این مقاله یه مساله خیلی جالب که برای خودم بارها سوال بود رو یاد گرفتم .

همیشه نوشتن درباره تحقیقی که خودتون هم می تونید  انجامش بدید کار جالبیه .

مثلا این یکی را ببینید :
یک عکس بگیرید و به facebook آپلودش کنید  ، بعد از یک یا چند روز ، به URL تصویر توجه کنید .(خود تصویر نه صفحه ای که عکس در آن نمایش داده می شود .) ، سپس آن را حذف کنید .یک ماه بعد برگردید و ببینید که لینک کار می کند یا نه . جواب این است : بله کار می کند .

این ماجرا فقط برای فیس بوک نیست .محققان در دانشگاه Cambridge دریافته اند که تقریبا نیمی از سایت های شبکه اجتماعی تصاویر را به این زودی ها که کاربر درخواست حذف آن را می دهد ، حذف نمی شوند . به طور کلی ، سایت هایی چون Flickr که با تصویر سر و کار دارند ، در این تحقیق بسیار سریع تر نسبت به درخواست کاربر برای حذف کامل تصویرعمل می کنند .

حالا سوال اینجا است که چرا تصاویر حذف شده برای مدت طولانی باقی می مانند ؟ مشکل ، مربوط به شیوه ذخیره شدن آن ها در سایت های بزرگ است می دانید که رایانه شخصی شما تنها یک کپی از فایل را نگهداری می کند ، . { این بخش مقاله برای من مدت ها سوال بود}  اما سایت هایی با خدمات گسترده چون Facebook ، برای مدیریت و توزیع داده ها ، وابسته به شبکه هایی که content delivery نامیده شوند ، هستند .این  سیستم پیچیده ای است که در آن داده ها در چند intermediate devices کپی می شوند ، تا سرعت دسترسی همزمان میلیون ها کاربر به یک فایل ، افزایش پیدا کند . اما از آنجایی که تغییرات از میان CDN به سرعت بازتاب داده نمی شوند ، کپی های دیگر فایل ممکن است برای روزها یا هفته ها باقی بمانند .

البته ، وقتی تصویری از صفحه شبکه اجتماعی چون فیس بوک حذف می شود ، شانس حذف دائمی آن بیشتر می شود .سیستم caching گوگل در بایگانی کردن کپی های محتوای وب ، مدت ها پس از حذفشان ، بسیار موثراست .هرکسی که با جست و جوی تصویری گوگل کار کرده باشد ، می داند که اگر تصویری که دنبالش می گردد مدت ها پیش حذف شده باشد ، thumbnail آن برای ماه ها در گوکل باقی خواهد ماند .

یک نکته خیلی مهم  : تصاویری دارید که نمی خواهید دیگران ببینند ؟ خیلی ساده است ، آن ها را آپلود نکنید .

منبع : بخش تکنولوژی سایت یاهو