클라우드 컴퓨팅 & NoSQL 386

MongoDB vs Cassandra Performance

MongoDB 깜빡 잊고 있었다. Read / Write 성능이 빠를 수 밖에 없다는 걸.. Mongo는 Write시에, Memory에 먼저 Write후에, 1분 단위로 Flushing하는 Write Back 방식을 쓴다. 즉 메모리에만 쓰면 되니까는 Write가 무지 빠르다. 반대로 Read시에는 파일의 Index를 메모리에 로딩해놓고 찾는다(memory mapped file). 이러니 성능이 좋을 수 밖에, 단 Flushing전에 Fail이 되면 데이타 유실에 의해서 Consistency 가 깨지는 문제가 발생하고, Configuration 구조상 메모리 사용량이 많으며, 확장성에 제약이 있다. 특히 Write 구조에서는 비동기 식으로 Write를 하기 때문에 Disk 성능에 덜 Sensitive하다..

대용량 B2C 시스템에 대한 생각 전환

http://rainblue.kr/1045 트위터에서 재미있는 글을 찾아서 읽다보니, 발상의 전환이 필요하다고 생각되서 정리해 봅니다. -- 국내에는 사용자가 많지 않지만, 트위터보다 많은 트래픽을 자랑하는 마이크로 블로깅 도구입니다. (소셜 네트웤의 넘버 투 라고 자랑하네요.) 하루에 5억 PV, 초당 4만 request, 하루에 3TB 데이터를 저장하는 서비스를 위해 1천대 이상의 서버를 운용하는 텀블러. 4명의 엔지니어가 전형적인 LAMP 스택으로 시작했지만, 지금은 20명의 엔지니어가 점점 성장하는 사이트를 분산환경으로 진화시키고 있다네요 -- 초당 4만 TPS, 경이로운 숫자입니다. 처음에는 LAMP로 개발했고 현재는 Scala로 전환중이며, 메인 데이타 베이스는 아직도 MySQL에 Shardi..

Amazon Dynamo 계열의 NoSQL의 개요와 장단점 정리

분산 환경 기반의 NoSQL은 예전 포스팅에서도 설명했듯이 크게 Google의 BigTable 논문을 기반으로한 시스템과, Amazon의 Dynamo를 기반으로 한 시스템 두가지로 나뉘어 진다. Dynamo 계열의 NoSQL의 장단점을 간단히 정리해보면 Dynamo 계열 NoSQL의 개요 1. Ring과 Consistent Hasing 먼저 Dynamo 계열 (Cassandra, Riak) 의 NoSQL의 특징은 Ring 토폴로지를 기본으로 하고 있다. Ring 구성이란, 전체 데이타를 1~N (2^160과 같이 큰 범위로) 이라는 특정 레인지로 정의한후 전체 데이타 저장 구조를 Ring 형으로 정의한 후에, 이 Ring을 피자 조각을 나누듯이 여러 Slice로 나눈다. 이를 Partition이라고 하는..

NoSQL Riak Overview #1/2

Riak 계보 Riak은 이미들 잘 알고 있는 NoSQL 데이타 베이스이다. Basho.com이라는 회사에서 만들어서 배포하고 있고, 무료 버전인 Community version과 상용 기술 지원을 받을 수 있는 Enterprise version을 지원하고 있다. NoSQL 계보는 크게 두 가지로 나눠지는데, Google의 Big Table 논문을 기반으로 한 HBase,HyperTable 등과, Amazon Dynamo 논문을 기본으로 한 Cassandra등의 계열로 나뉘어 지며, Riak은 Dynamo 계열에 속한다. 데이타 모델에 있어서는 Key,Value 저장형식을 취하는데, Value는 JSON 문서가 저장되는 문서 저장형 데이타 베이스 형식을 취하며, 이는 MongoDB나 CouchDB와 유사..

Riak관련 스터디 메모

Vnode - vnode - process (One Erlang process per partition in the ring) partition - data - Vnode는 MR 처리를 하는 Worker가 따로 있음 - VNode Master : Receieve msg from request corrdinator - FSM (Finate State Machine) 1) Type 1 : Preference list-based : single key 2) Coverate based : entire keyspace W+R > N : Consistency 를 보장할 수 있다. (W : Write Replica 수) (R : Read Replica 수) Java SDK 에 Load Balancing Logic 이..

Azure가 아마존을 이길 수 있을까?

요즘 일이 바뻐서 블로그 포스팅을 거의 못하고 있습니다. 많이 버는 만큼, 그동안 충전해왔던 지식이나 노하우를 주로 방전하는 느낌입니다. 어쨌거나, 클라우드의 양대 산맥인 아마존 AWS와 Microsoft Azure에 대한 이야기를 해보려고 하는데.. Azure vs AWS의 승자가 누구이냐? 인데. 결론 부터 이야기 하면 AWS의 손을 들어주고 싶습니다. Blob Storage나 DB 서비스와 같은 액세사리성 서비스는 양쪽다 어느정도 구색을 갖춰 놨다고 했을 때, 핵심인 Compute Service가 문제인데. 기본적으로 Azure는 .NET 기반의 PaaS만 지원하지만, Amazon은 모든 플랫폼을 올릴 수 있는 IaaS 수준 서비스를 제공합니다. 이말인즉슨, 내가 필요한 소프트웨어를 마음대로 올릴 ..

Riak Quick Review

요즘 대규모 분산 환경이나 빅데이타 관련해서 NoSQL중에서 Riak이 많이 언급되는데... 생각보다 괜찮은 듯 http://nosql.mypopescu.com/post/632057783/riak-search-and-riak-full-text-indexing 주요 특징은 - Cassandra와 같은 Dynamo 계열 - ★ Secondary Index가 지원 된다.. (메이져 NoSQL 중에 유일하지 않을까?) - ★ FTS (Full Text Searching)도 지원된다. 그리고, Commercial Support도 가능하다. ==== 최근 포스팅한 좀더 자세한 Riak 정보 http://bcho.tistory.com/621

NoSQL 계보 정리

Google의 BigTable에서 시작된 것들 - HBase (Java) - HyperTable (C++) 주로 대규모 분산처리 특히 Map&Reduce에 알맞고, 동시 대규모 클라이언트를 지원하는데 뛰어 나다 Amazon Dynamo 로 부터 시작된 것들 - Voldemork - Riak FaceBook에서 시작된것 - Cassandra Write에 Optimize되었으며, Read는 Write에 비해 느림. 대규모 데이타 저장에 최적화됨 그밖에 Mongo 계열 -MongoDB 쉽다. 그리고 AutoSharding과 Balacing 제공. 10gen에서 Commercial Support -CouchDB : MongoDB와 특성은 유사하나 내부 기술 구조는 다름