Load balancers distribute requests to servers based on various load balancing techniques. These techniques use different algorithms to select servers. There are two types of load balancing algorithms: 1) Static load balancing: round robin, URL hash, etc. 2) Dynamic load balancing: least connection method, least response time method, etc.
The least recently used (LRU) cache is one of the popular caching strategies, which defines the policy to discard the least recently used items first from the cache and make room for new elements when the cache is full. It is used to organize items in order of their use, which allows identifying items that have not been used for a long time.
The least frequently used (LFU) is a cache algorithm used to manage memory within a computer. In this method, the system keeps track of the number of times a block is referenced in memory, and when the cache is full, our system removes the item with the lowest reference frequency. LFU cache get and put operation works in O(1) average time complexity.
Bloom filter is a space-efficient data structure that tells whether an element may be in a set (either a false positive or true positive) or definitely not present in a set (True negative). It will take O(1) space, regardless of the number of items inserted. However, their accuracy decreases as more elements are added.
Data partitioning or sharding is a technique of dividing data into independent components. It is a way of splitting data into smaller pieces so that data can be efficiently accessed and managed. Database partitioning is the backbone of modern system design, which helps to improve scalability, manageability, and availability.
In system design, a proxy is a server that acts as an intermediary between a client and another server. When a client sends a request to a website, proxy server intercepts the request and communicates with the servers on behalf of these clients. In this blog, we will learn what a proxy server is, how it works and the idea of forward and reverse proxies.