From 6d4223cd0f8342fcd199e345e16259cca31ebed8 Mon Sep 17 00:00:00 2001 From: Liu Linkang <1114755877@qq.com> Date: Thu, 11 Jan 2024 16:18:26 +0800 Subject: [PATCH 1/2] Add bit reverse example to dev-guide-unique-serial-number-generation --- develop/dev-guide-unique-serial-number-generation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/develop/dev-guide-unique-serial-number-generation.md b/develop/dev-guide-unique-serial-number-generation.md index 69f6ddbfbc84..1ec593351faa 100644 --- a/develop/dev-guide-unique-serial-number-generation.md +++ b/develop/dev-guide-unique-serial-number-generation.md @@ -44,4 +44,4 @@ uid-generator 生成的 64 位 ID 结构如下: 应用程序每次按配置好的步长获取一段序列号,并同时更新数据库以持久化保存当前序列已被分配出去的最大值,然后在应用程序内存中即可完成序列号加工及分配动作。待一段号码耗尽之后,应用程序才会去获取新的号段,这样就有效降低了数据库写入压力。实际使用过程中,还可以适度调节步长以控制数据库记录的更新频度。 -最后,需要注意的是,上述两种方案生成的 ID 都不够随机,不适合直接作为 TiDB 表的主键。实际使用过程中可以对生成的 ID 进行位反转(bit-reverse)后得到一个较为随机的新 ID。 +最后,需要注意的是,上述两种方案生成的 ID 都不够随机,不适合直接作为 TiDB 表的主键。实际使用过程中可以对生成的 ID 进行位反转(bit-reverse)后得到一个较为随机的新 ID。例如,经过位反转后,ID `00000010100101000001111010011100` 变成了 `00111001011110000010100101000000` , ID `11111111111111111111111111111101` 变成了 `10111111111111111111111111111111` 。 From 5bb52224bce4d45e8276af5cb8541c257114f62e Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 24 Jan 2024 11:04:39 +0800 Subject: [PATCH 2/2] Apply suggestions from code review --- develop/dev-guide-unique-serial-number-generation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/develop/dev-guide-unique-serial-number-generation.md b/develop/dev-guide-unique-serial-number-generation.md index 1ec593351faa..dbdd83616af6 100644 --- a/develop/dev-guide-unique-serial-number-generation.md +++ b/develop/dev-guide-unique-serial-number-generation.md @@ -44,4 +44,4 @@ uid-generator 生成的 64 位 ID 结构如下: 应用程序每次按配置好的步长获取一段序列号,并同时更新数据库以持久化保存当前序列已被分配出去的最大值,然后在应用程序内存中即可完成序列号加工及分配动作。待一段号码耗尽之后,应用程序才会去获取新的号段,这样就有效降低了数据库写入压力。实际使用过程中,还可以适度调节步长以控制数据库记录的更新频度。 -最后,需要注意的是,上述两种方案生成的 ID 都不够随机,不适合直接作为 TiDB 表的主键。实际使用过程中可以对生成的 ID 进行位反转(bit-reverse)后得到一个较为随机的新 ID。例如,经过位反转后,ID `00000010100101000001111010011100` 变成了 `00111001011110000010100101000000` , ID `11111111111111111111111111111101` 变成了 `10111111111111111111111111111111` 。 +最后,需要注意的是,上述两种方案生成的 ID 都不够随机,不适合直接作为 TiDB 表的主键。实际使用过程中可以对生成的 ID 进行位反转(bit-reverse)后得到一个较为随机的新 ID。例如,经过位反转后,ID `00000010100101000001111010011100` 变为 `00111001011110000010100101000000`,ID `11111111111111111111111111111101` 变为 `10111111111111111111111111111111`。