Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Gizzard Quick Intro (Korean)
Search
Hyunseok Hwang
August 02, 2012
Technology
140
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Gizzard Quick Intro (Korean)
Quick introduction for Gizzard which is a data store middleware from Twitter (Korean ver.)
Hyunseok Hwang
August 02, 2012
Other Decks in Technology
See All in Technology
クロスボーダーM&AのValue Upを支えるプロダクト開発。日米チームのハブになったプロダクトエンジニアの実践 / Product Engineering Conference 2026
genda
0
110
Amazon S3 Tablesに全部任せてみた結果——コンパクション/スナップショット管理は本当に手放せるか
shigeruoda
1
470
家のリアーキテクト・リファクタリング
suguruooki
0
110
ASTを使って影響範囲を特定する
nealle
0
150
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
450
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
4
390
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
130
AIネイティブプロダクトで顧客価値を最大化するプロダクトエンジニアとFDEの協働
righttouch
PRO
0
230
Adaptive Warehouse を今すぐ導入すべき理由と迷ったときの判断基準
__allllllllez__
0
170
Snowflakeで実現する全社横断の顧客の声(VOC)分析・活用基盤@Snowflake World Tour Tokyo 2026
yuto16
0
160
2026_devsumi_ozono.pdf
o3
2
340
Omarchy Quattro の日本語設定周り
simosako
2
140
Featured
See All Featured
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Abbi's Birthday
coloredviolet
3
9.9k
Believing is Seeing
oripsolob
1
210
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
What's in a price? How to price your products and services
michaelherold
247
13k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
890
Faster Mobile Websites
deanohume
310
32k
Transcript
Gizzard Quick Intro 황현석
[email protected]
목차 •Gizzard? •DB Scaling 주요 방법 소개 •왜 Gizzard를 만들었나?
•Gizzard의 특징 •Gizzard 사용하기 •Gizzard use case
Gizzard A library for creating distributed Data Store (a.k.a Data
Store sharding middleware)
DB Scaling 주요 방법 •Replication •Partitioning •Sharding
Replication •동일한 데이터를 중복하여 저장 •목적 •데이터 안정성 (reliability) •가용성
(availability) •Fail over, Fault tolerance •LB: Read/Write Off-loading •Backup
Partitioning •DB 데이터를 쪼개어 저장 •유형 •Horizontal : row 단위
•Vertical : table 단위 •목적 •성능 (performance) •가용성 (availability)
Sharding •여러 개의 노드에 걸쳐 Horizontal Partitioning •일반적으로 Replication을 수반함
•Shared-Nothing + Aggregation Cost •Shard Key is Key! •목적 •성능 - 인덱스 크기와 밀접한 관련 •가용성
왜 Gizzard를 만들었나? by Twitter •애플리케이션에서 Sharding을 구현하는 것은 정말
어렵고 골치아픈 문제 •3rd Party Open Source Framework은 Web 특화적인 문제에 알맞지 않음
Gizzard의 특징
Middleware •웹 앱과 저장소 사이에서 네트워킹 서비스를 제공 •여러 개의
Gizzard를 띄워 TCP 커넥션 갯수 제한을 늘릴 수 있음 •Scala로 구현됨 (w/ JVM)
다양한 Back-end Data Store 지원 •네크워킹이 가능한 저장소라면 무엇이든 지원
•예. RDB(MySQL등), Lucene, Redis, ... •의도한 순서대로 저장하는 것을 보장 안함 •저장 순서가 중요한 앱에서는 사용 못함
Forwarding Table을 통한 Partitioning •Fowarding Table에 특정 Shard의 id 범위를
맵핑 : Range 기반 •사용자 정의 해싱 함수로 균형도 조정 : Fun(id) •Custom Consistent Hashing도 지원되지만 추천 안함
Replication Tree •Logical Shard •데이터의 논리적인 범위를 묶어주는 branch node
•write/read 확산 규칙을 포함 •다양한 전략 구사 가능 (Write-Only, Read-Only, Replicate 등) •Custom 전략도 가능
Fault-tolerant •No Single Point Of Failure •특정 Replica 가 죽어도
나머지 정상 Replica로 장애없이 서비스 •Replica가 살아나면 버퍼링된 데이터로 비동기 쓰기 시도 -> 일종의 저널링 시스템 사용 •특정 Shard의 모든 Replica가 죽어도 다른 Shard에는 영향 없음 •비동기 복구 전략 때문에 쓰기 트랜잭션은 순서와 무관 하게 수행 될 수 있어야 함
Migration •로드 분산을 위한 노드 추가 시 마이그레이션 지원 •마이그레이션이
완료될 때 까지 •쓰기 : WriteOnly, Datastore A •읽기 : Datastore A
쓰기 충돌 해결 •동일 레코드를 변경하려는 연산이 동시에 요청되었을 때
발생 •쓰기 연산이 순서에는 무관해야 •각 쓰기 연산이 독립적이고 멱등(idempotent) 하며 교환 가능하게 모델을 설계해야 함
Gizzard 사용하기 •서버 : Gizzard 기반의 분산 Key-Value Store 인
Rowz를 내려받아 커스터마이징 •클라이언트 : Thrift, Gizzmo, Custom Driver •https://github.com/twitter/gizzard/blob/ master/doc/using.md
Gizzard Use Case •T-bird •Distributed MySQL-backed DB by Twitter •https://github.com/twitter/haplocheirus
•Redis-backed storage engine for timelines by Twitter •https://github.com/twitter/flockdb •Distributed MySQL-backed Graph DB by Twitter
감사합니다. https://github.com/twitter/gizzard