9
NoSQL Part 8. Key-Value Database 13년 4월 6일 토

키 값 데이터베이스

  • Upload
    rooya85

  • View
    101

  • Download
    3

Embed Size (px)

Citation preview

Page 1: 키 값 데이터베이스

NoSQLPart 8. Key-Value Database

13년 4월 6일 토

Page 2: 키 값 데이터베이스

Key-Value Database

RDB(Oracle) Riak

Database Instance Riak Cluster

Table Bucket

Row Key-Value

RowID Key

* Java 의 HashMap 과 동일함

13년 4월 6일 토

Page 3: 키 값 데이터베이스

What’s the Key-Value Database

<Bucket = userData>

<Key = sessionID>

<Value = Object>

UserProfile

SessionData

Shopping Cart

Cart Item1

Cart Item2

하나의 버킷에세션아이디로 키를 만들고키의 Value 로는 1. UserProfile2. SessionData3.Shopping Cart를 넣는다.

13년 4월 6일 토

Page 4: 키 값 데이터베이스

What’s the Key-Value Database

<Bucket = userData>

<Key = sessionID_userProfile>

<Value = UserProfileObject>

<Key = sessionID_sessionData>

<Value = SessionDataObject>

<Key = sessionID_shoppingCart>

<Value = ShoppingCartObject>

세션아이디_객체명으로 한 버킷 내에서다른 타입과의 충돌을회피할 수 있다.

13년 4월 6일 토

Page 5: 키 값 데이터베이스

Consistency

• 1. 한 키에 대해 값을 얻거나 저장, 삭제 연산.

• 2. 일관성은 한 키에 대한 연산에만 적용가능.

• 3. 결과적 일관성으로 구현되어있음.

• 4. 쓰기 정족수, 복제 정족수 로 일관성을 제공.

13년 4월 6일 토

Page 6: 키 값 데이터베이스

Transaction

• 1. 트랜잭션에 대한 보장이 없음.

• 2. 쓰기 정족수를 이용함.

13년 4월 6일 토

Page 7: 키 값 데이터베이스

Inquiry

• 1. Key-Value Database 는 Key로 조회한다.

• 2. Key 를 모를 때 Riak 은 Riak Search 를 제공.

• 3. Key 는 사용자가 정의한 것으로 사용된다. 예로 세션아이디, 타임스탬프 등으로 사용. 일반적으로 세션아이디를 사용한다.

13년 4월 6일 토

Page 8: 키 값 데이터베이스

Extendability• 1. 샤딩을 이용한 확장.

• 2. CAP 정리를 통한 확장성 제어 가능.

• N : 복제 정족수

• R : 읽기 정족수

• W : 쓰기 정족수

• 총 노드 수 : 5

• N : 3 = 최소 3개의 노드에 복제가 되어야 복제 성공

• R : 3 = 최소 3개의 노드에서 데이터를 읽어야 읽기 성공

• W : 3 = 최소 3개의 노드에 데이터를 써야 쓰기 성공

• 3. CAP 정리를 통해 가용성의 높낮이를 조절 할 수 있다.

13년 4월 6일 토

Page 9: 키 값 데이터베이스

Tip• 1. Key-Value 를 적절히 사용할 수 있는 기능

• 세션 정보 저장.

• 사용자 프로파일 설정

• 장바구니

• 2. Key-Value 가 맞지 않는 기능

• 데이터간의 관계가 존재 하는 경우

• 다중 연산 트랜잭션을 사용하는 경우

• 데이터로 조회하는 경우

• 집합에 의한 연산이 이루어지는 경우

13년 4월 6일 토