افزایش عملکرد MongoDB: Motor Client در مقابل PyMongo – کدام سریعتر است؟

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

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

سناریوی موردی واقعی

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

کد سنکرون اوضاع را بدتر می کرد. اجرای کد منتظر می ماند تا نتیجه عملیات جاری به جلو حرکت کند. این یک گلوگاه جدی در سیستم های مقیاس پذیر است.

این باعث سرریز صف و از دست دادن اطلاعات بالقوه هر بار می شد.

محیط ناهمزمان

راه حلی که من اجرا کردم ترکیبی از موارد زیر بود:

اجازه دهید به سرعت تعاریف این موارد را مرور کنیم.

PyMongo درایور رسمی MongoDB برای پایتون است که راهی ساده و شهودی برای تعامل با پایگاه‌های داده MongoDB ارائه می‌کند. این همزمان است، به این معنی که هر عملیات پایگاه داده اجرای برنامه شما را تا زمانی که آن را کامل کند مسدود می کند، که می تواند یک …

Source link