برنامه نویسی

حافظه پنهان و نحوه عملکرد AWS DynamoDB Dax

مقدمه ای برای ذخیره سازی

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

ذخیره سازی تکنیکی است که برای ذخیره داده های مکرر در یک لایه با دسترسی سریع استفاده می شود ، و نیاز به واکشی مکرر همان داده ها را از یک باله کندتر مانند یک پایگاه داده کاهش می دهد. با ذخیره نسخه های داده نزدیک به کاربر ، ذخیره سازی باعث افزایش عملکرد ، بهبود پاسخگویی و کاهش بار سیستم می شود.

حال ، بیایید ببینیم که چگونه AWS DynamoDB Accelerator (DAX) حافظه پنهان را به سطح بعدی می برد.

AWS Dynamodb Dax چیست؟

Amazon DynamoDB Accelerator (DAX) یک لایه حافظه پنهان در حافظه برای DynamoDB است که عملکرد خواندن را به طور قابل توجهی بهبود می بخشد. این اجازه می دهد تا پاسخ های سطح میلی ثانیه ای برای نمایش داده شدگان که به طور معمول میلی ثانیه یا بیشتر طول می کشد اگر مستقیماً از DynamoDB بدست بیایند.

DAX کاملاً مدیریت شده است ، به این معنی که AWS از استقرار ، مقیاس گذاری و نگهداری آن مراقبت می کند. بر خلاف راه حل های ذخیره سازی سنتی مانند Redis یا Memcached ، که نیاز به تنظیم زیرساخت های اضافی دارند ، DAX یکپارچه با DynamoDB یکپارچه است.

چگونه AWS DAX کار می کند

در سطح بالایی ، DAX بین برنامه شما و DynamoDB به عنوان یک لایه ذخیره هوشمند قرار دارد. به جای برنامه شما که مستقیماً از DynamoDB پرس و جو می کند ، ابتدا با DAX بررسی می شود.

گردش کار

شرح تصویر

  1. درخواست درخواست داده ها – هنگامی که برنامه شما a ایجاد می کند GetItemبا BatchGetItemبا Query، یا Scan درخواست ، ابتدا به DAX می رود.
  2. حافظه پنهان (داده ها در حافظه نهان یافت می شود) – اگر داده های درخواستی در حال حاضر در DAX باشد ، پاسخ را فوراً بدون پرس و جو DynamoDB برمی گرداند.
  3. Cache Miss (داده ها در حافظه پنهان نیستند) – اگر داده ها در DAX نیستند ، داده ها را از DynamoDB بازیابی می کند ، آن را در حافظه نهان ذخیره می کند و سپس آن را به برنامه باز می گرداند.
  4. انقضاء و به روزرسانی داده ها – داده های ذخیره شده از خط مشی زندگی (TTL) زمان (پیش فرض 5 دقیقه) پیروی می کنند. اگر داده ها منقضی شود یا در DynamoDB به روز شود ، DAX با طراوت حافظه نهان ، ثبات را تضمین می کند.

این فرایند به طور چشمگیری نیاز به پرس و جو DynamoDB را مستقیماً ، بهبود زمان پاسخ و کاهش هزینه ها کاهش می دهد.

خوشه ها و گره های DAX

DAX به عنوان خوشه گره فعالیت می کند. هر گره نمونه ای از نرم افزار DAX است که به ذخیره و مدیریت داده های ذخیره شده کمک می کند.

انواع گره ها در DAX

  1. گره اصلی – گره اصلی که هر دو درخواست خواندن و نوشتن را کنترل می کند.
  2. ماکت ها را بخوانید – گره های اضافی که نسخه های داده های ذخیره شده را ذخیره می کنند ، برای توزیع ترافیک خوانده شده استفاده می شوند.

DAX به طور خودکار ماکت های خواندن را با گره اصلی همگام می کند تا از قوام اطمینان حاصل شود.

چگونه DAX انواع مختلفی از درخواست ها را کنترل می کند

عملیات را بخوانید (داده های واکشی)

DAX می تواند این عملیات خواندن DynamoDB را پردازش کند:

  • GetItem
  • BatchGetItem
  • Query
  • Scan

چه اتفاقی می افتد که داده ها را واکشی می کنید؟

  1. در نهایت خواندن مداوم (رفتار پیش فرض)

    • ابتدا DAX بررسی می کند که آیا مورد در حافظه پنهان وجود دارد یا خیر.
    • در صورت یافتن (ضربه حافظه نهان) → داده ها را بلافاصله برمی گرداند.
    • در صورت عدم یافتن (حافظه پنهان) → از DynamoDB ، آن را در حافظه نهان ذخیره می کند و به برنامه باز می گردد.
  2. به شدت مداوم بخوانید

    • DAX از ذخیره سازی دور می شود و داده های تازه را از DynamoDB می گیرد.

DAX برای خواندن های مداوم در نهایت بهینه سازی می کند ، و آن را برای برنامه هایی که نیازی به به روزرسانی در زمان واقعی ندارند ، ایده آل می کند.

نوشتن عملیات (به روزرسانی داده ها)

DAX از ذخیره سازی از طریق نوشتن پشتیبانی می کند ، به این معنی که هر عملیات نوشتن هم DynamoDB و هم حافظه نهان DAX را به روز می کند.

عملیات نوشتن پشتیبانی شده:

  • PutItem
  • UpdateItem
  • DeleteItem
  • BatchWriteItem

چگونه کار می کند:

  1. داده ها برای اولین بار به DynamoDB نوشته شده است.
  2. سپس ، بلافاصله در حافظه پنهان DAX به روز می شود.
  3. این تضمین می کند که آخرین مقادیر همیشه در دسترس هستند.

DAX از عملیات مدیریت جدول DynamoDB پشتیبانی نمی کند (مانند CreateTableبا UpdateTable، یا DeleteTable). اینها باید مستقیماً در DynamoDB انجام شود.

مکانیسم های ذخیره سازی DAX

حافظه نهان (برای موارد جداگانه)

  • پاسخ ها را از GetItem وت BatchGetItem نمایش داده شد
  • ذخیره شده توسط مقادیر اصلی کلید.
  • پیش فرض TTL: 5 دقیقه (قابل تنظیم).
  • از اخراج حداقل استفاده شده اخیراً (LRU) استفاده می کند ، به این معنی که قدیمی تر ، داده های بلااستفاده هنگام پر شدن حافظه نهان حذف می شوند.

مثال:

  • شما از یک پروفایل کاربر پرس و جو می کنید: GetItem("user_123")
  • DAX اگر در حافظه پنهان است ، بررسی می کند:
    • اگر بله → فوراً برمی گردد.
    • اگر NO → از DynamoDB بدست می آید ، آن را ذخیره می کند و برمی گردد.

Cache Query (برای نتایج پرس و جو و اسکن)

  • نتایج فروشگاه ها از Query وت Scan عملیات
  • ذخیره شده توسط پارامترهای پرس و جو.
  • اخراج مبتنی بر TTL و LRU اعمال می شود.

مثال:

  • شما فرار می کنید Query برای واکشی همه محصولات در یک گروه.
  • اگر ذخیره شده → DAX آن را برگرداند.
  • اگر نه → DynamoDB آن را پردازش می کند ، DAX نتایج را ذخیره می کند و سپس آنها را برمی گرداند.

رسیدگی به ترافیک بالا: مقیاس خودکار DAX و محدود کردن نرخ

اگر بسیاری از درخواست ها به یک خوشه DAX ضربه بزنند ، ممکن است بیش از حد بارگیری شود.

مقیاس بندی خودکار

  • DAX می تواند به صورت پویا گره های بیشتری را برای تحمل افزایش بار اضافه کند.
  • بخوانید ماکت ها به توزیع ترافیک کمک می کنند.

محدود کردن نرخ

  • اگر حجم درخواست بیش از ظرفیت گره باشد ، Dax با بازگشت a درخواست می کند ThrottlingExceptionبشر
  • شما می توانید نظارت کنید ThrottledRequestCount در آمازون CloudWatch برای تشخیص تنگناها.

چرا از DAX استفاده می کنیم؟

DAX برای بارهای کاری سنگین که در آن پاسخ های سریع بسیار مهم است ایده آل است. در اینجا به همین دلیل باید آن را در نظر بگیرید:

  • بسیار سریع می خواند – زمان پاسخ میلی ثانیه.
  • بار کمتر در DynamoDB – صرفه جویی در هزینه های ظرفیت خواندن.
  • کاملاً مدیریت شده – نیازی به حفظ زیرساخت های ذخیره سازی جداگانه نیست.
  • ادغام بدون درز – با تماس های API DynamoDB موجود کار می کند.
  • مقیاس بندی اتوماتیک – با افزایش ترافیک شما رشد می کند.

وقتی از DAX استفاده نکنید

  • اگر برنامه شما به قوام قوی نیاز دارد – ذخیره های DAX فقط در نهایت داده های سازگار.
  • برای بارهای کاری سنگین-از آنجا که نوشتن هنوز به DynamoDB می روند ، درج ها/به روزرسانی ها را سرعت نمی بخشد.
  • اگر به پرس و جوهای پیچیده احتیاج دارید – DAX فقط موارد جداگانه و نتایج پرس و جو را ذخیره می کند ، نه به هم پیوسته یا جمع می شود.

چگونه می توان با DAX شروع کرد

مرحله 1: یک خوشه DAX ایجاد کنید

  1. کنسول مدیریت AWS را باز کنید.
  2. به DAX بروید.
  3. روی ایجاد خوشه کلیک کنید.
  4. تنظیمات نمونه ، تعداد گره و تنظیمات VPC را پیکربندی کنید.
  5. روی پرتاب کلیک کنید.

مرحله 2: برنامه خود را وصل کنید

  • AWS SDK را با مشتری DAX نصب کنید.
  • تماس های SDK DynamoDB خود را برای استفاده از نقطه انتهایی DAX تغییر دهید.

مرحله 3: نظارت و بهینه سازی کنید

  • برای ردیابی عملکرد از Amazon CloudWatch استفاده کنید.
  • تنظیمات TTL و خط مشی های مقیاس گذاری را در صورت لزوم تنظیم کنید.

پایان

AWS DynamoDB Accelerator (DAX) یک سرویس حافظه پنهان در حافظه است که عملکرد DynamoDB را فوق العاده می خواند. این برای برنامه های کاربردی فشرده مانند موتورهای توصیه ، تابلوهای بازی و سیستم عامل های IoT مناسب است.

DAX با ذخیره خودکار پرس و جوهای مکرر ، تأخیر را به حداقل می رساند و هزینه ها را بهینه می کند و برنامه شما را بسیار کارآمدتر و مقیاس پذیر می کند.

نوشته های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا