Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

카산드라 VS HBASE

No description
by

주성 방

on 3 April 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of 카산드라 VS HBASE

Cassandra vs HBase
Foundations
HBASE
Cassandra
Google의 Big table 기반
Amazon의 Dynamo 기반.
Facebook에서 Amazon의 엔지니어
출신이 개발함.
카산드라가 복수의 데이터 센터를 지원
하는 이유이며, Rackspace가 복수의
데이터 센터를 지원하는데 큰 공헌을 함
Infrastructure
HBASE
Cassandra
하둡의 infrastructure를 사용함.
(Zookeepr, NameNode, HDFS)
하둡을 사용하는 기업에서는 HBASE를
사용함으로써 하둡의 지식이 깊어질 수
있음.
(leveraging Hadoop Knowledge)
Cassandra는 Hadoop과 다른 배경에서
시작되고 발전되었으며, 필요한 운영
지식과 infrastructure가 Hadoop과
다르다.

그러나 많은 Cassandra 사용자는 분석
목적을 위해 Cassandra + Storm
(Zookeeper 사용) 이나 Cassandra +
Hadoop을 사용한다.
Infrastructure Simplicity
and SPOF
HBASE
Cassandra
Hbase-Hadoop 인프라는 Zookeeper,
Hbase Master, Name Node, Data
Nodes들로 구성된 핵심 부품(moving
parts)으로 이루어진다.

Zookeeper는 cluster로 구성되고,
fault-talerant하게 동작하나,
Name node는 fault-talerant하게 동작
하기 위해서는 cluster로 구성될 필요가
있다.
Cassandra는 single node-type으로
모든 node가 모든 기능을 수행하고,
평등하다. 어떤 노드라도 coordinator
역할을 수행하며 SPOF가 없다.

Storm이나 Hadoop을 추가하는 것은
infrastructure의 복잡성을 증가시킨다.
Read Intensive
Use Cases
HBASE
Cassandra
Hbase는 row-scan을 지원하는
Ordered - Partitioning을 사용할 뿐만
아니라, single-write master를 가지고
있어 strict consistency 모델을 지원함
으로써 reads에 최적화되어 있다.

Hbase는 Range based scans에
잘 맞는다.
Cassandra는 eventual consistency
가 유용한 use case에는 특출난 single
row performance를 보여준다.

Strict consistency에 필요한 quorum
read는 Hbase에 비해 느리다.

Cassandra는 Range based row-scans를 지원하지 않기 때문에 사용에
한계가 있을 수 있다.

Cassandra는 column value index 기반의 multi-row selecting이나 single-row query에 적합니다.
Foundations
HBASE
Cassandra
Google의 Big table 기반
Amazon의 Dynamo 기반.
Facebook에서 Amazon의 엔지니어
출신이 개발함.
카산드라가 복수의 데이터 센터를 지원
하는 이유이며, Rackspace가 복수의
데이터 센터를 지원하는데 큰 공헌을 함
Ordered Partitioning
HBASE
Cassandra
Hbase는 ordered partitioning만 지원한다.

Hfile은 CF의 모든 rows의 "block"이나 "shard"를 가지고 있다.
CF의 row들은 Hfiles에 rowkey 순서대로 저장된다.

Hfiles는 cluster의 모든 data-nodes에 분산되어 저장된다.
Cassandra는 공식적으로는 Ordered Partitioning을 지원한다.

하지만 Cassandra의 사용자들은 Ordered partitioning이 만들어 내는 "hot spot"과 "hot spot"이 초래하는 운영상의 어려움때문에 거의 사용하지 않는다.

Random partitioning이 cassandra가 추천하는 partitioning 방법이며, row들은 cluster안의 node에 모두 분산된다.
Write.ONE Durability
HBASE
Cassandra
Writes는 pipeline 방식으로 복제된다.
Region의 첫번째 data-node는 writes에 대해 저장(persist)하고 이후 다음 data-node로 보낸다.

Hbase는 pipeline상의 모든 nodes가 OS buffer에 쓰기를 마쳤을 때, "acks" commit log를 write한다.

Pipeline의 첫번째 region server가 WAL에 저장(persist)한다.
Cassandra의 coordinator는 모든 endpoint에 병렬적으로(parallel) write-request를 보낸다.

Coordiantor는 하나의 endpoint가 write에 대한 "ack"을 보내면, 쓰기(write)에 대한 "ack"을 보낸다.

쓰기(the writes)는 다른 endpoint들에 committed 되는 것과 관계없다.(may or may not have committed)
Multi-Data Center Support and Disaster Recovery
HBASE
Cassandra
Hbase는 Hbase cluster의 WAN간의 asynchronous replication을 지원한다.

Hbase는 zero-RPO를 달성하지는 못하지만 안정적인 상태에서는(steady-state) WAN간의 aynchronous replication을 사용하는 어떤 DBMS에 못지않은 failover 성능를 보여준다.

Fallback process와 procedure는 TBD.
Cassandra의 random partitionaing은 synchronous(wirte.QUORUM, wirte.ALL)거나 asynchronous (write.ONE, wire.LOCAL_QUORUM)
모두 WAN간의 single row replication을 지원한다.

그러므로 Cassandra는 zero-RPO를 달성할 수 있지만, 그 경우 각각의 write시에 WAN-ack이 필요하다.
Foundations
HBASE
Cassandra
Google의 Big table 기반
Amazon의 Dynamo 기반.
Facebook에서 Amazon의 엔지니어
출신이 개발함.
카산드라가 복수의 데이터 센터를 지원
하는 이유이며, Rackspace가 복수의
데이터 센터를 지원하는데 큰 공헌을 함
Infrastructure
HBASE
Cassandra
하둡의 infrastructure를 사용함.
(Zookeepr, NameNode, HDFS)
하둡을 사용하는 기업에서는 HBASE를
사용함으로써 하둡의 지식이 깊어질 수
있음.
(leveraging Hadoop Knowledge)
Cassandra는 Hadoop과 다른 배경에서
시작되고 발전되었으며, 필요한 운영
지식과 infrastructure가 Hadoop과
다르다.

그러나 많은 Cassandra 사용자는 분석
목적을 위해 Cassandra + Storm
(Zookeeper 사용) 이나 Cassandra +
Hadoop을 사용한다.
Infrastructure Simplicity
and SPOF
HBASE
Cassandra
Hbase-Hadoop 인프라는 Zookeeper,
Hbase Master, Name Node, Data
Nodes들로 구성된 핵심 부품(moving
parts)으로 이루어진다.

Zookeeper는 cluster로 구성되고,
fault-talerant하게 동작하나,
Name node는 fault-talerant하게 동작
하기 위해서는 cluster로 구성될 필요가
있다.
Cassandra는 single node-type으로
모든 node가 모든 기능을 수행하고,
평등하다. 어떤 노드라도 coordinator
역할을 수행하며 SPOF가 없다.

Storm이나 Hadoop을 추가하는 것은
infrastructure의 복잡성을 증가시킨다.
Read Intensive
Use Cases
HBASE
Cassandra
Hbase는 row-scan을 지원하는
Ordered - Partitioning을 사용할 뿐만
아니라, single-write master를 가지고
있어 strict consistency 모델을 지원함
으로써 reads에 최적화되어 있다.

Hbase는 Range based scans에
잘 맞는다.
Cassandra는 eventual consistency
가 유용한 use case에는 특출난 single
row performance를 보여준다.

Strict consistency에 필요한 quorum
read는 Hbase에 비해 느리다.

Cassandra는 Range based row-scans를 지원하지 않기 때문에 사용에
한계가 있을 수 있다.

Cassandra는 column value index 기반의 multi-row selecting이나 single-row query에 적합니다.
Foundations
HBASE
Cassandra
Google의 Big table 기반
Amazon의 Dynamo 기반.
Facebook에서 Amazon의 엔지니어
출신이 개발함.
카산드라가 복수의 데이터 센터를 지원
하는 이유이며, Rackspace가 복수의
데이터 센터를 지원하는데 큰 공헌을 함
Infrastructure
HBASE
Cassandra
하둡의 infrastructure를 사용함.
(Zookeepr, NameNode, HDFS)
하둡을 사용하는 기업에서는 HBASE를
사용함으로써 하둡의 지식이 깊어질 수
있음.
(leveraging Hadoop Knowledge)
Cassandra는 Hadoop과 다른 배경에서
시작되고 발전되었으며, 필요한 운영
지식과 infrastructure가 Hadoop과
다르다.

그러나 많은 Cassandra 사용자는 분석
목적을 위해 Cassandra + Storm
(Zookeeper 사용) 이나 Cassandra +
Hadoop을 사용한다.
Infrastructure Simplicity
and SPOF
HBASE
Cassandra
Hbase-Hadoop 인프라는 Zookeeper,
Hbase Master, Name Node, Data
Nodes들로 구성된 핵심 부품(moving
parts)으로 이루어진다.

Zookeeper는 cluster로 구성되고,
fault-talerant하게 동작하나,
Name node는 fault-talerant하게 동작
하기 위해서는 cluster로 구성될 필요가
있다.
Cassandra는 single node-type으로
모든 node가 모든 기능을 수행하고,
평등하다. 어떤 노드라도 coordinator
역할을 수행하며 SPOF가 없다.

Storm이나 Hadoop을 추가하는 것은
infrastructure의 복잡성을 증가시킨다.
Read Intensive
Use Cases
HBASE
Cassandra
Hbase는 row-scan을 지원하는
Ordered - Partitioning을 사용할 뿐만
아니라, single-write master를 가지고
있어 strict consistency 모델을 지원함
으로써 reads에 최적화되어 있다.

Hbase는 Range based scans에
잘 맞는다.
Cassandra는 eventual consistency
가 유용한 use case에는 특출난 single
row performance를 보여준다.

Strict consistency에 필요한 quorum
read는 Hbase에 비해 느리다.

Cassandra는 Range based row-scans를 지원하지 않기 때문에 사용에
한계가 있을 수 있다.

Cassandra는 column value index 기반의 multi-row selecting이나 single-row query에 적합니다.
Foundations
HBASE
Cassandra
Google의 Big table 기반
Amazon의 Dynamo 기반.
Facebook에서 Amazon의 엔지니어
출신이 개발함.
카산드라가 복수의 데이터 센터를 지원
하는 이유이며, Rackspace가 복수의
데이터 센터를 지원하는데 큰 공헌을 함
Infrastructure
HBASE
Cassandra
하둡의 infrastructure를 사용함.
(Zookeepr, NameNode, HDFS)
하둡을 사용하는 기업에서는 HBASE를
사용함으로써 하둡의 지식이 깊어질 수
있음.
(leveraging Hadoop Knowledge)
Cassandra는 Hadoop과 다른 배경에서
시작되고 발전되었으며, 필요한 운영
지식과 infrastructure가 Hadoop과
다르다.

그러나 많은 Cassandra 사용자는 분석
목적을 위해 Cassandra + Storm
(Zookeeper 사용) 이나 Cassandra +
Hadoop을 사용한다.
Infrastructure Simplicity
and SPOF
HBASE
Cassandra
Hbase-Hadoop 인프라는 Zookeeper,
Hbase Master, Name Node, Data
Nodes들로 구성된 핵심 부품(moving
parts)으로 이루어진다.

Zookeeper는 cluster로 구성되고,
fault-talerant하게 동작하나,
Name node는 fault-talerant하게 동작
하기 위해서는 cluster로 구성될 필요가
있다.
Cassandra는 single node-type으로
모든 node가 모든 기능을 수행하고,
평등하다. 어떤 노드라도 coordinator
역할을 수행하며 SPOF가 없다.

Storm이나 Hadoop을 추가하는 것은
infrastructure의 복잡성을 증가시킨다.
Read Intensive
Use Cases
HBASE
Cassandra
Hbase는 row-scan을 지원하는
Ordered - Partitioning을 사용할 뿐만
아니라, single-write master를 가지고
있어 strict consistency 모델을 지원함
으로써 reads에 최적화되어 있다.

Hbase는 Range based scans에
잘 맞는다.
Cassandra는 eventual consistency
가 유용한 use case에는 특출난 single
row performance를 보여준다.

Strict consistency에 필요한 quorum
read는 Hbase에 비해 느리다.

Cassandra는 Range based row-scans를 지원하지 않기 때문에 사용에
한계가 있을 수 있다.

Cassandra는 column value index 기반의 multi-row selecting이나 single-row query에 적합니다.
Zero - RPO
RPO : Recovery Point Objective
RTO : Revovery Time Objective

RPO는 재해 발생시 데이터 손실이 예상되는 시간,
RTO는 재해 발생시 재가동까지 걸리는 시간.

Zero-RPO란 재해 발생시 데이터 손실이 없다는 의미.
WAL
MVCC : Multi Version Concurrency Control - Hbase에서 읽기-쓰기 동기화, consistency를 위해 사용되는 방법

MVCC에서 쓰는 과정
1. Row lock 획득
2. 쓰기 번호 획득
3. Write-Ahead-Log (WAL) 쓰기
4. Memstore 업데이트
5. Write Number 저장
6. Row lock 반환
Full transcript