กลับไปหน้าบทความ

อ่าน 2 นาที

รหัสเกล็ดหิมะ

รหัสเกล็ดหิมะ หรือ เกล็ดหิมะ เป็นรูปแบบ ตัวระบุที่ไม่ซ้ำกัน ซึ่งใช้ใน การประมวลผลแบบกระจาย รูปแบบนี้สร้างขึ้นโดย X (เดิมคือ Twitter) และใช้สำหรับรหัสของทวีต [ 1 ]...

รหัสเกล็ดหิมะ

2068676992835780608
รหัสเกล็ดหิมะ
ชื่ออื่นๆทวิตเตอร์ เกล็ดหิมะX เกล็ดหิมะ
ส่วนประกอบของตัวระบุเกล็ดหิมะในรูปแบบไบนารี

รหัสเกล็ดหิมะหรือเกล็ดหิมะเป็นรูปแบบตัวระบุที่ไม่ซ้ำกันซึ่งใช้ในการประมวลผลแบบกระจายรูปแบบนี้สร้างขึ้นโดยX (เดิมคือ Twitter)และใช้สำหรับรหัสของทวีต[ 1 ]เป็นที่เชื่อกันโดยทั่วไปว่าเกล็ดหิมะ แต่ละอัน มีโครงสร้างที่ไม่ซ้ำกัน ดังนั้นจึงใช้ชื่อว่า "รหัสเกล็ดหิมะ" รูปแบบนี้ได้รับการนำไปใช้โดยบริษัทอื่นๆ รวมถึงDiscord และ Instagram เครือ ข่ายสังคม Mastodon ใช้เวอร์ชันที่ดัดแปลง

รูปแบบ

เกล็ดหิมะประกอบด้วย 64 บิต :

  • บิตที่มีลำดับสูงสุดจะเป็น 0 เสมอ
  • 41 บิตถัดไปเข้ารหัสเวลาโดยแสดงเป็นมิลลิวินาทีตั้งแต่ยุคที่ เลือก ไว้
  • 10 บิตถัดไปแสดงถึงรหัสเครื่อง เพื่อป้องกันการชนกันของรหัส
  • บิต อีก 12 บิต ถัดไปแสดงถึงหมายเลขลำดับต่อเครื่อง เพื่อให้สามารถสร้างเกล็ดหิมะหลายเกล็ดในมิลลิวินาทีเดียวกันได้

มีเพียง63 บิต เท่านั้น ที่เป็นตัวแปร ดังนั้นจำนวนที่ไม่เป็นลบจึงสามารถประมวลผลได้อย่างง่ายดายเป็นจำนวนเต็มที่มีเครื่องหมาย64 บิต โดยทั่วไปแล้วจำนวนสุดท้ายจะถูกแปลงเป็นข้อความในรูปแบบเลขฐานสิบ[ 2 ]

เกล็ดหิมะสามารถเรียงลำดับตามเวลาได้ เนื่องจากขึ้นอยู่กับเวลาที่สร้างขึ้น[ 2 ]นอกจากนี้ เวลาที่สร้างเกล็ดหิมะยังสามารถคำนวณได้จากตัวเกล็ดหิมะเอง ซึ่งสามารถใช้เพื่อค้นหาเกล็ดหิมะ (และวัตถุที่เกี่ยวข้อง) ที่สร้างขึ้นก่อนหรือหลังวันที่กำหนด[ 3 ]

รูปแบบส่วนหัวคงที่
ค่าชดเชยอ็อกเท็ต0 1 2 3
อ็อกเท็ตนิดหน่อย0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 0 0เวลาประทับ - 31 บิตแรก
4 32 เวลาประทับ - 10 บิตสุดท้ายรหัสเครื่องหมายเลขลำดับเครื่องจักร

ตัวอย่าง

ทวีตที่สร้างโดย @Wikipedia ในเดือนกุมภาพันธ์ 2025 [ 4 ]มีรหัสเกล็ดหิมะ1888944671579078978หมายเลขนี้สามารถแปลงเป็นเลขฐานสองได้เป็น0001 1010 0011 0110 1110 0001 0010 1011 1011 0101 11 | 01 0110 1000 | 0001 0100 0010โดยใช้สัญลักษณ์ท่อแทนส่วนทั้งสามของรหัส

  • บิต 41 บิตแรก (+ 1 บิตศูนย์บนสุด) แปลงเป็นเลขฐานสิบได้เป็น450359504599เพิ่มค่านี้ลงใน X Epoch ของ1288834974657 (ใน หน่วยมิลลิวินาที ของเวลา Unix ) [ 5 ]ดังนั้นเวลา Unix ของทวีตคือ1739194479256 : 10 กุมภาพันธ์ 2025 13:34:39.256 UTC
  • 10 บิตตรงกลาง01 0110 1000คือรหัสประจำเครื่อง (Machine ID)
  • 12 บิตสุดท้าย0001 0100 0010เมื่อถอดรหัสจะได้322ซึ่งหมายความว่าทวีตนี้เป็นทวีตลำดับที่ 322 ที่ได้รับการประมวลผลในมิลลิวินาทีนี้

การใช้งาน

รูปแบบนี้ได้รับการประกาศครั้งแรกโดย Twitter ในเดือนมิถุนายน พ.ศ. 2553 [ 1 ]เนื่องจากปัญหาในการใช้งาน พวกเขาจึงรอจนถึงปลายปีจึงเริ่มเปิดตัวการอัปเดต[ 6 ]

  • X (เดิมคือ Twitter) ใช้รหัสเกล็ดหิมะสำหรับทวีต ข้อความโดยตรง ผู้ใช้ รายการ และวัตถุอื่นๆ ทั้งหมดที่มีให้ใช้งานผ่าน API [ 7 ]
  • ฟิลด์รหัสเครื่อง 10 บิตสามารถแบ่งออกเป็นฟิลด์ย่อยเพิ่มเติมได้ตามการใช้งานที่กำหนด ตัวอย่างเช่น เวอร์ชันที่เก็บถาวรของไลบรารี Twitter snowflake ดั้งเดิมในScalaจะแบ่งออกเป็นรหัสศูนย์ข้อมูล 5 บิตและรหัสผู้ปฏิบัติงาน 5 บิต[ 8 ]
  • Discord ยังใช้เกล็ดหิมะ โดยกำหนดยุคเริ่มต้นไว้ที่1420070400000ซึ่งตรงกับวินาทีที่ศูนย์ของปี 2015 [ 3 ]
  • Instagram ใช้รูปแบบที่ดัดแปลงแล้ว โดยมี 41 บิตสำหรับประทับเวลา 13 บิตสำหรับ รหัส ชาร์ดและ 10 บิตสำหรับหมายเลขลำดับ[ 9 ]
  • รูปแบบที่แก้ไขของ Mastodon มี 48 บิตสำหรับไทม์สแตมป์ระดับมิลลิวินาที เนื่องจากใช้ยุค UNIXบิตที่เหลืออีก 16 บิตใช้สำหรับข้อมูลลำดับ[ 10 ]

ดูเพิ่มเติม

  • ตัวอย่างการใช้งานของ TwitterบนGitHub
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Snowflake_ID&oldid=1360429225 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ รหัสเกล็ดหิมะ

รหัสเกล็ดหิมะ หรือ เกล็ดหิมะ เป็นรูปแบบ ตัวระบุที่ไม่ซ้ำกัน ซึ่งใช้ใน การประมวลผลแบบกระจาย รูปแบบนี้สร้างขึ้นโดย X (เดิมคือ Twitter) และใช้สำหรับรหัสของทวีต [ 1 ]...

ตัวอย่าง

ทวีตที่สร้างโดย @Wikipedia ในเดือนกุมภาพันธ์ 2025 [ 4 ] มีรหัสเกล็ดหิมะ 1888944671579078978 หมายเลขนี้สามารถแปลงเป็นเลขฐานสองได้เป็น 0001 1010 0011 0110 1110 0001 0010 1011 1011 0101 11 | 01 0110 1000 | 0001 0100 0010 โดยใช้สัญลักษณ์ท่อแทนส่วนทั้งสามของรหัส

การใช้งาน

รูปแบบนี้ได้รับการประกาศครั้งแรกโดย Twitter ในเดือนมิถุนายน พ.ศ. 2553 [ 1 ] เนื่องจากปัญหาในการใช้งาน พวกเขาจึงรอจนถึงปลายปีจึงเริ่มเปิดตัวการอัปเดต [ 6 ]

ลิงก์ภายนอก

ตัวอย่างการใช้งานของ Twitterบน GitHub ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Snowflake_ID&oldid=1360429225 "