✨Mã nhận dạng Snowflake
thumb|Các thành phần của mã nhận dạng Snowflake trong [[hệ nhị phân]] Mã nhận dạng Snowflake (hoặc Snowflakes ID) là một loại mã nhận dạng độc nhất được sử dụng trong điện toán phân tán. Loại mã này được tạo ra bởi Twitter và được sử dụng cho mã nhận dạng của các bài đăng trên Twitter. Loại mã nhận dạng này đã được Discord, Instagram sử dụng phiên bản đã qua sửa đổi.
Định dạng
Mã nhận dạng Snowflake có dạng 64 bit ở dạng nhị phân (nhưng chỉ có 63 bit được sử dụng để cho vừa với số nguyên có dấu). 41 bit đầu tiên là dấu thời gian, đại diện cho mili giây kể từ kỷ nguyên đã chọn. 10 bit tiếp theo đại diện cho một ID máy, ngăn chặn xung đột. 12 bit nữa đại diện cho số thứ tự của mỗi máy, để cho phép tạo ra nhiều snowflake trong cùng một mili giây. Con số cuối cùng thường được đánh số thứ tự ở dạng thập phân.
Mã nhận dạng Snowflake có thể sắp xếp theo thời gian bởi vì chúng dựa trên thời gian chúng được tạo ra.
Ví dụ
Một bài đăng trên Twitter do @Wikipedia tạo ra vào tháng 6 năm 2022 có snowflake ID là . Số này có thể được chuyển đổi thành nhị phân là
, với dấu gạch thẳng "|" biểu thị cho ba phần của ID.
- 41 bit đầu tiên (+ 1 bit số 0 trên cùng) chuyển đổi thành số thập phân là
. Thêm giá trị vào Kỷ nguyên Twitter là
(được tính bằng mili giây thời gian Unix). Do đó, thời gian Unix của tweet là
1656432460.105
: 28 tháng 6 năm 2022 16:07:40.105 UTC. - 10 bit ở giữa
là ID máy.
- 12 bit cuối cùng giải mã thành tất cả 0, có nghĩa là tweet này là tweet đầu tiên được máy xử lý ở một phần nghìn giây nhất định.
Sử dụng
Định dạng nhận dạng này được Twitter công bố lần đầu tiên vào tháng 6 năm 2010. Do những thách thức trong việc triển khai, họ đã đợi đến cuối năm để tung ra bản cập nhật. Twitter sử dụng snowflake ID cho các tweet, tin nhắn trực tiếp, người dùng, danh sách và tất cả các đối tượng khác có sẵn trên API. Discord cũng bắt đầu sử dụng snowflake ID, với kỷ nguyên của chúng được đặt vào giây đầu tiên của năm 2015.