Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

optimize: changed xid generation strategy to snowflake #2412

Merged
merged 45 commits into from
May 4, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
fb4cade
optimize xid generation strategy
funky-eyes Mar 17, 2020
136c91c
change field length
funky-eyes Mar 17, 2020
d206807
IdWorker Instantiate by service node
funky-eyes Mar 17, 2020
7571e3e
Merge branch 'develop' into xid_optimize
funky-eyes Mar 17, 2020
5d0d1d8
Merge branch 'develop' into xid_optimize
funky-eyes Mar 18, 2020
5758878
fix code style
funky-eyes Mar 18, 2020
3498c04
Merge branch 'develop' into xid_optimize
funky-eyes Mar 19, 2020
ab899ee
Merge branch 'develop' into xid_optimize
funky-eyes Mar 20, 2020
685efcf
resolve conflict
funky-eyes Mar 23, 2020
b8b8861
delete dead imports
funky-eyes Mar 23, 2020
a2ec57b
Merge branch 'develop' into xid_optimize
funky-eyes Mar 24, 2020
6683cb7
Merge branch 'develop' into xid_optimize
funky-eyes Mar 24, 2020
1f10a57
Merge branch 'develop' into xid_optimize
funky-eyes Mar 28, 2020
faa30f8
Merge branch 'develop' into xid_optimize
funky-eyes Mar 31, 2020
208ff66
Merge branch 'develop' into xid_optimize
funky-eyes Apr 1, 2020
2dfaaf3
Merge branch 'develop' into xid_optimize
funky-eyes Apr 1, 2020
cd44dd3
Merge branch 'develop' into xid_optimize
funky-eyes Apr 2, 2020
1b351f2
Merge branch 'develop' into xid_optimize
funky-eyes Apr 7, 2020
4a30d34
Merge branch 'develop' into xid_optimize
funky-eyes Apr 8, 2020
f4e7b15
Merge branch 'develop' into xid_optimize
funky-eyes Apr 10, 2020
e77c318
Merge branch 'develop' into xid_optimize
funky-eyes Apr 10, 2020
ba931f6
Merge branch 'develop' into xid_optimize
funky-eyes Apr 15, 2020
f1c74b3
optimize
funky-eyes Apr 15, 2020
392ea5c
resolve conflict
funky-eyes Apr 24, 2020
7408eee
standard code
funky-eyes Apr 24, 2020
485d57b
Merge branch 'develop' into xid_optimize
funky-eyes Apr 24, 2020
f4d8b9c
Merge branch 'develop' into xid_optimize
funky-eyes Apr 26, 2020
537ac8d
optimize code
funky-eyes Apr 29, 2020
af15051
Merge branch 'develop' into xid_optimize
jsbxyyx Apr 29, 2020
430cf58
optimize code
funky-eyes Apr 30, 2020
48a580d
optimize code,merge workerId and data center id
funky-eyes May 1, 2020
0283ebf
optimize code
funky-eyes May 3, 2020
59a0492
optimize code
funky-eyes May 3, 2020
b52a540
optimize code
funky-eyes May 3, 2020
3004fa4
Merge branch 'develop' into xid_optimize
funky-eyes May 3, 2020
b0bca9b
optimize code
funky-eyes May 3, 2020
38de75d
optimize code
funky-eyes May 3, 2020
24b5071
optimize code
funky-eyes May 3, 2020
c1c4ae3
rollback code
funky-eyes May 3, 2020
fa14f59
optimize code
funky-eyes May 3, 2020
712adcd
rollback code
funky-eyes May 3, 2020
32751a1
rollback code
funky-eyes May 3, 2020
8a68bf0
optimize code
funky-eyes May 3, 2020
2ab2264
optimize code
funky-eyes May 3, 2020
b84650c
optimize code
funky-eyes May 4, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
optimize code
  • Loading branch information
funky-eyes committed May 3, 2020
commit 8a68bf0cf61104e0629dec00d8f1ecc51a7af368
2 changes: 1 addition & 1 deletion core/src/main/java/io/seata/core/util/IdWorker.java
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,8 @@ public long nextId() {
} else {
sequence = 0L;
}
lastTimestamp = timestamp;
}
lastTimestamp = timestamp;
return ((timestamp - twepoch) << timestampLeftShift) | (workerId << workerIdShift) | sequence;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How do you ensure order when timestamp-twepoch is greater than 2^22?

Copy link
Member

@slievrly slievrly May 4, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2^42

}

Expand Down
4 changes: 3 additions & 1 deletion server/src/main/java/io/seata/server/UUIDGenerator.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,11 @@ public class UUIDGenerator {
public static long generateUUID() {
return idWorker.nextId();
}

/**
* IdWorker Instantiate by service node
* Init.
*
* @param serverNode the server node id
*/
public static void init(Long serverNode) {
IdWorker.init(serverNode);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public class UUIDGeneratorOverflowTest {
*/
@Test
public void testGenerateUUID() {
IdWorker.init(SERVER_NODE_ID);
UUIDGenerator.init(SERVER_NODE_ID);
for (int i = 0; i < UUID_GENERATE_COUNT; i++) {
System.out.println("[UUID " + i + "] is: " + UUIDGenerator.generateUUID());
}
Expand Down