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

More Related Content

What's hot

파이어베이스 네이버 밋업발표
파이어베이스 네이버 밋업발표파이어베이스 네이버 밋업발표
파이어베이스 네이버 밋업발표
NAVER D2
 
ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임
흥배 최
 
Windows Azure 개요
Windows Azure 개요Windows Azure 개요
Windows Azure 개요
Keon Lee
 
Webservice cache strategy
Webservice cache strategyWebservice cache strategy
Webservice cache strategy
DaeMyung Kang
 
SQL Azure 실무 도입하기
SQL Azure 실무 도입하기SQL Azure 실무 도입하기
SQL Azure 실무 도입하기
정현 남
 

What's hot (20)

NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
Amazon web service를 활용한 모바일 게임 서버 개발 퍼즐 주주의 사례를 중심으로
Amazon web service를 활용한 모바일 게임 서버 개발   퍼즐 주주의 사례를 중심으로Amazon web service를 활용한 모바일 게임 서버 개발   퍼즐 주주의 사례를 중심으로
Amazon web service를 활용한 모바일 게임 서버 개발 퍼즐 주주의 사례를 중심으로
 
파이어베이스 네이버 밋업발표
파이어베이스 네이버 밋업발표파이어베이스 네이버 밋업발표
파이어베이스 네이버 밋업발표
 
Crawling with AWS Lambda
Crawling with AWS LambdaCrawling with AWS Lambda
Crawling with AWS Lambda
 
0222 사내세미나_오정민 스프링인액션
0222 사내세미나_오정민 스프링인액션0222 사내세미나_오정민 스프링인액션
0222 사내세미나_오정민 스프링인액션
 
ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임
 
Windows Azure 개요
Windows Azure 개요Windows Azure 개요
Windows Azure 개요
 
Cloudera Impala 1.0
Cloudera Impala 1.0Cloudera Impala 1.0
Cloudera Impala 1.0
 
클라우드 춘추전국시대 서버 개발자 생존기
클라우드 춘추전국시대 서버 개발자 생존기클라우드 춘추전국시대 서버 개발자 생존기
클라우드 춘추전국시대 서버 개발자 생존기
 
Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...
Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...
Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...
 
Project TIMAT - infrastructure as code
Project TIMAT - infrastructure as codeProject TIMAT - infrastructure as code
Project TIMAT - infrastructure as code
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
 
서버 개발자가 되기 위한 첫 걸음
서버 개발자가 되기 위한 첫 걸음서버 개발자가 되기 위한 첫 걸음
서버 개발자가 되기 위한 첫 걸음
 
[TD 2015] Microsoft Azure IaaS v2(최정현)
[TD 2015] Microsoft Azure IaaS v2(최정현)[TD 2015] Microsoft Azure IaaS v2(최정현)
[TD 2015] Microsoft Azure IaaS v2(최정현)
 
Getting started with Azure Services Platform
Getting started with Azure Services PlatformGetting started with Azure Services Platform
Getting started with Azure Services Platform
 
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
 
[테크데이즈2015] 개발하기 바쁜데 푸시와 메시지큐는 있는거 쓸래요
[테크데이즈2015] 개발하기 바쁜데 푸시와 메시지큐는 있는거 쓸래요[테크데이즈2015] 개발하기 바쁜데 푸시와 메시지큐는 있는거 쓸래요
[테크데이즈2015] 개발하기 바쁜데 푸시와 메시지큐는 있는거 쓸래요
 
자바가 디비와 사귀기 까지 벌어지는 일들
자바가 디비와 사귀기 까지 벌어지는 일들자바가 디비와 사귀기 까지 벌어지는 일들
자바가 디비와 사귀기 까지 벌어지는 일들
 
Webservice cache strategy
Webservice cache strategyWebservice cache strategy
Webservice cache strategy
 
SQL Azure 실무 도입하기
SQL Azure 실무 도입하기SQL Azure 실무 도입하기
SQL Azure 실무 도입하기
 

Viewers also liked

왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?
왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?
왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?
흥배 최
 
[Sdc 3rd] Boost multi_index
[Sdc 3rd] Boost multi_index[Sdc 3rd] Boost multi_index
[Sdc 3rd] Boost multi_index
흥배 최
 
Facebook이 대규모 확장성 도전에서 배운 것
Facebook이 대규모 확장성 도전에서 배운 것Facebook이 대규모 확장성 도전에서 배운 것
Facebook이 대규모 확장성 도전에서 배운 것
흥배 최
 
이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기
OnGameServer
 

Viewers also liked (16)

왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?
왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?
왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?
 
[Sdc 3rd] Boost multi_index
[Sdc 3rd] Boost multi_index[Sdc 3rd] Boost multi_index
[Sdc 3rd] Boost multi_index
 
Facebook이 대규모 확장성 도전에서 배운 것
Facebook이 대규모 확장성 도전에서 배운 것Facebook이 대규모 확장성 도전에서 배운 것
Facebook이 대규모 확장성 도전에서 배운 것
 
노후 서버 교체 필요성
노후 서버 교체 필요성노후 서버 교체 필요성
노후 서버 교체 필요성
 
V05 254491 sms시스템
V05 254491 sms시스템V05 254491 sms시스템
V05 254491 sms시스템
 
Oracle Server Architecture
Oracle Server ArchitectureOracle Server Architecture
Oracle Server Architecture
 
귀찮은 기능, jQuery Library 에 맡겨버리자!
귀찮은 기능, jQuery Library 에 맡겨버리자!귀찮은 기능, jQuery Library 에 맡겨버리자!
귀찮은 기능, jQuery Library 에 맡겨버리자!
 
KGC 2014: 분산 게임 서버 구조론
KGC 2014: 분산 게임 서버 구조론KGC 2014: 분산 게임 서버 구조론
KGC 2014: 분산 게임 서버 구조론
 
이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기
 
[154] 데이터 센터의 오픈 소스 open compute project (ocp)
[154] 데이터 센터의 오픈 소스 open compute project (ocp)[154] 데이터 센터의 오픈 소스 open compute project (ocp)
[154] 데이터 센터의 오픈 소스 open compute project (ocp)
 
CSS 실무테크닉
CSS 실무테크닉CSS 실무테크닉
CSS 실무테크닉
 
서버 개발자가 되기 전에 알았으면 좋았을 것들
서버 개발자가 되기 전에 알았으면 좋았을 것들서버 개발자가 되기 전에 알았으면 좋았을 것들
서버 개발자가 되기 전에 알았으면 좋았을 것들
 
Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법
 
결제를 구현하고 싶은 개발팀을 위한 안내서
결제를 구현하고 싶은 개발팀을 위한 안내서결제를 구현하고 싶은 개발팀을 위한 안내서
결제를 구현하고 싶은 개발팀을 위한 안내서
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
 
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1
 

Similar to Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템

INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰
INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰
INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰
Myeongseok Baek
 
리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션
QooJuice
 
제14회 JCO Presentation - Build Your Big Data Platform
제14회 JCO Presentation - Build Your Big Data Platform제14회 JCO Presentation - Build Your Big Data Platform
제14회 JCO Presentation - Build Your Big Data Platform
BYOUNG GON KIM
 
초당 120만 트윗을 처리하는 twitter 시스템
초당 120만 트윗을 처리하는 twitter 시스템초당 120만 트윗을 처리하는 twitter 시스템
초당 120만 트윗을 처리하는 twitter 시스템
흥배 최
 

Similar to Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템 (20)

(책 소개) 엘라스틱 스택 개발부터 운영까지
(책 소개) 엘라스틱 스택 개발부터 운영까지(책 소개) 엘라스틱 스택 개발부터 운영까지
(책 소개) 엘라스틱 스택 개발부터 운영까지
 
20150305 스마트한 데이터모델링 with ER/Studio
20150305 스마트한 데이터모델링 with ER/Studio20150305 스마트한 데이터모델링 with ER/Studio
20150305 스마트한 데이터모델링 with ER/Studio
 
데이터가 흐르는 조직 만들기 - 마이리얼트립
데이터가 흐르는 조직 만들기 - 마이리얼트립데이터가 흐르는 조직 만들기 - 마이리얼트립
데이터가 흐르는 조직 만들기 - 마이리얼트립
 
Big Data Overview
Big Data OverviewBig Data Overview
Big Data Overview
 
INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰
INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰
INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰
 
2017 주요 기술 흐름 및 개요
2017 주요 기술 흐름 및 개요2017 주요 기술 흐름 및 개요
2017 주요 기술 흐름 및 개요
 
C++ 코딩의 정석.pptx
C++ 코딩의 정석.pptxC++ 코딩의 정석.pptx
C++ 코딩의 정석.pptx
 
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
 
애자일 프랙티스
애자일 프랙티스애자일 프랙티스
애자일 프랙티스
 
리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션
 
하드웨어 스타트업의 소프트웨어 이야기
하드웨어 스타트업의 소프트웨어 이야기하드웨어 스타트업의 소프트웨어 이야기
하드웨어 스타트업의 소프트웨어 이야기
 
이지트위터 사업계획서
이지트위터 사업계획서이지트위터 사업계획서
이지트위터 사업계획서
 
Understanding MLOps
Understanding MLOpsUnderstanding MLOps
Understanding MLOps
 
제14회 JCO Presentation - Build Your Big Data Platform
제14회 JCO Presentation - Build Your Big Data Platform제14회 JCO Presentation - Build Your Big Data Platform
제14회 JCO Presentation - Build Your Big Data Platform
 
초당 120만 트윗을 처리하는 twitter 시스템
초당 120만 트윗을 처리하는 twitter 시스템초당 120만 트윗을 처리하는 twitter 시스템
초당 120만 트윗을 처리하는 twitter 시스템
 
멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면
 
Pinpoint 도입기 - 2016 신림프로그래머 오픈 세미나
Pinpoint 도입기 - 2016 신림프로그래머 오픈 세미나Pinpoint 도입기 - 2016 신림프로그래머 오픈 세미나
Pinpoint 도입기 - 2016 신림프로그래머 오픈 세미나
 
구글시트로 개발자 해방시키기
구글시트로 개발자 해방시키기구글시트로 개발자 해방시키기
구글시트로 개발자 해방시키기
 
분석과 설계
분석과 설계분석과 설계
분석과 설계
 
[DDC 2018] 통신 데이터 분석환경 구축사례 (SKT, 홍태희)
[DDC 2018] 통신 데이터 분석환경 구축사례 (SKT, 홍태희)[DDC 2018] 통신 데이터 분석환경 구축사례 (SKT, 홍태희)
[DDC 2018] 통신 데이터 분석환경 구축사례 (SKT, 홍태희)
 

More from 흥배 최

KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
흥배 최
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심
흥배 최
 
NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션
흥배 최
 
닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기
흥배 최
 
MongoDB 모바일 게임 개발에 사용
MongoDB 모바일 게임 개발에 사용MongoDB 모바일 게임 개발에 사용
MongoDB 모바일 게임 개발에 사용
흥배 최
 
Tdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalabilityTdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalability
흥배 최
 
[KGC 2011]Boost 라이브러리와 C++11
[KGC 2011]Boost 라이브러리와 C++11[KGC 2011]Boost 라이브러리와 C++11
[KGC 2011]Boost 라이브러리와 C++11
흥배 최
 

More from 흥배 최 (20)

Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용
 
Go web framework 비교[번역 정리]
Go web framework 비교[번역 정리]Go web framework 비교[번역 정리]
Go web framework 비교[번역 정리]
 
Bash on Ubuntu on Windows
Bash on Ubuntu on WindowsBash on Ubuntu on Windows
Bash on Ubuntu on Windows
 
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
 
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
 
Wtl 개요와 설치
Wtl 개요와 설치Wtl 개요와 설치
Wtl 개요와 설치
 
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심
 
NLog 소개
NLog 소개NLog 소개
NLog 소개
 
닷넷 Apache avro
닷넷 Apache avro닷넷 Apache avro
닷넷 Apache avro
 
Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개
 
Mongodb 관리
Mongodb 관리Mongodb 관리
Mongodb 관리
 
Mongodb 개발 포인트
Mongodb 개발 포인트Mongodb 개발 포인트
Mongodb 개발 포인트
 
NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션
 
닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기
 
MongoDB 모바일 게임 개발에 사용
MongoDB 모바일 게임 개발에 사용MongoDB 모바일 게임 개발에 사용
MongoDB 모바일 게임 개발에 사용
 
Tdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalabilityTdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalability
 
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
 
[KGC 2011]Boost 라이브러리와 C++11
[KGC 2011]Boost 라이브러리와 C++11[KGC 2011]Boost 라이브러리와 C++11
[KGC 2011]Boost 라이브러리와 C++11
 
[0602 박민근] Direct2D
[0602 박민근] Direct2D[0602 박민근] Direct2D
[0602 박민근] Direct2D
 

Recently uploaded

Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
Wonjun Hwang
 

Recently uploaded (7)

Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption
 

Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템

  • 1. Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템 최흥배
  • 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 위에 구축하고 있다. • 데이터 쉐어링, 복제, 잡 스케쥴 등을 관리한다.
  • 10. • 팔로워 리스트나 블록 리스트 등 ID와 ID 관계를 관리하는 것
  • 11. • 몇 개인가의 프로젝트에서 사용되고 있다.
  • 12. • 내부에서 사용하고 있다. • Apache 로그 등 비구조형 데이터 등의 분석을 하고 있다.
  • 13. • 분석에 사용하고 있다. • SQL로 분석할 수 있으므로 MapReduce 잡을 쓰지 않고 간단하게 처리를 기술 할 수 있다.