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
Consistent hashing http://en.wikipedia.org/wiki/Consistent_hashing
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file ConsistentHashing-0.2.2.tar.gz.
File metadata
- Download URL: ConsistentHashing-0.2.2.tar.gz
- Upload date:
- Size: 2.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1635c0878a58b246679c9b3c4d128461feac09363ed94b5dbdd5ad307a5922ef
|
|
| MD5 |
a2198bfe2ed8eb1df1013d908fd87bc5
|
|
| BLAKE2b-256 |
712edbbfdc36787a661ade91787d336d600d774cabe8fc70774784a90e303985
|