30 คะแนน โดย hiddenest 2023-10-10 | 4 ความคิดเห็น | แชร์ทาง WhatsApp

บันทึกงานวิศวกรรมเพื่อลดต้นทุนที่เกิดจากการเก็บข้อมูลจำนวนมากใน Redis ในรูปแบบ JSON โดยไม่มีการบีบอัด และจากการที่ไม่มีการแชร์โมเดลระหว่างบริการ Redis

  • เปลี่ยนวิธีจัดเก็บข้อมูลต้นฉบับเดียวกัน ทำให้ประหยัดการใช้หน่วยความจำของ ElastiCache ได้ 52% และลดค่าใช้จ่ายได้ 66%
  • ใช้ Protobuf แทน JSON เพื่อระบุสเปกข้อมูลอย่างชัดเจน พร้อมทั้งทำให้วิธีอ่าน/เขียนข้อมูลระหว่างบริการเป็นมาตรฐานเดียวกัน
  • เมื่อเปรียบเทียบการบีบอัด พบว่า brotli ให้สัดส่วนการบีบอัดสูงที่สุด จึงเปรียบเทียบเวลาที่ใช้และอัตราการบีบอัดตามขนาด window และระดับการบีบอัด เพื่อหาค่าที่เหมาะสมที่สุดแล้วนำไปใช้
  • เมื่อนำ UUID มาใช้เป็นคีย์ของ Redis การใช้ ascii85 ช่วยประหยัดการใช้หน่วยความจำได้เล็กน้อย
  • ตระหนักว่าหนี้ทางเทคนิคที่เกี่ยวข้องกับโดเมนอาจเป็นอุปสรรคต่อการลดต้นทุนด้านอินฟรา และจัดการสิ่งนี้ด้วย schema ที่ชัดเจน

4 ความคิดเห็น

 
nina514 2023-10-18

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

 
cosine20 2023-10-11

ใช่ครับ จริง ๆ แล้วแม้ว่า JSON จะถูกใช้เป็นหลักเพราะมีข้อดีตรงที่อ่านง่ายและจัดโครงสร้างได้ยืดหยุ่น แต่ในแง่ของขนาดแล้ว การใช้ไบนารีโปรโตคอลอย่าง protobuf จะสะดวกกว่า และถ้าสุดทางไปเลย ไบนารีโปรโตคอลที่ถูกปรับจูนมาอย่างมากอย่างโครงสร้าง PE แบบดั้งเดิมหรือโปรโตคอล TCP ก็น่าจะดีกว่าครับ
คำว่าหนี้ทางเทคนิคที่เกี่ยวกับโดเมนนี่ดูจะตรงประเด็นมากเลยครับ

 
kyc1682 2023-10-10

เจ๋งมาก

 
gilbok 2023-10-10

ท่านประธาน! ขึ้นเงินเดือนให้คนนี้เยอะ ๆ เลยครับ!!