diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-07-23 20:54:03 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-07-23 20:54:03 -0700 |
| commit | ac286118176f757e039df9e0349f132be0b126bf (patch) | |
| tree | ffb8d1b7d9452ecc54b12220585a3153dd0c9f9e /weed/sequence | |
| parent | 5c14da0f1efbd835e076433c0b7f1a80aebf61c2 (diff) | |
| download | seaweedfs-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.go | 5 |
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 { |
