วันศุกร์ที่ 20 กุมภาพันธ์ พ.ศ. 2552

การ tuning ระบบ :: Case Study is Twitter

พอดีกำลังออกแบบระบบที่ให้สา่มารถรองรับการใช้งานและรองรับข้อมูลจำนวนมากๆ ได้ ดังนั้นเลยลองมาดูเอกสารเกี่ยวกับ Architecture ของระบบใหญ่ๆ

ระบบแรกที่ไปดูมาก็คือ การ tuning ของ twitter.com ว่าทำอย่างไร

ซึ่งทำการศึกษาจากเอกสารที่นี่




สิ่งที่น่าสนใจคือ
1. การทำ patitioning โดยการ split ข้อมูลออกเป็นส่วนๆ เช่นการใช้ sharding เข้ามาช่วย
2. การ caching ซึ่งจะเก็บในทุกๆ level
3. การจัดทำ index และ tuning sql
4. ทำ Denormalize [ ไม่ใช่ Normalize นะครับ ]
5. จัดการเรื่อง message โดยใช้ RabbitMQ [ พัฒนาด้วย Erlang ]


ส่วนที่จะเอาไปใช้งานก็คงเป็นข้อแรกก่อน ต่อจากนั้นค่อยทำการขยับขยายต่อไป