Concurrency Control
Overview ACID stands for Atomicity, Consistency, Isolation, and Durability. It was coined in 1983 by Theo H盲rder and Andreas Reuter to define a standard for database fault-tolerance mechanisms. However, in reality, databases implement it in various ways, leading to different outcomes. So, when a database claims to adhere to ACID, we cannot be entirely sure of everything. Let鈥檚 be cautious about that. Atomicity A transaction is a set of operations that must be performed as a single unit....
Memory Management
Overview Storing data on a hard disk is necessary to ensure duration. However, directly working with disks can significantly decrease performance. Therefore, like other software, databases also have a buffer layer (buffer pools) in front of the disk to reduce disk I/O requests. What is a buffer pool? The buffer pool is the memory layer in front of the Disk. It is a mechanism to avoid accessing the disk whenever data is required....
How are databases stored on Disk?
Overview Although I often use a database to store data, I think I know it well enough. After reading the book, I realized I don鈥檛 know much about databases. So I wrote this series of articles to learn more about databases. This series of articles will help you understand how databases work. A page is a block of data read or written in a single I/O disk operation. That means the disk always reads or writes a page, even if you only update 1 byte of data....
Channel In Golang
Overview Golang or Go is a programming language that supports concurrency through goroutines, lightweight threads of execution. Goroutines can communicate and synchronize with each other using channels, which are built-in data structures that act as pipes between them. Channels are a fundamental feature of Go that enable safe and efficient communication and synchronization between goroutines. Goroutine This article will explore the following: How are go channels implemented? How does channel handle concurrency?...