GitHub ทำลายสถิติ 1 พันล้านที่เก็บข้อมูล ด้วยชื่อที่ไร้สาระว่า "shit"

ทีมบรรณาธิการ BigGo
GitHub ทำลายสถิติ 1 พันล้านที่เก็บข้อมูล ด้วยชื่อที่ไร้สาระว่า "shit"

GitHub ได้บรรลุเป้าหมายสำคัญด้วยการสร้างที่เก็บข้อมูล (repository) ครบ 1 พันล้านแห่ง สิ่งที่ทำให้ความสำเร็จนี้น่าจดจำไม่ใช่แค่ตัวเลขที่น่าประทับใจเท่านั้น แต่เป็นชื่อของที่เก็บข้อมูลที่ได้รับตำแหน่งประวัติศาสตร์นี้: shit โดยผู้ใช้ AasishPokhrel

เหตุการณ์สำคัญนี้แสดงให้เห็นมากกว่าแค่ตัวเลข มันเน้นย้ำถึงการเติบโตอย่างมหาศาลของ GitHub ตั้งแต่ก่อตั้งขึ้น และบทบาทของแพลตฟอร์มในฐานะศูนย์กลางการพัฒนาซอฟต์แวร์ทั่วโลก ที่เก็บข้อมูลที่หนึ่งพันล้านนี้เข้าร่วมกับโครงการอื่นๆ เกือบพันล้านโครงการ ตั้งแต่งานวิจัยที่ก้าวล้ำไปจนถึงแบบฝึกหัดการเรียนรู้ง่ายๆ

รายละเอียดเหตุการณ์สำคัญของ Repository:

  • Repository ID: 1,000,000,000
  • ชื่อ Repository: "shit" (ต่อมาได้เปลี่ยนชื่อเป็น "historic-repo")
  • เจ้าของ: AasishPokhrel
  • Node ID: R_kgDOO5rKAA
  • Repository ก่อนหน้า (999,999,999): sameepabadhuge/fork1 (fork สำหรับการวิจัยการพับโปรตีน)
  • Repository ถัดไป (1,000,000,002): minseon-01/flaskapp

ความตลกขบขันที่เกิดขึ้นโดยบังเอิญของการตั้งชื่อเหตุการณ์สำคัญ

ความขัดแย้งนี้ไม่ได้หลุดไปจากชุมชนนักพัฒนา ในขณะที่ที่เก็บข้อมูลหมายเลข 999,999,999 เป็น fork ที่เกี่ยวข้องกับการวิจัยการพับโปรตีน ที่เก็บข้อมูลที่หนึ่งพันล้านกลับมีชื่อที่ทำให้เกิดความสนุกสนานอย่างกว้างขวาง พนักงาน GitHub ได้แสดงความยินดีอย่างเป็นทางการแก่ผู้สร้าง ทำให้เกิดความคิดเห็นและปฏิกิริยาหลายร้อยข้อความจากนักพัฒนาทั่วโลก

เหตุบังเอิญนี้ได้จุดประกายการอฟสนทนาเกี่ยวกับว่าการจับเวลานี้เป็นการตั้งใจหรือไม่ สมาชิกชุมชนบางคนคาดเดาว่าผู้สร้างอาจใช้สคริปต์เพื่อติดตามอัตราการสร้างที่เก็บข้อมูลและจับเวลาการส่งของตน อย่างไรก็ตาม คนอื่นๆ เชื่อว่าเป็นเรื่องบังเอิญล้วนๆ ทำให้มันเป็นตัวแทนที่เหมาะสมยิ่งขึ้นของธรรมชาติที่หลากหลายและมักคาดเดาไม่ได้ของเนื้อหาใน GitHub

ผลกระทบทางเทคนิคของ Repository ID แบบต่อเนื่อง

เหตุการณ์สำคัญนี้ได้จุดประกายการอภิปรายทางเทคนิคที่กว้างขึ้นเกี่ยวกับการใช้ integer ID แบบต่อเนื่องของ GitHub สำหรับที่เก็บข้อมูล นักพัฒนาสังเกตว่าแนวทางนี้ทำให้ง่ายต่อการคำนวณอัตราการสร้างที่เก็บข้อมูลและติดตามการเติบโตของแพลตฟอร์ม ซึ่งเป็นข้อมูลที่บริษัทหลายแห่งมักเก็บเป็นความลับ

ระบบการเรียงลำดับตัวเลขแบบต่อเนื่องยังทำให้เกิดคำถามเกี่ยวกับความสามารถในการขยายตัว นักพัฒนาบางคนชี้ให้เห็นปัญหาที่อาจเกิดขึ้นกับการล็อกแบบโกลบอลระหว่างการสร้างที่เก็บข้อมูล และความจำเป็นในการย้ายไปใช้ระบบ integer ประเภทที่ใหญ่กว่าหรือระบบ UUID เมื่อแพลตฟอร์มยังคงเติบโตต่อไป

ข้อพิจารณาด้านเทคนิคสำหรับการขยายระบบ:

  • ระบบ ID ปัจจุบันใช้จำนวนเต็มแบบลำดับ
  • ใกล้จะถึงขีดจำกัดที่อาจต้องย้ายไปใช้จำนวนเต็ม 64 บิตหรือ UUID
  • ผลกระทบจากการล็อกแบบ global สำหรับการสร้าง repository
  • ความท้าทายด้านความเข้ากันได้ของ API สำหรับการย้ายระบบในอนาคต
  • ข้อพิจารณาเรื่อง storage overhead (การเปลี่ยนจาก 32 บิตเป็น 64 บิตทำให้การจัดเก็บ foreign key เพิ่มขึ้นเป็นสองเท่า)

ความท้าทายในการขยายฐานข้อมูลที่รออยู่ข้างหน้า

เหตุการณ์สำคัญหนึ่งพันล้านที่เก็บข้อมูลนำความสนใจมาสู่ความท้าทายทางเทคนิคในอนาคต นักพัฒนาที่มีประสบการณ์แบ่งปันเรื่องราวเกี่ยวกับปัญหาการขยายตัวที่คล้ายกันที่พวกเขาเคยพบ โดยเฉพาะความจำเป็นในการอัปเกรดจาก integer 32 บิตเป็น 64 บิตก่อนที่จะถึงขีดจำกัดการล้น

คำตอบคือ: ใช่ มีความท้าทายและบางครั้งการหยุดทำงานและ/หรือการเปลี่ยนแปลงที่ทำลายระบบเป็นสิ่งที่หลีกเลี่ยงไม่ได้

การย้ายข้อมูลเหล่านี้อาจซับซ้อน โดยเฉพาะสำหรับตารางที่มีข้อมูลหลายพันล้านแถว มักต้องการการวางแผนอย่างรอบคอบ การทดสอบในสภาพแวดล้อมหลายแห่ง และบางครั้งต้องหยุดทำงานเป็นเวลานาน ความท้าทายจะเพิ่มขึ้นเมื่อต้องรักษา foreign key และความเข้ากันได้ของ API ตลอดช่วงการเปลี่ยนผ่าน

การสะท้อนของระบบนิเวศของ GitHub

นอกเหนือจากความตลกขบขันแล้ว เหตุการณ์สำคัญนี้สะท้อนถึงธรรมชาติที่หลากหลายของระบบนิเวศของ GitHub แพลตฟอร์มเป็นที่เก็บทุกอย่างตั้งแต่โครงการโครงสร้างพื้นฐานที่สำคัญไปจนถึงแบบฝึกหัดการเรียนรู้ของนักเรียน ตั้งแต่ที่เก็บข้อมูลขององค์กรไปจนถึงการทดลองส่วนบุคคล ที่เก็บข้อมูลที่หนึ่งพันล้าน แม้จะมีชื่อที่แปลกใหม่ แต่ก็เป็นตัวแทนของแนวทางประชาธิปไตยในการเก็บรักษาโค้ดนี้

ปฏิกิริยาของชุมชนยังแสดงให้เห็นถึงผลกระทบทางวัฒนธรรมของ GitHub นักพัฒนาทั่วโลกฉลองเหตุการณ์สำคัญนี้ แบ่งปันข้อมูลเชิงลึกทางเทคนิค และสะท้อนถึงบทบาทของแพลตฟอร์มในการพัฒนาซอฟต์แวร์สมัยใหม่ ไม่ว่าจะเป็นการตั้งใจหรือบังเอิญ ที่เก็บข้อมูล shit ได้กลายเป็นจุดสังเกตที่น่าจดจำในประวัติศาสตร์ของ GitHub ซึ่งรวบรวมทั้งความสำเร็จทางเทคนิคของแพลตฟอร์มและอารมณ์ขันของชุมชน

อ้างอิง: Congratulations on creating the one billionth repository on GitHub! #1