aboutsummaryrefslogtreecommitdiff
path: root/weed/sequence
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2021-07-23 20:54:03 -0700
committerChris Lu <chris.lu@gmail.com>2021-07-23 20:54:03 -0700
commitac286118176f757e039df9e0349f132be0b126bf (patch)
treeffb8d1b7d9452ecc54b12220585a3153dd0c9f9e /weed/sequence
parent5c14da0f1efbd835e076433c0b7f1a80aebf61c2 (diff)
downloadseaweedfs-ac286118176f757e039df9e0349f132be0b126bf.tar.xz
seaweedfs-ac286118176f757e039df9e0349f132be0b126bf.zip
snowflake sequencer need an unique id
fix https://github.com/chrislusf/seaweedfs/issues/2213
Diffstat (limited to 'weed/sequence')
-rw-r--r--weed/sequence/snowflake_sequencer.go5
1 files changed, 4 insertions, 1 deletions
diff --git a/weed/sequence/snowflake_sequencer.go b/weed/sequence/snowflake_sequencer.go
index 300449fa0..381933b3a 100644
--- a/weed/sequence/snowflake_sequencer.go
+++ b/weed/sequence/snowflake_sequencer.go
@@ -13,8 +13,11 @@ type SnowflakeSequencer struct {
node *snowflake.Node
}
-func NewSnowflakeSequencer(nodeid string) (*SnowflakeSequencer, error) {
+func NewSnowflakeSequencer(nodeid string, snowflakeId int) (*SnowflakeSequencer, error) {
nodeid_hash := hash(nodeid) & 0x3ff
+ if snowflakeId != 0 {
+ nodeid_hash = uint32(snowflakeId)
+ }
glog.V(0).Infof("use snowflake seq id generator, nodeid:%s hex_of_nodeid: %x", nodeid, nodeid_hash)
node, err := snowflake.NewNode(int64(nodeid_hash))
if err != nil {