ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MongoDB] 2. MongoDB Sharding 란?
    DB/MongoDB 2020. 12. 25. 18:33

    MongoDB

    Sharding 이란?

    샤딩은 "조각내다"라는 뜻으로 데이터베이스 저장기법 중 하나이며, 전체 네트워크를 분할한 뒤 트랜잭션을 영역별로 저장하고 이를 병렬적으로 처리하여 블록체인에 확장성을 부여하는 온체인 솔루션으로 데이터를 샤드라는 단위로 나눠서 저장 및 처리한다.

    → 분산처리기법

    MongoDB Sharding

    데이터를 여러 서버에 분할, 데이터의 분할은 MongoDB가 분할 된 데이터는 상황에 따라 각 Shard 이동 MongoDB 이용자 (앱)은 여러 서버를 의식하지 않아도 된다. 복제 가 동일한 데이터의 사본을 여러 DB에있는 반면, Sharding은 다른 데이터를 여러 DB에 가진다. 따라서 보통의 운용은 Sharding + ReplicaSet ( 복제 ) 구성된다.

    1. 샤드 : 실제로 데이터가 저장되어있는 mongod 프로세스 하나의 문서는 하나의 샤드에 저장되어 샤드 간의 데이터 복제는 않는다 복제 구성하는 것을 권장
    2. config 서버 : 샤드 메타 데이터를 관리하는 mongod 프로세스로 단일 장애 지점이되므로, 여러 config 서버로 구성하는 것을 추천
    3. mongos 서버 : 샤드의 라우팅 프로세스입니다. 샤드와 클라이언트를 연계시킨다. 필요하다면 여러 mongos 서버를 가진다. mongod 프로세스가 아니기 때문에, 상태와 데이터를 가지고 있지 않는다
    4. Shard Key : 데이터를 분산하는 범위의 키로 복수 지정 할 수 있다. 키에 어떤 범위의 데이터가 어떤 샤드에 저장되는지는 MongoDB가 관리하고 데이터의 편차에 따 라 자동으로 조정한다. 별도로 지정하지 않았다면 shard key는 object ID(_id)이다.  collection에 모든 document에 존재하는 field index 혹은 compound field index라면 shard key로 지정할 수 있다. 하지만 compound index는 shard key로 지정할 수 없다.
    5. Chunk :collection을 여러 조각으로 파티션하고 각 조각을 여러 샤드 서버에 분산해서 저장하는데 이 데이터 조각을 chunk 라고 한다

     

    'DB > MongoDB' 카테고리의 다른 글

    [MongoDB] 1. MongoDB란?  (0) 2020.12.15
Designed by Tistory.