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

1,504 views

Published on

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

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,504
On SlideShare
0
From Embeds
0
Number of Embeds
208
Actions
Shares
0
Downloads
60
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

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

  1. 1. Hulahoop :Cloud Database Service 분산기술Lab. 황지수
  2. 2. Session Preview 간단한 소개 개발 배경 구조와 특징 서비스로의 진화 적용 사례3/44
  3. 3. Hulahoop가 어떤 것인지 맛보기간단한 소개
  4. 4. 한 마디로 말해보기 Hulahoop는 Cloud Database Service 이다5/44
  5. 5. 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
  6. 6. Deployment Model Virtual Machine Database Deployment as a Service 설치 & 운영 사용 요금 지불7/44
  7. 7. Data Model SQL NoSQL 표준 비표준 복잡한 모델 간단한 모델 SELECT [name] Set( key, value ) FROM [H3_ATTENDEES] Get( key ) WHERE [current_session] = Delete( key ) ‘Hulahoop’8/44
  8. 8. Hulahoop를 분류해보면, Virtual Machine Database Deployment as a Service SQL MySQL Heroku NoSQL Cassandra(EC2) DynamoDB, Hulahoop9/44
  9. 9. Hulahoop : The Beginning개발 배경
  10. 10. 결론 먼저,1. Cloud Database Service가 되기 위해서 만들어진 것이 아닙니다.2. 분산파일시스템을 위해서 태어났습니다.11/44
  11. 11. 분산파일시스템 구조분산파일시스템 구조 Data Node #1 Data Node #2 Master Node Data Node #3 1,3,4 2,3,4 Data Node #412/44
  12. 12. 이런 구조의 단점은,구조적 한계 Data• SPOF Node #1• Scalability Data Node #2 Master Node Data Node #3 1,3,4 2,3,4 Data Node #413/44
  13. 13. 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
  14. 14. Cassandra를 선택한 것은, v0.6 고가용성 ★ 고가용성 ★★★ 수평적 확장성 ★ 수평적 확장성 ★★★ 적용사례 ★★★ 적용사례 ★ 데이터 모델 ★★★ 데이터 모델 ★15/44
  15. 15. Cassandra 적용 이슈 1. NoSQL 데이터 모델Data Model• De-normalization Table( c1, … , cn )  ( key, value )• Data Marshalling Marshalled Data Slice Slice Key File Meta Meta ... Meta16/44
  16. 16. 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
  17. 17. 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
  18. 18. 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
  19. 19. PrismFS v1.0에서 얻은 경험은,PrismFS에서 필요한 데이터모델데이터모델의 차이를 극복하려면,• 구현 복잡도 증가.• 메타데이타 저장소의 성능 활용 못함.20/44
  20. 20. 새로운 메타 데이터 저장소PrismFS v2.0을 위한 새로운 메타 저장소• 고가용성• 수평적 확장성• 분산파일시스템에 적합한 데이터 모델• 부분적인 ACID Hulahoop21/44
  21. 21. 구조와 특징
  22. 22. Architecture OverviewArchitecture Overview• 데이터 모델• Slot• Slot Ownership• Fail-over• Scale-out23/44
  23. 23. Data Model데이터 모델기본은 간단한 데이터 모델• ( Key, Value ) = ( Domain, Data ) Domain Data다양한 Data 처리 방법으로 기능 확장• SQL• Python Script24/44
  24. 24. Data Type : SQLData Type : SQL Hulahoop SELECT * FROM MY_TABLE; Col1 … ColN Row1_col1 … Row1_colN … … … RowN_col1 … RowN_colN25/44
  25. 25. 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
  26. 26. SlotSlot• 데이터 처리와 저장 모듈 Database Script Engine Processor Data Operation Snapshot Log Background27/44
  27. 27. Hulahoop와 SlotHulahoop = 다수의 Slot Slot Slot Slot Slot Slot Slot Slot28/44
  28. 28. Slot RingSlot Ring• 가상의 원형 공간에 배치• 고정된 Ring의 크기 = Slot의 개수 Slot Domain Slot Slot Slot Hash Slot Slot Slot29/44
  29. 29. Server RingServer Ring• Slot Ring과 같은 크기.• 동일한 규칙으로 ownership 영역을 갖음.30/44
  30. 30. Slot OwnershipSlot Ownership Slot SlotSlot Slot Slot Slot Slot31/44
  31. 31. Slot RoutingSlot Routing Domain Hash32/44
  32. 32. ReplicationReplication• Operation Log를 3배수로 복제.33/44
  33. 33. FailoverFail-over• 이웃한 서버에 대해서 작동. Slot Slot Slot Slot Slot Slot34/44
  34. 34. FailoverFail-over• 이웃한 서버에 대해서 작동. Activate Slot Slot Slot Slot Slot Slot35/44
  35. 35. Scale-outScale-out• 새로운 Ownership에 따라서 Slot 재배치. Slot Slot Slot Slot Slot Slot36/44
  36. 36. Scale-outScale-out• 새로운 Ownership에 따라서 Slot 재배치. Copy Data Slot Slot Slot Slot & Acquire Ownership Slot Slot Slot Slot37/44
  37. 37. FeaturesHulahoop 구조의 특징• Decentralized system.• Horizontal Scalable.• Support SQL, Python Script.38/44
  38. 38. 서비스로의 진화
  39. 39. Amazon DynamoDB APIAmazon DynamoDB API• AWS APIs  사실상의 표준• PrismFS = AWS S3• 다수의 3rd party tools, libraries, applications• 풍부한 documentation40/44
  40. 40. Service ArchitectureService Architecture Hulahoop REST Server RPC Server41/44
  41. 41. Hulahoop, database serviceHulahoop, Database Service사용자가 얻는 혜택• NO, DBMS 설치&운영• AWS DynamoDB의 장점42/44
  42. 42. 어떤 곳에서 쓰이고 있는지적용사례
  43. 43. 현재 : 적용사례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
  44. 44. 기술연구소 / 분산기술Lab. 황지수jsioux {at} kthcorp . com

×