• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
[H3 2012] Cloud Database Service - Hulahoop를 소개합니다.
 

[H3 2012] Cloud Database Service - Hulahoop를 소개합니다.

on

  • 1,163 views

H3 2012 발표자료

H3 2012 발표자료
Cloud Database Service - Hulahoop를 소개합니다.
-KTH 황지수

Statistics

Views

Total Views
1,163
Views on SlideShare
954
Embed Views
209

Actions

Likes
3
Downloads
55
Comments
0

5 Embeds 209

http://h3.kthcorp.com 196
http://h3.paran.com 8
http://h3.localhost.com 2
http://webcache.googleusercontent.com 2
http://211.62.44.161 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    [H3 2012] Cloud Database Service - Hulahoop를 소개합니다. [H3 2012] Cloud Database Service - Hulahoop를 소개합니다. Presentation Transcript

    • Hulahoop :Cloud Database Service 분산기술Lab. 황지수
    • Session Preview 간단한 소개 개발 배경 구조와 특징 서비스로의 진화 적용 사례3/44
    • Hulahoop가 어떤 것인지 맛보기간단한 소개
    • 한 마디로 말해보기 Hulahoop는 Cloud Database Service 이다5/44
    • Cloud Database Service Taxanomy• Cloud Database Service 분류 Virtual Machine Database Deployment as a Service Oracle Amazon RDS SQL MySQL Microsoft Azure PostgreSQL Heroku CouchDB (EC2) Amazon DynamoDB NoSQL Hadoop(EC2) Amazon SimpleDB Cassandra(EC2) Google AppEngine Datastore6/44
    • Deployment Model Virtual Machine Database Deployment as a Service 설치 & 운영 사용 요금 지불7/44
    • Data Model SQL NoSQL 표준 비표준 복잡한 모델 간단한 모델 SELECT [name] Set( key, value ) FROM [H3_ATTENDEES] Get( key ) WHERE [current_session] = Delete( key ) ‘Hulahoop’8/44
    • Hulahoop를 분류해보면, Virtual Machine Database Deployment as a Service SQL MySQL Heroku NoSQL Cassandra(EC2) DynamoDB, Hulahoop9/44
    • Hulahoop : The Beginning개발 배경
    • 결론 먼저,1. Cloud Database Service가 되기 위해서 만들어진 것이 아닙니다.2. 분산파일시스템을 위해서 태어났습니다.11/44
    • 분산파일시스템 구조분산파일시스템 구조 Data Node #1 Data Node #2 Master Node Data Node #3 1,3,4 2,3,4 Data Node #412/44
    • 이런 구조의 단점은,구조적 한계 Data• SPOF Node #1• Scalability Data Node #2 Master Node Data Node #3 1,3,4 2,3,4 Data Node #413/44
    • PrismFS v1.0PrismFS v1.0 Data• Multi Master Node #1• Cassandra Data Node #2 Storage Storage Master Cassandra Data Node Node #3 확장성 + 가용성 Data Node #414/44
    • Cassandra를 선택한 것은, v0.6 고가용성 ★ 고가용성 ★★★ 수평적 확장성 ★ 수평적 확장성 ★★★ 적용사례 ★★★ 적용사례 ★ 데이터 모델 ★★★ 데이터 모델 ★15/44
    • Cassandra 적용 이슈 1. NoSQL 데이터 모델Data Model• De-normalization Table( c1, … , cn )  ( key, value )• Data Marshalling Marshalled Data Slice Slice Key File Meta Meta ... Meta16/44
    • Cassandra 적용 이슈 2. Update patternUpdate Pattern UPDATE [Meta] SET [version] = [version] + 1 WHERE [key]=‘key’ BLOB = get( key ) meta = UnMarsh( BLOB ) Get & set meta.version += 1 BLOB_v2 = Marsh( meta ) Set( key, BLOB_v2 )17/44
    • Cassandra 적용 이슈3 . Concurrent updateConcurrent Update Slice Slice ... Meta Meta Node A Node B get & set get & set Slice Slice Slice Slice ... ... Meta’ Meta Meta Meta”• Locking ( Local / Global )18/44
    • Cassandra 적용 이슈4 . Timestamp orderingTimestamp Ordering 100 110 120 Node A 20 40 50 Node B Logical Clock 100+α 110+α 120+α 100 > 50 < 120+α19/44
    • PrismFS v1.0에서 얻은 경험은,PrismFS에서 필요한 데이터모델데이터모델의 차이를 극복하려면,• 구현 복잡도 증가.• 메타데이타 저장소의 성능 활용 못함.20/44
    • 새로운 메타 데이터 저장소PrismFS v2.0을 위한 새로운 메타 저장소• 고가용성• 수평적 확장성• 분산파일시스템에 적합한 데이터 모델• 부분적인 ACID Hulahoop21/44
    • 구조와 특징
    • Architecture OverviewArchitecture Overview• 데이터 모델• Slot• Slot Ownership• Fail-over• Scale-out23/44
    • Data Model데이터 모델기본은 간단한 데이터 모델• ( Key, Value ) = ( Domain, Data ) Domain Data다양한 Data 처리 방법으로 기능 확장• SQL• Python Script24/44
    • Data Type : SQLData Type : SQL Hulahoop SELECT * FROM MY_TABLE; Col1 … ColN Row1_col1 … Row1_colN … … … RowN_col1 … RowN_colN25/44
    • Data Type : Python ScriptData Type : Python Script def run( conn ): Hulahoop c = conn.cursor() c.execute( ‘…..’ ) return c.fetchone() result• Entry point.• Server context.26/44
    • SlotSlot• 데이터 처리와 저장 모듈 Database Script Engine Processor Data Operation Snapshot Log Background27/44
    • Hulahoop와 SlotHulahoop = 다수의 Slot Slot Slot Slot Slot Slot Slot Slot28/44
    • Slot RingSlot Ring• 가상의 원형 공간에 배치• 고정된 Ring의 크기 = Slot의 개수 Slot Domain Slot Slot Slot Hash Slot Slot Slot29/44
    • Server RingServer Ring• Slot Ring과 같은 크기.• 동일한 규칙으로 ownership 영역을 갖음.30/44
    • Slot OwnershipSlot Ownership Slot SlotSlot Slot Slot Slot Slot31/44
    • Slot RoutingSlot Routing Domain Hash32/44
    • ReplicationReplication• Operation Log를 3배수로 복제.33/44
    • FailoverFail-over• 이웃한 서버에 대해서 작동. Slot Slot Slot Slot Slot Slot34/44
    • FailoverFail-over• 이웃한 서버에 대해서 작동. Activate Slot Slot Slot Slot Slot Slot35/44
    • Scale-outScale-out• 새로운 Ownership에 따라서 Slot 재배치. Slot Slot Slot Slot Slot Slot36/44
    • Scale-outScale-out• 새로운 Ownership에 따라서 Slot 재배치. Copy Data Slot Slot Slot Slot & Acquire Ownership Slot Slot Slot Slot37/44
    • FeaturesHulahoop 구조의 특징• Decentralized system.• Horizontal Scalable.• Support SQL, Python Script.38/44
    • 서비스로의 진화
    • Amazon DynamoDB APIAmazon DynamoDB API• AWS APIs  사실상의 표준• PrismFS = AWS S3• 다수의 3rd party tools, libraries, applications• 풍부한 documentation40/44
    • Service ArchitectureService Architecture Hulahoop REST Server RPC Server41/44
    • Hulahoop, database serviceHulahoop, Database Service사용자가 얻는 혜택• NO, DBMS 설치&운영• AWS DynamoDB의 장점42/44
    • 어떤 곳에서 쓰이고 있는지적용사례
    • 현재 : 적용사례1. PrismFS 2.0 ( Distributed File System ) - AWS S3 API. - baas.io Storage Service. - Hulahoop Native API. - File metadata storage.2. IRIS ( Cloud Search Engine ) - Hulahoop REST API. - Document storage.44/44
    • 기술연구소 / 분산기술Lab. 황지수jsioux {at} kthcorp . com