From 3683a706e3d195858013345220f8f1679fecbfc0 Mon Sep 17 00:00:00 2001 From: Jeroen Hoek Date: Mon, 15 Feb 2021 14:03:26 +0100 Subject: [PATCH 01/11] Use remaining 3 bits to expand generator-id space --- .../LocalUniqueIDGeneratorFactory.java | 4 +- .../lable/oss/uniqueid/bytes/Blueprint.java | 2 +- .../lable/oss/uniqueid/bytes/IDBuilder.java | 11 +-- .../LocalUniqueIDGeneratorFactoryTest.java | 2 +- .../oss/uniqueid/bytes/IDBuilderTest.java | 34 +++++++- .../lable/oss/uniqueid/etcd/EtcdHelper.java | 4 + .../oss/uniqueid/etcd/ResourceClaim.java | 9 ++- .../uniqueid/etcd/HighGeneratorCountIT.java | 81 +++++++++++++++++++ .../uniqueid/etcd/MultipleClusterIdsIT.java | 2 +- 9 files changed, 135 insertions(+), 14 deletions(-) create mode 100644 uniqueid-etcd/src/test/java/org/lable/oss/uniqueid/etcd/HighGeneratorCountIT.java diff --git a/uniqueid-core/src/main/java/org/lable/oss/uniqueid/LocalUniqueIDGeneratorFactory.java b/uniqueid-core/src/main/java/org/lable/oss/uniqueid/LocalUniqueIDGeneratorFactory.java index 8450a2c..fb1232b 100644 --- a/uniqueid-core/src/main/java/org/lable/oss/uniqueid/LocalUniqueIDGeneratorFactory.java +++ b/uniqueid-core/src/main/java/org/lable/oss/uniqueid/LocalUniqueIDGeneratorFactory.java @@ -37,7 +37,7 @@ public class LocalUniqueIDGeneratorFactory { * Return the UniqueIDGenerator instance for this specific generator-ID, cluster-ID combination. If one was * already created, that is returned. * - * @param generatorId Generator ID to use (0 ≤ n ≤ 255). + * @param generatorId Generator ID to use (0 ≤ n ≤ 2047). * @param clusterId Cluster ID to use (0 ≤ n ≤ 15). * @param clock Clock implementation. * @param mode Generator mode. @@ -58,7 +58,7 @@ public synchronized static IDGenerator generatorFor(int generatorId, int cluster * Return the UniqueIDGenerator instance for this specific generator-ID, cluster-ID combination. If one was * already created, that is returned. * - * @param generatorId Generator ID to use (0 ≤ n ≤ 255). + * @param generatorId Generator ID to use (0 ≤ n ≤ 2047). * @param clusterId Cluster ID to use (0 ≤ n ≤ 15). * @param mode Generator mode. * @return A thread-safe UniqueIDGenerator instance. diff --git a/uniqueid-core/src/main/java/org/lable/oss/uniqueid/bytes/Blueprint.java b/uniqueid-core/src/main/java/org/lable/oss/uniqueid/bytes/Blueprint.java index 922fed2..b35f65f 100644 --- a/uniqueid-core/src/main/java/org/lable/oss/uniqueid/bytes/Blueprint.java +++ b/uniqueid-core/src/main/java/org/lable/oss/uniqueid/bytes/Blueprint.java @@ -34,7 +34,7 @@ public class Blueprint { /** * Upper bound (inclusive) of the generator-ID. */ - public final static int MAX_GENERATOR_ID = 255; + public final static int MAX_GENERATOR_ID = 2047; /** * Upper bound (inclusive) of the cluster-ID. diff --git a/uniqueid-core/src/main/java/org/lable/oss/uniqueid/bytes/IDBuilder.java b/uniqueid-core/src/main/java/org/lable/oss/uniqueid/bytes/IDBuilder.java index b554da2..2f6b01a 100644 --- a/uniqueid-core/src/main/java/org/lable/oss/uniqueid/bytes/IDBuilder.java +++ b/uniqueid-core/src/main/java/org/lable/oss/uniqueid/bytes/IDBuilder.java @@ -24,7 +24,7 @@ *

* The eight byte ID is composed as follows: * - *

TTTTTTTT TTTTTTTT TTTTTTTT TTTTTTTT TTTTTTTT TTSSSSSS ...MGGGG GGGGCCCC
+ *
TTTTTTTT TTTTTTTT TTTTTTTT TTTTTTTT TTTTTTTT TTSSSSSS GGGMGGGG GGGGCCCC
* *