Web Programming

The Ultimate Guide to Consistent Hashing

By
Fiverr Team
|
December 20, 2021
hashing

With the rising popularity and functionality of cloud computing and big data, distributed systems have become more relevant. One of those systems is distributed caches, which help power many high-traffic dynamic web applications and websites.

For the distributed caches to operate, they take advantage of consistent hashing, an algorithm that minimally alters as the range of hash functions changes.

In this post, you’re going to learn the general concept of hashing and what it’s used for, alongside the benefits of consistent hashing. But let’s delve deeper into what consistent hashing is.

What Is Hashing?

Hashing is a computing process that maps an arbitrary-sized object to a fixed size piece of data, which is known as a hash or hash code. To map the objects to a hash code, a function is used, which is known as a hash function.

For example, hash functions are used to map arbitrarily sized stings within a specific output range. Let’s say the output range is 0-100—the hash function will always return a value between that specific range, so the string “pizza” could equate to 30, and “goodbye” could be 55.

Since there are likely to be more inputs than outputs, the numbers within the range usually have different strings associated with them, which is known as collision. Optimal hash functions should ensure that input data is spread evenly over the number range to avoid collision as much as possible.

Cryptographic vs. Non-Cryptographic Hash Functions

The versatility of hash functions allows them to be used for different purposes. Cryptographic hash functions must meet a particular set of properties and are often used for security purposes such as password protection or data corruption detection. Non-cryptographic hash functions are mainly used for hash tables.

What Are Hash Tables?

Hash tables are used to compute hash codes into an array of buckets or slots to easily find the desired value. The hash function associates each input or key to a unique bucket. For example, a list of website members may be listed by the date and time they joined the website, with a corresponding key. The hash function will assign each of those keys to a unique bucket to be stored within the table.

Using the website members example, the key could be any part of the unique input data, such as a member’s email address or phone number. The hash table is used as a reference point to find the arbitrary piece of data and make it much easier to search within datasets.

What Is Distributed Hashing?

To avoid the memory limitations of one server, it’s not uncommon to ease the load by storing hash tables on multiple servers, which is known as distributed hashing. An example of this is employee information that can’t be stored on a single server as it’s too large. Objects and their keys are then distributed amongst multiple servers to bypass the memory limitations of a single server and allowing for arbitrarily large hash tables to be created.

Consistent Hashing Is the Solution

Distributed hashing relies on keys being stored on multiple servers, which can be a major drawback when adding or removing new servers. The solution is consistent hashing, which drastically reduces the number of keys that need to be relocated.

Consistent hashing operates independently from the number of servers within a distributed hash table by assigning them positions on a hash ring. Consistent hashing solves the main inefficiency problem of distributed hashing by allowing the servers to scale objects without affecting the entire system.

The Future of Hashing

Despite distributed hashing providing a solution for large datasets that require storage on multiple servers, it still has its drawbacks, such as having to manually remove keys from each server when data is changed. Consistent hashing provides a much more progressive solution for distributing keys between the servers and minimizing potential performance issues.

Load distribution through consistent hashing requires skilled tech-savvy talent. Hire a professional coder to get started on your projects right away.

Fiverr Team
Whether you’re scaling up your small business or building a brand from scratch, we’ve got the resources you need to keep you informed and at the top of your game.
Marketing Executive Priorities
Business News
Top Priorities for Marketing Executives
Fiverr has released its second annual report detailing the urgent needs and top priorities of marketing executives in the U.S.
Holiday Season
Business News
Fiverr Research Reveals How Retailers and e-Commerce Brands are Tackling the Shortened Holiday Season
Retailers are investing in AI (70%), social media ads (39%), influencer marketing campaigns (35%), email marketing (33%), and SEO (29%).
Finance Priorities
Business News
Top Priorities for Finance Executives
Fiverr has released a comprehensive report detailing the urgent needs of finance executives in the U.S. 
Choose a language
Check mark icon
English
Deutsch
Français