نوشته‌های ترمینالی
2.7K subscribers
425 photos
12 videos
32 files
2.26K links
Download Telegram
دیتابیس‌ها (DBMSها) چطوری اطلاعات رو روی دیسک ذخیره میکنند؟
واقعیت اینه که وقتی حجم اطلاعاتمون زیاده و نیاز به پایداری داریم، نگهداریشون توی Ram امکان‌پذیر نیست و مجبوریم توی دیسک بنویسیم.
اما این DMBSها چطوری اطلاعات رو توی دیسک می‌نویسن که حداکثر کارایی رو داشته باشه؟

چیزی که خوندم (لینک هاش در پایین) اینطوریه که اطلاعات رو در یکسری بلوک ۴ کیلوبایتی نگهداری می‌کنن. این ۴کیلوبایت احتمالا یه ضریبی از بلوک های هارد دیسکه، در نتیجه هربار که یه بلوک رو بخواد، هارد دیسک هم همونقدر میخونه نه بیشتر (که باعث هدر رفتنه) نه کمتر (که باعث میشه دو یا چند بار دیسک بلوک بخونه)

علاوه بر این دیتابیس بلوک های خونده شده رو توی رم نگه میداره (تا جایی که سیستم عامل اون دیتا رو باز نبره توی هارد و page fault بشه). حتی اگه یه پیج تغییر کردی هم توی مموری می نویسه ولی یادش هست اون پیج dirty شده و بعدا دوباره می‌نویسه توی هارد.

منابع:
https://stackoverflow.com/questions/7901581/how-does-a-typical-rdbms-store-and-locate-blocks
و
https://www.quora.com/How-does-a-relational-DBMS-internally-store-its-data-In-what-type-of-data-structure-How-does-it-offer-the-rapid-retrieval-without-loading-the-entire-database-into-the-main-memory-I-have-heard-many-DBMS-use-B-trees
دوست دارید دوستاتون از طریق دیسکورد بدونن شما مشغول ادیت فایل با ویم هستین؟

این افزونه برای شماست.
https://github.com/vimsence/vimsence
Knock knock Race condition Who's there?

— I Am Devloper
همونطور که می‌دونین، هم‌روندی در گو به کمک چنل هاست.
این مدل رو میگن csp یا
communicating sequential processes

در موردش بیشتر بخونین:
https://en.wikipedia.org/wiki/Communicating_sequential_processes
به نظرم دوستانه‌ترین و واضح ترین مطلبی بود که در مورد چرا لینوکس خونده بودم.

اگر خودمم میخواستم بنویسم همین رو می‌نوشتم، فقط مثال هام با arch بود.
https://vrgl.ir/zpgFH
سامانه هوشمند قطعی برق رو یکی وصل کنه حالا
https://shahab.tbtb.ir/public/map/index
آموزش ویم: هرجا اشتباه کردی u رو بزنی مثل undo عمل میکنه.

من که اشتباهی u زدم و ناخواسته undo شده با زدن مجدد u:
🧐🧐