From 18403d71e94e05a43ffab91786adc2fe7dc8bc95 Mon Sep 17 00:00:00 2001 From: g-ken <40693088+g-ken@users.noreply.github.com> Date: Sat, 30 Nov 2019 16:18:55 +0900 Subject: [PATCH 1/2] Fix: Set first bit to 0 Set the first bit to 0 and change timestamp to 41bit according to the specifications of snowflake. --- lib/snowflake/generator.ex | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/snowflake/generator.ex b/lib/snowflake/generator.ex index 51d48c9..7b80508 100644 --- a/lib/snowflake/generator.ex +++ b/lib/snowflake/generator.ex @@ -48,6 +48,7 @@ defmodule Snowflake.Generator do defp create_id(ts, machine_id, seq) do << new_id :: unsigned-integer-size(64)>> = << + 0 :: unsigned-integer-size(1), ts :: unsigned-integer-size(42), machine_id :: unsigned-integer-size(10), seq :: unsigned-integer-size(12) >> From 5414037b8a15bb9cc596661079e438a9a7cf1972 Mon Sep 17 00:00:00 2001 From: g-ken <40693088+g-ken@users.noreply.github.com> Date: Sat, 30 Nov 2019 16:21:09 +0900 Subject: [PATCH 2/2] FIX: Change timestamp to 41bit --- lib/snowflake/generator.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/snowflake/generator.ex b/lib/snowflake/generator.ex index 7b80508..ab9d80b 100644 --- a/lib/snowflake/generator.ex +++ b/lib/snowflake/generator.ex @@ -49,7 +49,7 @@ defmodule Snowflake.Generator do defp create_id(ts, machine_id, seq) do << new_id :: unsigned-integer-size(64)>> = << 0 :: unsigned-integer-size(1), - ts :: unsigned-integer-size(42), + ts :: unsigned-integer-size(41), machine_id :: unsigned-integer-size(10), seq :: unsigned-integer-size(12) >>