Software Development

QCon San Francisco 2015 Day 2

2번째 날 어제보다는 약간 일찍 일어나서 호텔 조식도 먹고 출근했다. 오늘은 샌프란시스코에서 일하는 강문식 군과 점심을 먹느라 세션 2개 정도를 건너뛰었다. 나중에 비디오로 보기로… Building Highly-resilient Systems at Pinterest by Yongsheng Wu Yongsheng Wu는 Storage & caching team의 lead. 수만개의 AWS instance를 사용하고 있고, 100개 정도의 서비스를 가지고 있다고 한다. 서비스 수십개 관리하기도 어려운데 수백개라니… …

QCon San Francisco 2015 Day 2 더 보기 »

QCon San Francisco 2015 Day 1

어쩌다보니 지금까지 미국이나 유럽 등지를 한번도 여행한 적이 없어서, 올해 초 다짐한 것이 미국 여행. 페이퍼를 읽는 것이나 토크를 보는 것도 좋아하기 때문에 무겁지 않은 QCon에도 가보자라고 해서 올해 봄 무렵에 QCon SF 2015를 예약해두었다. 여러가지 위기는 있었지만, 가족여행을 겸해서 QCon SF에 참석하는 계획을 잡았고, 지난 토요일에 San Francisco에 도착했다. 이로서 목표 달성! 오늘부터 3일에 …

QCon San Francisco 2015 Day 1 더 보기 »

Paper: TAO: Facebook’s Distributed Data Store for the Social Graph (Part 1)

Bronson, Nathan, et al. “TAO: Facebook’s Distributed Data Store for the Social Graph.” USENIX Annual Technical Conference. 2013. Facebook은 사용자들 사이의 관계, 사용자들의 포스팅, 이에 대한 코멘트 등을 MySQL에 저장하고 memcache에 캐싱하고 있었는데, 이를 개선한 TAO라는 시스템에 관한 페이퍼. geographically 분산된 단일한 인스턴스라는 점이 놀라운 점. 이후에도 설명되겠지만 graph abstraction만으로 Facebook의 주요한 데이터들을 표현한다는 것도 …

Paper: TAO: Facebook’s Distributed Data Store for the Social Graph (Part 1) 더 보기 »

Paper: Immutability Changes Everything

Helland, Pat, and One Market Street. “Immutability changes everything.” (2012). Abstract There is an inexorable trend towards storing and sending immutable data. We need immutability to coordinate at a distance and we can afford immutability, as storage gets cheaper. This paper is simply an amuse-bouche on the repeated patterns of computing that leverage immutability. Climbing …

Paper: Immutability Changes Everything 더 보기 »

Talk: “When “Worst” is Best (in Distributed Systems)” by Peter Bailis

“When “Worst” is Best (in Distributed Systems)” by Peter Bailis at Strange Loop 2015 (Video) UC Berkeley의 Ph.D. candidate인 Peter Bailis의 Strange Loop 2015에서의 발표. Worst case를 유리하게 만드는 최적화는 일반적으로 average case를 불리하게 만들지만, 이 Talk에서는 Worst case를 위한 디자인을 통해서 average case도 개선되는 경우들을 예를 들어 보여주고 있다. Worst case에 대한 고려를 하는 …

Talk: “When “Worst” is Best (in Distributed Systems)” by Peter Bailis 더 보기 »

Paper: A simple totally ordered broadcast protocol

Reed, Benjamin, and Flavio P. Junqueira. “A simple totally ordered broadcast protocol.” proceedings of the 2nd Workshop on Large-Scale Distributed Systems and Middleware. ACM, 2008. 이 페이퍼는 Zab라는 ZooKeeper의 내부에 구현되어있는 ordered broadcast 프로토콜을 소개하고 있다. 이 페이퍼는 informal한 형태로 Zab에 대한 요구사항과 동기, 그리고 프로토콜 자체에 대해서 설명하고 있으므로 이를 파악하기에 좋은 것 같다. …

Paper: A simple totally ordered broadcast protocol 더 보기 »

Paper: Conflict-free Replicated Data Types

Shapiro, Marc, et al. “Conflict-free replicated data types.” Stabilization, Safety, and Security of Distributed Systems. Springer Berlin Heidelberg, 2011. 386-400. Distributed system에서 replica 사이의 consistency를 유지하는 것은 매우 어려운 문제지만, CRDT라고 불리는 특별한 데이터구조들은 semilattice나 commutativity와 같은 그 자체의 성질을 이용하여 consistency의 문제를 훨씬 단순한 문제로 만들어준다. CRDT에 해당하는 데이터구조나 수학적인 성질들은 오래전부터 알려져있었고 활용되어왔지만, …

Paper: Conflict-free Replicated Data Types 더 보기 »

Paper: Facebook Wormhole

Sharma, Yogeshwer, et al. “Wormhole: Reliable pub-sub to support geo-replicated internet services.” NSDI, May. 2015. Challenges to Adopting Stronger Consistency at Scale 논문을 소개할 때도 언급한 바가 있는 이 논문은 Wormhole이라는 페이스북의 스토리지 업데이트를 여러 애플리케이션에 전달하기 위한 pub-sub 시스템을 소개하고 있다. 페이스북에서 사용자가 포스트를 올리면 데이터베이스의 쓰기가 발생하게 되는데, 이러한 쓰기 오퍼레이션은 다른 사용자의 뉴스 …

Paper: Facebook Wormhole 더 보기 »

Paper: Paxos Made Live – An Engineering Perspective

Chandra, Tushar D., Robert Griesemer, and Joshua Redstone. “Paxos made live: an engineering perspective.” Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computing. ACM, 2007. 이 논문은 Paxos를 실제로 구현하고자 할 때 고려해야할 현실적인 문제들과 해결방식을 설명하고 있다. Google은 Chubby에서 필요로하는 분산 로그 스토리지를 위해 기존의 상용 솔루션을 대체하는 Paxos를 구현하게 되었다고 …

Paper: Paxos Made Live – An Engineering Perspective 더 보기 »

Paper: Dotted version vectors: Logical clocks for optimistic replication (Part 2)

Paper: Dotted version vectors: Logical clocks for optimistic replication (Part 1) A Kernel for Eventual Consistency 인과성을 이용하는 분산 스토리지의 동작에 있어서 논리적 시계 집합에 대한 sync 와 update 2개의 오퍼레이션이 핵심을 이루고 있다고 주장하고 있다. 먼저 sync 오퍼레이션의 경우에는 두 개의 시계 집합을 취해서 두 집합의 원소들인 논리적 시계들 사이에 인과성의 관계가 있다면 이전에 해당하는 …

Paper: Dotted version vectors: Logical clocks for optimistic replication (Part 2) 더 보기 »