Presque แอพ iOS ค้นหาคนที่เคยอยู่สถานที่และเวลาเดียวกัน
เจาะลึกการออกแบบ spacetime overlap index สำหรับแอปพลิเคชัน Presque บน iOS ที่คำนวณพิกัดพื้นที่และช่วงเวลาที่ซ้อนทับกันแบบเรียลไทม์

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- บันทึกความทรงจำประกอบด้วยพิกัด ละติจูด ลองจิจูด เวลา รัศมี และกรอบเวลา
- ระบบจัดการมิติเวลาแบบไดนามิกที่กรอบเวลาขึ้นอยู่กับแต่ละความทรงจำโดยตรง
- ความยินยอมของผู้ใช้ควบคุมการมองเห็น ทำให้ต้องอัปเดตดัชนีแบบเรียลไทม์
การออกแบบระบบค้นหาความทรงจำในพื้นที่และเวลาเดียวกันสำหรับแอปพลิเคชันบน iOS อย่าง Presque ต้องเผชิญกับโจทย์ผลิตภัณฑ์ที่ดูเรียบง่ายแต่ซับซ้อนในการลงมือทำจริง โดยหน่วยความจำแต่ละรายการในระบบจะถูกบันทึกเป็นเรคอร์ดขนาดเล็ก ซึ่งประกอบด้วย ละติจูด ลองจิจูด แสตมป์เวลา รัศมี และกรอบเวลาที่กำหนดไว้
ในส่วนของข้อมูลเชิงพื้นที่ถือเป็นส่วนที่จัดการได้ง่ายกว่า เนื่องจากพิกัดพิกัดจะถูกป้อนเข้าสู่ geospatial index ทำให้การสแกนกลายเป็นคำสั่งค้นหารัศมีที่มีขอบเขตชัดเจน โดยค่าเริ่มต้นจะถูกตั้งไว้ที่ 50 เมตรและผู้ใช้สามารถปรับให้แคบลงได้ ทำให้ชุดข้อมูลของผู้สมัครมีขนาดเล็กแม้จะอยู่ในเมืองที่มีความหนาแน่นสูงก็ตาม

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
อย่างไรก็ตาม มิติของเวลาคือจุดที่การออกแบบแบบดั้งเดิมมักประสบปัญหา เนื่องจากกรอบเวลาไม่ใช่ค่าคงที่ทั่วทั้งระบบ แต่มันจะอยู่บนความทรงจำแต่ละชิ้นแทนที่จะผูกติดกับบัญชีผู้ใช้ ตัวอย่างเช่น ภาพถ่ายจากคอนเสิร์ตแห่งหนึ่งอาจสามารถค้นหาได้เป็นเวลาเพียง 2 นาที ในขณะที่การเดินทางที่นำเข้าข้อมูลอาจใช้เวลาทั้งช่วงบ่าย ซึ่งหมายความว่าการซ้อนทับกันจะถูกต้องก็ต่อเมื่อมันตอบสนองกรอบเวลาของทั้งสองฝ่าย ทำให้ไม่สามารถกรองล่วงหน้าด้วยช่วงเวลาคงที่เพียงช่วงเดียวได้
การทำความเข้าใจสถาปัตยกรรมแบบ Spacetime Overlap Index สะท้อนให้เห็นความท้าทายในการพัฒนาแอปพลิเคชันเชิงพิกัด (Geospatial Apps) ที่ต้องสมดุลระหว่างประสิทธิภาพการค้นหาและความเป็นส่วนตัวของผู้ใช้ การคำนวณแบบ Per-pair intersection แม้จะซับซ้อน แต่ก็แลกมาด้วยความยืดหยุ่นในการนำข้อมูลเข้าสู่ระบบจับคู่
มิติที่สามที่มีความสำคัญไม่แพ้กันคือเรื่องของความยินยอม (Consent) ซึ่งเป็นข้อจำกัดที่ควบคุมทุกองค์ประกอบที่กล่าวมา โดยความทรงจำจะถูกผนึกไว้เป็นค่าเริ่มต้นและไม่มีส่วนร่วมใดๆ ในดัชนีจนกว่าเจ้าของจะทำให้มันสามารถค้นหาได้ การนำมันกลับเข้าสู่ห้องนิรภัยจะต้องลบออกจากการจับคู่ทันทีโดยไม่ต้องรอรอบการทำงานแบบแบตช์ และการลบข้อมูลจะต้องกำจัดมันออกจากดัชนีรวมถึงกล่องขาเข้าที่รอดำเนินการของผู้อื่นด้วย

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
ผลพลอยได้ที่ยอดเยี่ยมจากการสร้างระบบในลักษณะนี้คือ การจับคู่ที่เกือบสำเร็จ (Near misses) จะไม่ถูกทิ้งโดยเปล่าประโยชน์ ผู้สมัครที่ผ่านการค้นหาเชิงพื้นที่แต่ไม่ผ่านการตัดกันของกรอบเวลา จะถูกส่งไปยังกล่องขาเข้าแทนที่จะถูกลบทิ้ง เช่น ระยะห่าง 11 เมตร และเวลา 9 นาที ซึ่งอยู่ภายนอกขอบเขตเล็กน้อย
ทั้งนี้ระบบดังกล่าวกำลังถูกพัฒนาขึ้นเพื่อใช้งานในแอปพลิเคชัน iOS ที่มีชื่อว่า Presque ซึ่งทำหน้าที่ค้นหาผู้คนที่เคยอยู่ในสถานที่และเวลาเดียวกันกับคุณ
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น