2. • 2011년 4월에 열렸던 MySQL Confernce & Expo 2011에서
Jeremy Cole씨의 ‘Big and Small Data at @Twitter’
• Twitter의 시스템에 있어서 원칙과 시스템 구성에 대한 소개
3. 시작….
• 강연자는 2000년부터 MySQL AB/Inc 종업원으로 작년 11월부터 Twitter에서
근무를 시작했다.
• 데이터의 관점에서 본 Twitter
1일 약 155밀리언 트윗이 발생. 1주간 1빌리언이 된다.
지금까지 Peek는 1초간 6939 트윗. 이것은 이번 일본의 정월 때 발생.
하루에 46만의 새로운 어카운트가 만들어지고 있다.
• 이것을 보면 Twitter는 대규모 데이터를 취급하고 있다는 것을 알 수 있다.
4. Twitter의 원칙 - Pragmatism
• 첫 번째 원칙으로 아주 실제적인 방침에서 시작하여 판매되는 하드웨어와
소프트웨어를 사용하도록 하는 것
• 일에 가장 알맞은 툴을 사용하고 필요한 것은 개발한다.
• MySQL을 사용할 수 있는 곳은 사용한다. 실제 MySQL은 많은 곳에서 아주
유용하다.
• 다양한 컴포넌트 등을 Facebook의 사람들이 적극적으로 Hack 해주므로 이런
것들을 받아서 사용하기도 한다.
5. Twitter의 원칙 – Loose Coupling
• 두 번째 원칙은 Loose Coupling 이다.
• 비동기 처리를 위해 Queue를 사용한다.
6. Twitter의 원칙 – Soft Launches
• 세 번째 원칙은 천천히 완성하는 것.
• 새로운 코드는 disabled 상태에서 런칭하고, 천천히 유효하게 해 나간다.
• 필요하다면 원래대로 되돌리든가 특정의 역할만 유효하도록 한다.
• 문제가 있다만 바로 off로 하고 빠르게 개선해 나가는 것을 실현하고 있다.
7. • MySQL은 Twitter의 코어 아키텍처
• 사용하는 이유는 빨라서 로우버스트로 복제도 가능하기 때문.
• MySQL은 랩탑에서도 동작하고, 간단하게 배포하고, 간단하게 사용하고,
간단하게 테스트 할 수 있다.
8. • 대규모 ID 생성은 약함.
• Replication의 비효율도 있다.
• 유니크 ID를 보다 긴 것으로 바꾸었다. 이 때 Snowflake를 사용하였다.
9. • 데이터 베이스를 위한 분산 프레임워크.
• MySQL 위에 구축하고 있다.
• 데이터 쉐어링, 복제, 잡 스케쥴 등을 관리한다.