10

Click here to load reader

14. no sql을 넘어

  • Upload
    kidoki

  • View
    116

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 14. no sql을 넘어

14. NoSQL을 넘어

아꿈사 박기덕

Page 2: 14. no sql을 넘어

파일시스템은 계층적 키를 가지는 키-값 저장소처럼 취급

동시성에 대한 단순한 파일 잠금 이외의 제어 기능 제공하지 않음

구글파일 시스템과 하둡 같은 기술은 파일 복제를 지원

각 파일 크기가 크고 개수가 작을 경우 적합

파일시스템

Page 3: 14. no sql을 넘어

현재 상태뿐 아니라 모든 변화를 포착해 저장

이벤트 소싱

Page 4: 14. no sql을 넘어

시스템 상태 변화를 유발하는 모든 이벤트를 저장

이벤트 소싱

Page 5: 14. no sql을 넘어

스냅샷을 저장하고 이를 이용해 상태를 재생성 할 수 있도록 설계

스냅샷은 최적화 도구이며, 제어권 우선순위가 이벤트 로그보다 낮아야 함

스냅샷을 뜨는 동안 메모리 상태 변화가 일어나면 안되므로 시스템 중단

오래된 이벤트는 스냅샷을 이용, 스냅샷 이후 이벤트 로그만 저장

과거 어느 시점으로든 재구성이 가능, 내역 정보 분석 플랫폼에 효율적

이벤트 소싱 사용시 복잡도 증가

이벤트 소싱

Page 6: 14. no sql을 넘어

CQRS : 이벤트를 여러 개 시스템으로 분산

이벤트 소싱

Page 7: 14. no sql을 넘어

상태를 메모리 내 데이터 구조만 사용해 메모리에 유지

메모리에 유지시 디스크 I/O 불필요, 데이터 구조 매핑 불필요

모든 데이터를 메모리에 저장하기 위해서는 크기의 한계 발생, 하지만

실현 가능성은 증가 추세

동시성 처리를 위한 명시적 메커니즘 필요

클로저 언어에서 지원하는 트랜잭션 메모리 시스템 사용

모든 처리를 단일 스레드로 수행

자동 롤백 기능이 없으므로, 사전에 검증을 통한 오류 방지 필요

메모리 이미지

Page 8: 14. no sql을 넘어

개발자가 흔힌 접하는 이벤트 소싱 시스템은 버전 관리 시스템

과거 상태와 브랜칭을 통한 대안 상태 분석 지원

버전 관리 시스템은 파일 시스템 위에 구축

데이터 저장소로는 많은 한계를 지님

타임라인 기능을 유용하게 활용할 수 있는 경우 고려 가능

버전 관리

Page 9: 14. no sql을 넘어

XML과 호환되는 데이터 모델로 저장하는 문서 데이터베이스

다양한 형태의 XML 스키마 정의 (DTD, XML, 스키마, RelaxNG)

Xpath와 XQuery로 쿼리 실행, XSTL로 변환 수행

XML 데이터베이스는 XML값을 단지 BLOB로 처리하는 대신 데이터

베이스 자체에서 XML 구조의 장점을 활용할 수 있다는 뜻

하지만, 관계형 데이터베이스의 지배력에는 큰 영향을 미치지 못함

XML 데이터베이스

Page 10: 14. no sql을 넘어

메모리 내 데이터 구조를 관계형 테이블로 매핑 시 생기는 복잡성을

피하기 위해 고안

메모리 내 구조를 디스크로 저장하는 저장소를 자동으로 관리

데이터베이스와 애플리케이션의 밀접한 통합으로 인해 해당 애플리

케이션 이외에는 접근 불가로 인해 성공하지 못함

데이터 구조가 변경될 경우 전환 방법 문제 (지속성 저장소와 메모리

내 구조의 밀접한 결합)

객체 데이터베이스