دانلود رایگان مقاله الگوهای پایگاه داده توزیع شده
ترجمه رایگان

دانلود رایگان مقاله الگوهای پایگاه داده توزیع شده

عنوان فارسی مقاله: الگوهای پایگاه داده توزیع شده
عنوان انگلیسی مقاله: Distributed Database Patterns
کیفیت ترجمه فارسی: مبتدی (مناسب برای درک مفهوم کلی مطلب)
مجله/کنفرانس: پایگاه داده های نسل بعدی - Next Generation Databases
رشته های تحصیلی مرتبط: مهندسی کامپیوتر
گرایش های تحصیلی مرتبط: معماری سیستم های کامپیوتری - علوم داده - طراحی صفحات وب
کلمات کلیدی فارسی: جستجوی محدوده - گره اصلی - گره مجازی - سیستم فایل توزیع شده Hadoop - سیستم فایل توزیع
کلمات کلیدی انگلیسی: Range Query - Master Node - Virtual Node - Hadoop Distribute File System - Distribute File System
نوع نگارش مقاله: فصل کتاب (Book Chapter)
شناسه دیجیتال (DOI): https://doi.org/10.1007/978-1-4842-1329-2_8
لینک سایت مرجع: https://link.springer.com/chapter/10.1007/978-1-4842-1329-2_8
دانشگاه: ویکتوریا، استرالیا
صفحات مقاله انگلیسی: 22
صفحات مقاله فارسی: 29
ناشر: اسپرینگر - Springer
سال انتشار مقاله: 2015
مبلغ ترجمه مقاله: رایگان
ترجمه شده از: انگلیسی به فارسی
کد محصول: F2305
نمونه ترجمه فارسی مقاله

           مدیران برنامه‌های کاربردی وب به‌طور سنتی، به‌هنگام تقاضای برنامه‌ای بیش از ظرفیت پایگاه‌داده، دو راه بیشتر ندارند: مقیاس‌گذاری با افزایش قدرت سرورهای شخصی، یا مقیاس‌گذاری با اضافه کردن سرورهای بیشتر. برای بسیاری از پایگاه‌داده‌های رابطه‌ای، مقیاس‌گذاری با افزایش قدرت سرورهای شخصی گزینه عملی‌تری بود. اخیرا پایگاه‌داده‌های رابطه‌ای، گزینه‌ی خوشه‌بندی را فراهم نمی‌کردند، درحالی‌که پردازنده و حافظه عرضه شده توسط یک سرور به‌طور مداوم و به‌صورت تصاعدی و بنا به قانون Moore در حال افزایش بود. در نتیجه، مقیاس‌گذاری با اضافه کردن سرورهای بیشتر نه‌تنها عملی نیست بلکه لازم هم نیست. 

         بااین‌حال، زمانی‌که حجم‌کار پایگاه‌داده از برنامه‌های کلاینت سرور درحال اجرا به پشت دیوار آتش برنامه‌های کاربردی وب با دامنه بالقوه جهانی منتقل می‌شود، پشتیبانی از حجم‌کار و دسترسی به نیازمندی‌ها بر روی تک سرور به‌طور فزاینده‌ای دشوار می‌شود. علاوه براین، برنامه‌های کاربردی اینترنت اغلب در معرض رشد غیرقابل پیش‌بینی و عظیمی در حجم‌کار هستند: بنابراین برای یک نرم‌افزار، "go viral" امکان‌پذیر می‌شود و به‌طور ناگهانی رشد نمایی در تقاضا را تجربه می‌کند. نقطه شیرین اقتصادی برای سخت‌افزار کامپیوتر و الزامات رشد فزاینده‌ای در خوشه‌های سرور به جای تک سرور داشته است. بنابراین یک راه‌حل مقیاس‌پذیر برای پایگاه‌داده  ضروری به نظر می‌رسد. 

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

پایگاه‌داده‌های رابطه‌ای توزیع‌شده 

           سیستم‌های پایگاه‌داده برای اولین بار برای اجرا بر روی یک کامپیوتر طراحی شده بودند. در واقع، قبل از انقلاب کلاینت سرور، تمام اجزای برنامه‌های کاربردی از جمله پایگاه‌داده‌های اولیه، تماما در یک سیستم واحد اجرا می‌شدند: پردازنده مرکزی. 

         در این مدل متمرکز، تمام کدهای برنامه برروی سرور اجرا می‌شود و کاربران با کد برنامه از طریق پایانه‌های dump (پایانه‌ها "dump" هستند چرا که حاوی هیچ کد نرم‌افزاری نیستند) ارتباط برقرار می‌کنند. در مدل کلاینت سرور، منطق کسب‌وکار به اجرا درآمده معمولا رایانه‌های شخصی ویندوز هستند-که با یک تماس پایان، با سرور پایگاه‌داده ارتباط برقرار می‌کنند. در برنامه‌های کاربردی اینترنت، منطق کسب‌وکار در یک یا چند سرور برنامه‌های تحت وب اجرا می‌شد، درحالی‌که منطق ارائه شده بین مرورگر وب و سرور برنامه کاربردی، به اشتراک گذاشته می‌شود و هنوز هم تقریبا همیشه با یک سرور پایگاه‌داده ارتباط برقرار می‌کند. 

تکرار 

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

          تکرار پایگاه‌داده اغلب از تراکنش‌های صورت گرفته در بسیاری از پایگاه‌داده‌های رابطه‌ای برای حمایت از تراکنش‌های ACID استفاده می‌کند. در این مقاله الگوی تراکنش‌های ورودی در مورد حافظه پایگاه‌داده‌ها در فصل 7 معرفی شده است. هنگامی که یک تراکنش در یک پایگاه‌داده  ACID سازگار باشد، رکورد تراکنش بلافاصله پس از ورود به لاگ تراکنش برای حفاظت در برابر شکست نوشته می‌شود. نظارت بر فرآیند تکرار در لاگ تراکنش‌ها می‌تواند منجر به تغییرات پشتیبان‌گیری در پایگاه‌داده گردد، در نتیجه یک کپی ایجاد می‌کند. 

         شکل 8-2 روش تکثیر مبتنی بر ورود به سیستم را نشان می‌دهد. تراکنش‌های پایگاه‌داده در یک فایل پایگاه‌داده‌ی ناهمزمان "تنبل" نوشته می‌شود (1)، اما تراکنش پایگاه‌داده بلافاصله وارد حالت commit می‌شود (2). روند تکرار بر ورود تراکنش‌ها و اعمال معاملات همانند نوشتن فقط خواندنی در پایگاه‌داده نظارت می‌کند (3). تکرار معمولا ناهمزمان است، اما در برخی از پایگاه‌داده‌‌ها commit می‌تواند تا تکرار تراکنش به تعویق بیافتد. 

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

دیسک به‌اشتراک گذاشته شده و به اشتراک گذاشته نشده 

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

نمونه متن انگلیسی مقاله

           Administrators of web applications have traditionally had two choices when the application demand exceeds database capacity: scaling up by increasing the power of individual servers, or scaling out by adding more servers. For most of the relational database era, scaling up was the more practical option. Early relational databases did not provide a clustering option, whereas the CPU and memory supplied by a single server was constantly and exponentially increasing in line with Moore’s law. Consequently, scaling out was neither practical nor necessary.

          However, as database workloads shifted from client-server applications running behind the firewall to web applications with potentially global scope, it became increasingly difficult to support workload and availability requirements on a single server. Furthermore, Internet applications were often subject to unpredictable and massive growth in workload: it became possible for an application to “go viral” and to suddenly experience exponential growth in demand. The economic sweet spot for computer hardware and the imperatives of growth increasingly encouraged clusters of servers rather than single, monolithic proprietary servers. A scale-out solution for databases became imperative.

         To address the demands of web-scale applications, a new generation of distributed nonrelational databases emerged. In this chapter, we’ll dive deep into the architectures of these distributed database systems.

Distributed Relational Databases

           The first database systems were designed to run on a single computer. Indeed, prior to the client-server revolution, all components of early database applications—including all the application code—would reside on a single system: the mainframe.

          In this centralized model, all program code runs on the server, and users communicate with the application code through dumb terminals (the terminals are “dumb” because they contain no application code). In the client-server model, presentation and business logic were implemented on workstations— usually Windows PCs—that communicated with a single back-end database server. In early Internet applications, business logic was implemented on one or more web application servers, while presentation logic was shared between the web browser and the application server, which still almost always communicated with a single database server.

Replication

         Database replication was initially adopted as a means of achieving high availability. Using replication, database administrators could configure a standby database that could take over for the primary database in the event of failure.

         Database replication often took advantage of the transaction log that most relational databases used to support ACID transactions. We introduced the transaction log pattern in the context of in-memory databases in Chapter 7. When a transaction commits in an ACID-compliant database, the transaction record is immediately written to the transaction log so that it is preserved in the event of failure. A replication process monitoring the transaction log can apply changes to a backup database, thereby creating a replica.

         Figure 8-2 illustrates the log-based replication approach. Database transactions are written in an asynchronous “lazy” manner to the database files (1), but a database transaction immediately writes to the transaction log upon commit (2). The replication process monitors the transaction log and applies transactions as they are written to the read-only slave database (3). Replication is usually asynchronous, but in some databases the commit can be deferred until the transaction has been replicated to the slave.

         As we saw in Chapter 3, replication is typically a first step toward distributing the database load across multiple servers. Using replication, the read workload can be distributed in a scale-out fashion, although database transactions must still be applied to the master copy.

Shared Nothing and Shared Disk

         The replication pattern for distributing database workloads works well to distribute read activity across multiple servers, but it does not distribute transactional write loads, which still must be directed exclusively to the master server.

فهرست مطالب (ترجمه)

پایگاه‌داده‌های رابطه‌ای توزیع‌شده 

تکرار 

دیسک به‌اشتراک گذاشته شده و به اشتراک گذاشته نشده 

پایگاه‌داده‌ی توزیع شده‌ی غیررابطه‌ای 

MongoDB shardingو تکرار 

sharding

 مکانیزم sharding

تعادل خوشه 

تکرار 

نگرانی نوشتن و اولویت خواندن 

HBase

جداول، مناطق، و RegionServers 

ذخیره و محلیت داده 

مرتب‌سازی Rowkey 

انشعاباتRegionServer، حفظ تعادل و شکست

تکرار منطقه 

Cassandra

شایعات بی‌اساس 

هش سازگار 

پارتیشن‌بندی جهت محافظت از سفارش‌ها 

تکرارها 

Snitches 

خلاصه 

فهرست مطالب (انگلیسی)

Distributed Relational Databases

Replication

Shared Nothing and Shared Disk

Nonrelational Distributed Databases

MongoDB Sharding and Replication

Sharding

Sharding Mechanisms

Cluster Balancing

Replication

Write Concern and Read Preference

HBase

Tables, Regions, and RegionServers

Caching and Data Locality

Rowkey Ordering

RegionServer Splits, Balancing, and Failure

Region Replicas

Cassandra

Gossip

Consistent Hashing

Order-Preserving Partitioning

Replicas

Snitches

Summary