A key-value database is a non-relational database (NoSQL) that stores data using a simple key-value mechanism. Its structure is similar to maps or dictionaries, where each key is associated with one value only. The simplicity of this model makes a key-value database fast, easy to use, scalable, portable, and flexible.
At its most basic level, a rate limiter restricts the number of events a certain object (person, device, IP, etc.) can do in a given time range. A rate limiter, in general, restricts the number of requests a sender can send in a given period of time. Once the cap is reached, Rate Limiter blocks requests.
Latency is an essential system design concept that determines how fast the data transfers from the client to the server and back to the client. The lower the Latency, the better the performance. This blog will focus on the conceptual understanding of Latency, how it impacts the system's performance, and measures to improve Latency.
Process management involves executing various tasks such as creating processes, scheduling processes, managing deadlock, and termination of processes. It is the responsibility of the operating system to manage all the running processes of the system. In this blog, we will learn about process management and various algorithms related to it.
The client-server architecture is a distributed application framework consisting of clients and servers in which the server hosts, manages, and delivers the client’s services. Here clients are connected to a central server, and they communicate over a network or internet connection through a computer network.
YouTube is a frequently used social networking platform for video sharing and advertising. It is a widely used service, so our system should be cost efficient, highly available, scalable, and reliable. It should offer low latency and high throughput. This blog will focus on youtube system design and discussion around various components.