9 Aug 2026, 09:16 UTC56 views1 reactionsread 9 August 2026 connection Pooling چطور ارتباط با Database رو بهینه میکنه؟ 🤔
وقتی یه درخواست وارد یه Backend Service میشه، معمولاً نیاز داره برای گرفتن یا تغییر دادن دادهها با Database ارتباط برقرار کنه. در نگاه اول شاید ساده به نظر برسه:
درخواست میاد → Connection ساخته میشه → Query اجرا میشه → Connection بسته میشه
اما توی یه سیستم واقعی که صدها یا هزاران درخواست در ثانیه دریافت میکنه، این مدل میتونه تبدیل به یه مشکل بزرگ بشه.…
🔥1
Signed Denver
6 Aug 2026, 08:39 UTC189 views3 reactionsread 9 August 2026 Redis چطور کلیدهای منقضی شده رو حذف میکنه؟ 🤔
یکی از قابلیتهای مهم Redis، امکان تعیین زمان انقضا برای کلیدهاست. مثلاً میتونیم یک کلید بسازیم که فقط برای چند دقیقه معتبر باشه. این قابلیت برای چیزهایی مثل Sessionها، Cacheها، OTPها و... خیلی استفاده میشه.
اما یک سؤال جالب وجود داره:
وقتی برای یک کلید مقدار TTL تعیین میکنیم، Redis چطور متوجه میشه زمانش تمام شده؟
Redis چطور زمان انقضا رو ذخیره میکنه؟ 🧠
وقتی برای یک…
🔥2👏1
Signed Denver
4 Aug 2026, 09:04 UTC226 views3 reactionsread 9 August 2026 Database Replication دقیقاً یعنی چی؟ 🧠
Replication یعنی ایجاد چند نسخه از دادهها روی چند Database Server مختلف. توی این معماری، معمولاً یه Node اصلی داریم که مسئول دریافت تغییرات داده هست و Nodeهای دیگه یک کپی از دادهها رو نگهداری میکنن. هدف اصلی Replication این نیست که فضای بیشتری برای ذخیرهسازی داشته باشیم. هدف اصلی اینه که بتوانیم تعدا Request بیشتری رو مدیریت کنیم و فشار روی Database اصلی رو کم کنیم. به زبا…
❤3
Signed Denver
2 Aug 2026, 10:24 UTC281 viewsread 9 August 2026 TCP Connection چطور ساخته و بسته میشه؟ 🤔
وقتی یک Client میخواد با یک Server ارتباط برقرار کنه، معمولاً اولین چیزی که به ذهنمون میاد اینه که: "یک Connection ساخته میشه و بعد دادهها رد و بدل میشن."
اما پشت این Connection ساده، یک فرآیند دقیق وجود داره که TCP برای ایجاد یک ارتباط قابل اعتماد انجام میده. TCP فقط یک کانال برای ارسال داده نیست؛ بلکه مسئولیتهایی مثل اطمینان از رسیدن دادهها، ترتیب درست Packetها و مدیریت…
Signed Denver
30 Jul 2026, 09:40 UTC96 views1 reactionsread 9 August 2026 چطور تعداد Requestها رو کنترل میکنیم؟ 🤔
وقتی یک API یا یک سرویس در اختیار کاربرا قرار میدیم، یکی از مشکلاتی که دیر یا زود باهاش مواجه میشیم، حجم زیاد Requestهاست. این حجم زیاد میتونه دلایل مختلفی داشته باشه؛ از استفادهی عادی کاربرا گرفته تا یک Client که به دلیل خطا تعداد زیادی درخواست ارسال میکنه یا حتی یک حملهی عمدی که هدفش مصرف منابع سیستم هست.
اگر هیچ محدودیتی روی تعداد Requestها وجود نداشته باشه، یک Clien…
🔥1
Signed Denver
30 Jul 2026, 09:40 UTC390 views2 reactionsread 9 August 2026 Leaky Bucket 🪣
Leaky Bucket از نظر ایده شباهتهایی به Token Bucket داره، اما هدف اصلی اون کنترل نرخ خروجی Requestهاست. توی این الگوریتم، Requestهای ورودی وارد یک Queue میشن و با یک سرعت ثابت پردازش میشن. یعنی حتی اگه تعداد زیادی Request در یک لحظه وارد سیستم بشه، خروجی با یک Rate مشخص انجام میشه. این رفتار باعث میشه فشار ناگهانی روی بخشهای دیگر سیستم کاهش پیدا کنه و Traffic ورودی به شکل کنترلشدهتری پردازش بشه.
ا…
❤2
Signed Denver
28 Jul 2026, 08:50 UTC551 views1 reactionsread 9 August 2026 Redis چطور با یک Thread تعداد زیادی Request رو مدیریت میکنه؟ 🤔
وقتی دربارهی Performance صحبت میکنیم، معمولاً یکی از اولین چیزهایی که به ذهنمون میاد استفاده از Threadهای بیشتره. منطق هم ساده به نظر میرسه: Thread بیشتر یعنی کار بیشتر، پس سرعت بالاتر.
اما Redis سالهاست با یک مدل متفاوت کار میکنه. Redis بخش اصلی پردازش Commandهای خودش رو با یک Thread اصلی انجام میده و با همین معماری میتونه تعداد زیادی Request رو د…
❤1
Signed Denver
26 Jul 2026, 07:49 UTC255 views1 reactionsread 9 August 2026 NGINX چطور هزاران Connection رو همزمان مدیریت میکنه؟ 🤔
توی پست قبلی دربارهی مدل مدیریت Request توی NGINX صحبت کردیم و دیدیم که NGINX به جای ساختن Worker جدید برای هر Request، از تعداد محدودی Worker Process استفاده میکنه.
اما یه سؤال مهم باقی میمونه:
چطور همین تعداد محدود Worker میتونن هزاران Connection همزمان رو مدیریت کنن؟
جواب این سؤال به مفهومی به اسم Event Loop برمیگرده.
مشکل اصلی کجاست؟ 🧠
وقتی یه Request…
❤1
Signed Denver
23 Jul 2026, 09:55 UTC629 views4 reactionsread 9 August 2026 چرا Nginx برای هر Request یک Process جدید نمیسازه؟ 🤔
وقتی اسم Web Server میاد، معمولاً اولین چیزی که به ذهنمون میاد اینه که یک Request وارد میشه، سرور اون رو پردازش میکنه و جواب رو برمیگردونه. اما چیزی که کمتر بهش توجه میشه، اینه که خود Web Server چطور تصمیم میگیره این Requestها رو مدیریت کنه.
این تصمیم تأثیر مستقیمی روی Performance، مصرف Memory و تعداد Connectionهایی داره که سرور میتونه همزمان مدیریت کنه.
معما…
👍4
Signed Denver
21 Jul 2026, 09:16 UTC566 views2 reactionsread 9 August 2026 Redis چطور تغییرات رو بدون متوقف کردن سرویس روی Disk ذخیره میکنه؟ 🤔
توی پست قبلی دربارهی RDB صحبت کردیم و دیدیم Redis چطور با استفاده از ()fork و Copy-On-Write از دادههای داخل Memory یه Snapshot میگیره. اما RDB یه محدودیت مهم داره:
چون Snapshotها در بازههای زمانی مشخص ساخته میشن، ممکنه تغییراتی که بعد از آخرین Snapshot اتفاق افتادن، در صورت Crash شدن Redis از بین برن.
اینجاست که مکانیزم دیگهی Redis برای Persis…
❤2
Signed Denver
19 Jul 2026, 14:38 UTC473 viewsread 9 August 2026 RDB چه مزایا و معایبی داره؟ 💡
یکی از بزرگترین مزیتهای RDB اینه که فایل خروجی معمولاً حجم کمی داره و ردیس بعد از Restart میتونه خیلی سریعتر دادهها رو دوباره Load کنه.
همچنین چون نوشتن Snapshot به صورت دورهای انجام میشه، فشار کمتری روی دیسک ایجاد میکنه.
اما مشکل اصلی اینجاست:
RDB آخرین وضعیت Memory رو ذخیره نمیکنه، بلکه آخرین Snapshot گرفتهشده رو ذخیره میکنه.
یعنی اگر ردیس Crash بشه، ممکنه تغییراتی که بعد ا…
Signed Denver
19 Jul 2026, 13:52 UTC299 viewsread 9 August 2026 ردیس چطور بدون متوقف کردن سرویس از دادهها Snapshot میگیره؟ 🤔
وقتی دربارهی ردیس صحبت میکنیم، معمولاً اولین چیزی که به ذهنمون میاد سرعت بالای اون به خاطر نگهداری دادهها داخل رم هست. اما همین موضوع یه سؤال مهم ایجاد میکنه:
اگه تمام دادههای ردیس داخل رم باشن، بعد از Restart شدن سرویس یا کرش شدن سرور چه اتفاقی برای اطلاعات میفته؟
اینجاست که مفهوم Persistence وارد ردیس میشه. ردیس با اینکه یه دیتابیس In-Memory محسوب…
Signed Denver
Showing the 12 most recent of 20 posts we hold for @MidnightCommit. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.