Nosql 등장

Nosql 2016. 8. 23. 07:33

0. 데이터 분산 모델

- Master-Slave 복제

- master node : read/write 가능

- slave node : read 만 가능, master node 의 데이터를 동기화 한다

- Peer to Peer 복제

- 모든 node 에 대한 read/write 가능

- 하나의 node 에 대한 write 요청이 실패할 경우, write 실패

- Sharding

- write 에 대한 수평확장을 제공

- 저장 node 에 대한 매커니즘(샤딩키)을 정의 하여 사용

- 샤딩 적용시 고려사항

- 샤딩키 : 성능을 좌우하는 결정적 요소, 

                                        cardinality (==분포도) 가 적절한 필드 선택해야 한다 (낮으면 한 노드에 집중될수도...)

- 샤딩키 분배방식

- range : 데이터 분포를 예측 할수 있어야 한다

- hash

- 데이터 재분배 rebalancing

- 샤드간 데이터 조인 최소화

- 한 node 로 부터 요청에 대한 데이터를 얻을 수 있도록 데이터를 분산시켜야 한다

- Sharding + Peer to Peer 복제

- column family 형 nosql 에서 주로 사용하는 전략

- Scalability 에 따른 데이터 분산 모델

         


1. 관계형 DB 의 한계

- 관계형 DB 의 Scalability

- MPP(massively parallel processing) 방식의 scale out 아키텍처를 통해 RDB의 DW 계열의 Scalability 를 지원하지만, OLTP 용도의 DB, OSS DB 로 적합한 제품을 찾기 어렵다

- 관계형 DB 의 Sharding 구현

                - 자동으로 샤딩 기능 지원 하는 DBMS 사용

                - sharding 플랫폼 도입

                - application 단에서 처리하는 방법

                    - 다양한 용도로 사용하기 어렵다

                    - ex : user key 를 샤딩키로 적용하여 application 단에서 DB 를 선택적으로 이용


2. NOSQL 배경

        - 새로운 데이터 타입의 등장 / 방대한 양의 데이터

        - 확장성(Scalability) 에 대한 needs 의 증가 >> 관계형 DB 의 Scalability 는 기술적으로 제한된다

        - 주로 DB 가 병목지점이다

        - read 분산은 쉬우나 write 분산은 쉽지 않다


3. NOSQL 개념

        - 정의 : 비관계형/비구조적 데이터 를 저장하기 위한 분산 저장 시스템

        -  특징

            - 조인 기능 없음

            - 대부분 open source

            - 클러스터 환경에서 구동하며 자동 샤딩을 제공한다

            - 분산, 수평적 확장이 용이

            - auto failover 지원

- 제품 분류

 



Posted by 감각적신사
,