این مقاله به مشکل تداخل هنگام افزایش شمارندهها در پایگاه دادههای PostgreSQL میپردازد، بهویژه در زمان افزایش ناگهانی درخواستها. روش سنتی افزایش یک ستون INT در یک ردیف واحد میتواند منجر به قفل شدن و کاهش کارایی شود. نویسنده راه حل "الگوی شمارنده شیاری" را معرفی میکند که در GitHub استفاده شده است. این الگو شامل استفاده از یک جدول جداگانه با اسکیما خاص است که در آن شمارندهها در اسلاتهای مختلف توزیع میشوند. این کار باعث کاهش تداخل و افزایش همزمانی میشود. یک پرس و جوی نمونه برای افزایش شمارنده با استفاده از این الگو به این صورت است: INSERT INTO slotted_counters(record_type, record_id, slot, count) VALUES (123, 456, RAND() * 100, 1) ON DUPLICATE KEY UPDATE count = count + 1;
مشاهده مطلب اصلی