Skip to main content

A simple implement of consistent hashing.

Project description

Introduction

Consistent hashing is a special kind of hashing such that when a hash table is resized and consistent hashing is used, only few keys need to be remapped. In contrast, in most traditional hash tables, a change in the number of array slots causes nearly all keys to be remapped.

ConsistentHashing is a very simple implement of concistent hashing.

Usage examples

>>> from consistenthashing import consistenthashing
>>> inst = consistenthashing(nodes=["122.225.109.103","221.236.5.135","58.58.179.52","61.174.51.204","222.186.31.234","182.74.141.242","179.107.90.135"], slotSize=10000, virtualNode=2)
>>> inst.getAllNodes()
['122.225.109.103', '221.236.5.135', '58.58.179.52', '61.174.51.204', '222.186.31.234', '182.74.141.242', '179.107.90.135']
>>> inst.addNode('1.1.1.1')
True
>>> inst.getNode('1')
'61.174.51.204'
>>> inst.getNode('a')
'122.225.109.103'
>>> inst.getNode('hello')
'61.174.51.204'
>>> inst.getNode('consistenthashing')
'1.1.1.1'
>>> inst.getVirtualNodeNumber()
2
>>> inst.getVirtualNodes('221.236.5.135')
['221.236.5.135_virtual1', '221.236.5.135_virtual2']
>>> inst.removeNode('122.225.109.103')
True
>>> inst.addNode('pypi.python.org')
True
>>> inst.getAllNodes()
['221.236.5.135', '58.58.179.52', '61.174.51.204', '222.186.31.234', '182.74.141.242', '179.107.90.135', '1.1.1.1', 'pypi.python.org']

Referencek

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ConsistentHashing, version 0.2.2
Filename, size File type Python version Upload date Hashes
Filename, size ConsistentHashing-0.2.2.tar.gz (2.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page