SkillAgentSearch skills...

Maglev

A Google Maglev Hashing Algorithm implement in Golang

Install / Use

/learn @kkdai/Maglev
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Maglev: A Google Maglev Hashing Algorithm implement in Golang

GoDoc Build Status Go

What is Maglev

Maglev is Google’s network load balancer. It is a large distributed software system that runs on commodity Linux servers. Unlike traditional hardware network load balancers, it does not require a specialized physical rack deployment, and its capacity can be easily adjusted by adding or removing servers. (cite from paper)

Here is a Chinese reading note about Maglev: [論文中文導讀] Maglev : A Fast and Reliable Software Network Load Balancer (using Consistent Hashing)

Installation and Usage

Install

go get github.com/kkdai/maglev

Usage


func main() {
	sizeN := 5
	lookupSizeM := 13 //(must be prime number)

	var names []string
	for i := 0; i < sizeN; i++ {
		names = append(names, fmt.Sprintf("backend-%d", i))
	}
	//backend-0 ~ backend-4

	mm, err := NewMaglev(names, lookupSizeM)
	if err != nil {
		log.Fatal("NewMaglev failed:", err)
	}
	v, err := mm.Get("IP1")
	fmt.Println("node1:", v)
	//node1: backend-2
	v, _ = mm.Get("IP2")
	log.Println("node2:", v)
	//node2: backend-1
	v, _ = mm.Get("IPasdasdwni2")
	log.Println("node3:", v)
	//node3: backend-0

	if err := mm.Remove("backend-0"); err != nil {
		log.Fatal("Remove failed", err)
	}
	v, _ = mm.Get("IPasdasdwni2")
	log.Println("node3-D:", v)
	//node3-D: Change from "backend-0" to "backend-1"
}

Inspired By

Project52

It is one of my project 52.

License

This is under the Apache 2.0 license. See the LICENSE file for details.

Related Skills

View on GitHub
GitHub Stars290
CategoryDevelopment
Updated1d ago
Forks32

Languages

Go

Security Score

100/100

Audited on Mar 27, 2026

No findings