دو روش رایج برای پیاده سازی الگوی نسخه replica خواندن وجود دارد:
میانافزار مسیریابی واضحی بین برنامه و سرورهای پایگاه داده را فراهم میکند. میتوانیم منطق مسیریابی را بر اساس قواعد خاصی مانند کاربر، طرح، دستورات و غیره سفارشی کنیم.
میانافزار پایگاه داده به عنوان یک پروکسی بین برنامه و پایگاه دادهها عمل میکند. آن از پروتکل شبکه استاندارد MySQL برای ارتباط استفاده میکند.
مزایا:
کد برنامه سادهتر میشود. برنامه نیازی به آگاهی از توپولوژی پایگاه داده و مدیریت دسترسی مستقیم به پایگاه داده ندارد.
سازگاری بهتر. میانافزار از پروتکل شبکه MySQL استفاده میکند. هر کلاینت سازگار با MySQL میتواند به راحتی به میانافزار متصل شود. این امر انتقال پایگاه داده را آسانتر میکند.
معایب:
افزایش پیچیدگی سیستم. یک میان افزار پایگاه داده یک سیستم پیچیده است. از آنجایی که تمام درخواست های پایگاه داده از طریق میان افزار می گذرند، معمولا نیاز به یک تنظیم با قابلیت دسترسی بالا برای جلوگیری از یک نقطه شکست تک دارد.
لایه میان افزار اضافی به معنای تاخیر شبکه اضافی است. بنابراین، این لایه نیازمند عملکرد عالی است.
در این تنظیمات، تمام دستورات تغییردهنده داده مانند درج، حذف یا بهروزرسانی به پایگاه داده اصلی ارسال میشوند و خواندنها به نسخههای تکراری و تکثیر شده جهت خواندن فرستاده میشوند.
یک مشکل عمده در این تنظیمات وجود دارد: تاخیر تکثیر (𝐫𝐞𝐩𝐥𝐢𝐜𝐚𝐭𝐢𝐨𝐧 𝐥𝐚𝐠).
در شرایط خاصی (تاخیر شبکه، اشباع سرور و غیره)، ممکن است دادهها در نسخههای تکثیر شده، چند ثانیه یا حتی چند دقیقه عقب باشند. در این حالت، اگر آلیس بلافاصله پس از ثبت سفارش، وضعیت سفارش را بررسی کند (درخواست پرس و جو از نسخه تکثیر شده سرویس داده میشود) و حتی ممکن است اصلاً سفارشی را مشاهده نکند. این باعث سردرگمی آلیس میشود. در این حالت، ما به "هماهنگی خواندن پس از نوشتن" نیاز داریم.
راهحلهای ممکن برای کاهش این مشکل: