'COUCHBASE'에 해당되는 글 2건

  1. 2014.10.21 [CouchBase] Instruction
  2. 2014.10.14 CouchBase Overview
CouchBase2014.10.21 07:24

 

  • Key Concepts

    - Client(User/Application)는 Key와 Value로 데이터를 읽고 쓰고 한다.

    - Client는 Data Buckets -> Server Nodes -> CounchBase Cluster형식으로 접근 한다.

       

  • Architecture

    - 요청에 대해서 Listener-Sender가 받아서 처리한다.

    - RAM은 Builtin Cache이다.

    - SSD가 약 3~6배 빨라진다.

       

  • CouchBase Cli

    - 위치: C:\Program Files\Couchbase\Server\bin\couchbase_cli.exe

       

    - 참고: http://docs.couchbase.com/couchbase-manual-2.2/#command-line-interface-for-administration

       

  • Buckets

    - MSSQL의 데이터베이스라고 보면 된다.

    - vBucket으로 데이터를 저장 관리함.

    - 독립적인 사이즈, 위치, 관리, 모니터링 가능

    - RAM quota(사이즈), Replica count, Access Method(Read의 경우 램 사이즈를 높인다.)

    - 하나의 버킷은 전체 클러스터로 설정이 가능

    - 버킷 단위로 모니터링 된다.

    - 버킷은 생성/삭제가 독립적으로 할 수 있다.

       

  • Memcached Bucket

    - 메모리 캐쉬이다.

    - 단독으로 사용한다.

       

  • Couchbase Bucket

    - built-in cache

    - Persistent(디스크에도 데이터를 저장한다.)

    - Replicated

    - 관리 포인트가 동적으로 변경 가능

    - memcached api와 호환 가능

    - TAP-able(구멍 내서 받아 내는 것이 가능하다)

       

  • Memory Quotas

    - 노드 단위로 쿼터가 잡힌다.(ex: 클러스터 쿼터는 이 것들의 합이 된다)

    - Server Quota: 기본적으로 가지고 있는 쿼터 정보를 조인하는 서버가 가져간다. 전체 메모리의 80% 정도 권장함.

    - Bucket Quotas: 버킷 단위 구성 가능

       

  • Replica Count

    - 총 4개 까지 구성이 가능하다.

    - node의 숫자가 Replica Count 보다 클 때, 적용이 가능하다.

       

  • vBuckets
    - 실제 데이터 저장된 데이터 파일이라고 생각하면된다.

    - vBucket은 vBucket Map을 통하여 서버로 할당 된다.

    - vBucket으로 샤딩이 되는 것이다.

    - Bucket 당, 1024개의 vBucket이 존재 한다.

    - vBucket의 수는 변하지 않는다.

    - vBucket은 rebalance로 cluster 내에서 이동할 수 있다.

    - vBucket을 담는 file은 무한대로 커질 수 있다.

       

  • vBucket and Replica Structure

    - Active와 Replica는 서로 다른 노드에 존재한다.

    - Replica의 개수에 따라 최소 노드의 숫자는 +1이 된다.

    - 가급적이면 3대 운영을 권고함. 만약 2대가 운영 중에 한대가 Fail의 났을 경우, 나머지 한대가 2대의 몫을 해야하는 것은 부담이 된다.

   

  • Replicas

    - tip: active 데이터에 접근 3회 실패 시, replica에 접근 하도록 개발하기도 한다.

    - vBucket은 active data의 copy 본이다.

    - Replicas는 오직 노드 Fail시에만 이용하는 것이 정상적이다.(위의 tip과는 상반 되는 내용임)

       

  • vBucket Map and Replication

    - 사용자 레벨에 Key가 있다. 버킷에 키를 가지고 데이터를 넣게 되면, hash 함수를 가지고 해당 vBucket을 알 수 있음.

    - vBucket은 vBuecket 맵을 통해서, 물리적인 서버를 알 수 있다.

    - 이런 관리적인 메타 데이터가 많아서, Couchbase에 조금의 단점이 될 수 있다.

    - 모든 메타 데이터는 램에 저장된다. 100만개의 데이터에 대한 100만개의 메타데이터가 있어야 함.(3.0 이전 버전내용임)

       

       

신고

'CouchBase' 카테고리의 다른 글

[CouchBase] Console 살펴 보기  (0) 2016.04.07
[CouchBase] Instruction  (0) 2014.10.21
[CouchBase] 설치 방법 v3.0  (0) 2014.10.17
CouchBase Overview  (0) 2014.10.14
Posted by TM ~ing
CouchBase2014.10.14 08:41

 

   

  1. Single Node - CouchBase Write Operation

    - 제일 먼저, Managed Cache에 저장하고 Replication Queue에 보내고 약간의 Delay를 가지면서, Disk Queue -> Disk 로 반드시 저장이 된다.

       

    - CAS 옵션을 쓰면, 정상적으로 저장(Cache, Replication, Disk) 될 때까지 대기 했다가 모두 성공하면, 리턴을 준다.

       

  2. Single Node - CouchBase Update Operation

    - 데이터가 갱신 되었기 때문에, 다시 Write의 Operation이 진행 된다.

       

  3. Single node - Couchbase Read Operation

   - Managed Cache(Builtin Cache)에 있으면 Disk 접근 없이 Read가 가능 메모리에 없다면(Cache Miss), Disk에서 Managed Cache로 데이터를 올린 후, Read가 가능해진다.(즉, 모든 데이터 액세스는 Memory를 통해서 한다.)

4.    Cache Ejection

- 메모리의 용량의 한계에 도달했을 때, 최근 사용하지 않은 데이터 부터 Ejection 시킨다. 

 

  • Auto Sharding and Cluster Map

- Bucket: 하나의 버킷은 여러 개의 가상 버킷으로 구성되어 있다.

- vBucket(가상 버킷): 가상 버킷은 클러스터 맵을 통하여, 각각의 서버에 할당 된다. 기본적으로 vBucket은 1024개 이다.

- 서버가 추가 되면, vBucket이 할당되고, vBucket 안에 있는 데이터 까지 복사 된다. 

   

  • Basic Operation

- 서버는 Active와 Replica를 동시에 가지고 있다. 단, 한 서버에 Active와 Replica는 서로 다른 데이터이다.

- 클러스터 맵은 app 서버 library에 저장된다.

 

- 서버 추가시, Cluster 내부의 Active 데이터와 Replica 데이터가 헤쳐모여(Rebalancing)를 통하여, 1/n로 나뉘어 진다.

 

 

- 잘 사용 되던, 서버가 죽으면 죽은 서버의 Active에 해당하는 Replica들이 Active로 올라오게 된다. (단, Failover와 Rebalanceing은 관리자가 제어한다.) 

   

  • XDCR(Cross Data Center Replication): 데이터 센터간의 Replication이라고 생각하면 된다.

- 데이터 버킷 단위로 Replication을 할 건데, Target은 어디야 라고 하면 데이터가 들어 오는 순간 Replication Queue를 통하여 곧 바로 데이터를 전송하게 된다. 

   

  • Indexing and Querying Features

- JSON 다큐멘트 콘텐츠 형식의 Secondary indexes

- Incremental Map-Reduce: 증분된 맵리듀스로 데이터 추가 및 삭제에 따라서 구조를 변경 시켜 가는 것이 아니라, version 관리를 통하여 최신 데이터를 유지하고, garbage 데이터는 주기적으로 Compaction 시켜준다.

- Couchbase View는 MATERIALIZED VIEW(실제 데이터를 담아 두는 뷰)이다. 이 것이 Couchbase의 가장 큰 단점이다. 인덱스는 가급적으로 많이 만들지 말라.

- Index 만드는 과정: 데이터가 들어오면, 인덱스 대상인 경우 인덱스 큐를 만들고, 다음 인덱스를 생성한다. 3.0부터는 Manage queue에서 바로 인덱스를 생성함.    

 

  • Full Text Search

- 현재는 지원하지 않음.(+ Elasticsearch)    

 

  • Couchbase Server Architecture의 특징

- 기본적으로 Single Node 타입이다.

- 모든 노드가 Data Manger와 Cluster Manger를 가지고 있다.(즉, 누구 Cluster Master가 될 수 있다.)

   

   

   

신고

'CouchBase' 카테고리의 다른 글

[CouchBase] Console 살펴 보기  (0) 2016.04.07
[CouchBase] Instruction  (0) 2014.10.21
[CouchBase] 설치 방법 v3.0  (0) 2014.10.17
CouchBase Overview  (0) 2014.10.14
Posted by TM ~ing

티스토리 툴바