TGViewer
Go Casts | Systems & Agents 🚀 Go Casts | Systems & Agents 🚀 @gocasts · 9.92K subscribers
Post #560 4.29K
Go Casts | Systems & Agents 🚀 حراجمعه به Go Casts رسید! دوره +‌ تیمسازی بکند و گولنگ Go Casts لینک خرید دوره + تیمسازی با ۵۰ درصد تخفیف به مبلغ ۴ میلیون و ۵۰۰ هزار تومان https://gocasts.ir همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده https://t.me/gocasts/434 تو این پست…
بچه های فنی blackfriday که دغدغه لود دارید
به این جمله دقت کنید
let it crash to the rescue

ممکنه دغدغه concurrent transaction داشته باشید که ممکنه به روش هایی مثل گرفتن lock فکر کنید برای انجام تراکنش ها، این قضیه مخصوصا روی پیک تایم های بلک فرایدی احتمال رخ دادنش زیاده

من پیشنهاد میکنم که lock نگیرید، چون اگه بنچمارک بگیرید میبینید که احتمال رخ دادن deadlock خیلی کمه، اما رخ میده
وقتی شما از راه حل های locking استفاده میکنید، یعنی دارید برای کمتر از ۱ درصد مواقع یک بار اضافه ای به کل سیستم اضافه میکنید، مثلا ممکنه distributed locking اضافه کنید برای انجام کل تراکنش ها

حالا فرض کنید که برای این کمتر از ۱ درصد مواقع lock اضافه نکردید، چه اتفاقی میفته؟ احتمالا یک سری از تراکنش ها (کمتر از ۱ درصد احتمال زیاد) از سمت دیتابیس با خطا مواجه میشن
مثلا برای postgres ممکنه این خطا رو بگیرید
pq: deadlock detected

چون خود دیتابیس وقتی transaction باز میکنی حواسش به این چیزا هست

کافیه یه retry ساده روی خطای تراکنش بذارید که اگه خطا pq: deadlock detected بود یه بار دیگه با فاصله چند میلی ثانیه تراکنش رو امتحان کنه، احتمال خیلی زیاد در retry اول و یا حتی در retry دوم و سوم بدون مشکل deadlock تراکنش ثبت میشه.


قشنگی این راه حل چیه؟
اینکه به خاطر سناریو کمتر از ۱ درصد نیومدی راه حل و مکانیزم و معماری رو برای کل سناریوها تغییر بدی و سربار اضافه کنی

این یه جورایی نگاه let it crash هست، که میگه اجازه بده crash کنه، حالا یه فکری میکنم براش….

جواب گرفتم که میگم….

مطمئن نیستم ولی ممکنه روی یه سری دیتابیس ها حتی بدون گرفتن transaction هم deadlock تشخیص داده بشه و اگه فقط یک رکورد رو میخوای آپدیت کنی نیازی به گرفتن تراکنش دیتابیس نباشه

دقت کنید که در نهایت برای let it crash یه جایی داره error handling صورت میگیره، مثلا اینجا لازم نیست تو لایه اپلیکیشن lock بگیریم چون دیتابیس خودش این کار رو میکنه، یعنی لایه بندی داره قضیه، تو سطح اپلیکیشن کاری نمیکنی چون از دیتابیس مطمئنی



دوره +‌ تیمسازی بکند و گولنگ Go Casts
لینک خرید دوره + تیمسازی با ۵۰ درصد تخفیف به مبلغ ۴ میلیون و ۵۰۰ هزار تومان

https://gocasts.ir


همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://t.me/gocasts/434

تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://t.me/gocasts/441

دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4


@gocasts
Porsline gocasts-bootcamp-14030902-black-friday با پُرس‌لاین به راحتی پرسشنامه خود را طراحی و ارسال کنید و با گزارش‌های لحظه‌ای آن به سرعت تصمیم بگیرید.
  • ❤ 14
  • 👍 10
  • 🔥 2
More from @gocasts
  1. Oct 9, 2026با یه پارادوکسی مواجه هستیم که خیلی مهمه درست درکش کنیم. وقتی در مورد کارایی که با ایجنت‌ه…
  2. Oct 4, 2026از دیروز چند آیتم ظاهری در GoCasts به‌روز شده 🚀 اگه دقت کرده باشید، لوگو، اسم کانال و بیو…
  3. Oct 1, 2026اینم از عمو باب که تسلیم شد! کاری ندارم که با ایشون هم نظر بودید و هستید یا نه. به دور از…
  4. Oct 1, 2026ترکیب Sonnet 5.5 و Opus 5.5 این روزا خیلی خوب جواب میده. الگویی که برای من جواب داده اینه:…
  5. Sep 24, 2026این بهترین تجربه‌ای بود که تا حالا با یه agent داشتم. دیشب با تاخیر چند ساعته ایمیل هاستین…
  6. Sep 23, 2026بچه ها اگه تجربه software factory جدی داشتید توی شرکت و سازمان و محصول تون، بهم فیدبک بدید…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →