MongoDB Trends and Introduction 우정웅연구원 Dec. 02, 2014

Similar documents
NoSQL

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

초보자를 위한 분산 캐시 활용 전략

Cloud Friendly System Architecture

DBMS & SQL Server Installation Database Laboratory

PowerPoint 프레젠테이션

Microsoft PowerPoint - CNVZNGWAIYSE.pptx

[Brochure] KOR_TunA

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

Ubiqutious Pubilc Access Reference Model

5 주차 -mongodb 설치잠깐! CAP 이론 NoSQL이나온이유와 MongoDB NoSQL의데이터저장구조에따른세가지분류 RDBMS와 NoSQL특성비교 RDBMS와 NoSQL의사용시기 MongoDB 소개및특징 MongoDB와 RDBMS와의공통 MongoDB CRUD

PowerPoint Presentation

chap 5: Trees

ETL_project_best_practice1.ppt

1217 WebTrafMon II

Intra_DW_Ch4.PDF

MS-SQL SERVER 대비 기능

슬라이드 1

PowerPoint Presentation

thesis

DocsPin_Korean.pages

슬라이드 1

DW 개요.PDF


APOGEE Insight_KR_Base_3P11

Domino Designer Portal Development tools Rational Application Developer WebSphere Portlet Factory Workplace Designer Workplace Forms Designer

Windows 8에서 BioStar 1 설치하기

adfasdfasfdasfasfadf

Oracle9i Real Application Clusters

PowerPoint 프레젠테이션

목 차

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

untitled

PowerPoint 프레젠테이션

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

김기남_ATDC2016_160620_[키노트].key

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Microsoft PowerPoint - 10Àå.ppt

JVM 메모리구조

PowerPoint Template

슬라이드 1


MySQL-.. 1

항목

PowerPoint 프레젠테이션


untitled

금오공대 컴퓨터공학전공 강의자료

Microsoft Word - [2017SMA][T8]OOPT_Stage_2040 ver2.docx

vm-웨어-01장

Oracle Database 10g: Self-Managing Database DB TSC

Smart Power Scope Release Informations.pages

C# Programming Guide - Types

AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

vm-웨어-앞부속

RED HAT JBoss Data Grid (JDG)? KANGWUK HEO Middleware Solu6on Architect Service Team, Red Hat Korea 1

Samsung SDS Enterprise Cloud Networking CDN Load Balancer WAN

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Portal_9iAS.ppt [읽기 전용]

Microsoft PowerPoint - 27.pptx

Contents Test Lab 홖경... 3 Windows 2008 R2 서버를도메인멤버서버로추가... 4 기존 Windows 2003 AD 홖경에서 Windows 2008 R2 AD 홖경으로업그레이드를위한사젂작업 7 기존 Windows 2003 AD의스키마확장...

PCServerMgmt7

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

FileMaker ODBC 및 JDBC 가이드

CONTENTS Volume 테마 즐겨찾기 빅데이터의 현주소 진일보하는 공개 기술, 빅데이터 새 시대를 열다 12 테마 활동 빅데이터 플랫폼 기술의 현황 빅데이터, 하둡 품고 병렬처리 가속화 16 테마 더하기 국내 빅데이터 산 학 연 관

Cache_cny.ppt [읽기 전용]

_LG히다찌 브로슈어

쉽게 풀어쓴 C 프로그래밊

강의 개요

Simplify your Job Automatic Storage Management DB TSC

<4D F736F F D205B4354BDC9C3FEB8AEC6F7C6AE5D3131C8A35FC5ACB6F3BFECB5E520C4C4C7BBC6C320B1E2BCFA20B5BFC7E2>

10.ppt

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

TTA Journal No.157_서체변경.indd

i-movix 특징 l 안정성 l 뛰어난화질 l 차별화된편의성

11강-힙정렬.ppt

Lab 3. 실습문제 (Single linked list)_해답.hwp

디지털포렌식학회 논문양식

FileMaker 15 ODBC 및 JDBC 설명서

REDIS 이해와 활용

R50_51_kor_ch1

ecorp-프로젝트제안서작성실무(양식3)

PowerPoint 프레젠테이션

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

Mango220 Android How to compile and Transfer image to Target

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

슬라이드 1

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft PowerPoint - o8.pptx

리뉴얼 xtremI 최종 softcopy

소프트웨어개발방법론

SMB_ICMP_UDP(huichang).PDF

RUCK2015_Gruter_public

intro

출원국 권 리 구 분 상 태 권리번호 KR 특허 등록

PowerPoint Template

Voice Portal using Oracle 9i AS Wireless

Transcription:

MongoDB Trends and Introduction 우정웅연구원 Dec. 02, 2014

Contents 1. MongoDB? 2. MongoDB 주요특징 3. MongoDB 구조 4. Performance c2014 rockplace 2

rockplace MongoDB? c2014 rockplace 3

MongoDB? NoSQL(Not Only SQL) - wikipedia 에따르면, 1988년카를로스트로지에의해처음사용된용어로, 표준 SQL 인터페이스를사용하지않는경량의오픈소스관계형데이터베이스를지칭 - 하지만, 최근에는대용량의데이터를처리하거나다양한요구사항에따라확장성을고려하여출시되는제품들을 Not Only SQL, 즉 NoSQL 이라고부르게됐다. c2014 rockplace 4

MongoDB? NoSQL List (http://nosql-database.org/) Wide Column Store / Column Families - Cassandra, HBase Document Store - MongoDB, CouchDB Key-Value / Tuple Store - DynamoDB, Redis Graph Databases - InfoGrid, Titan c2014 rockplace 5

MongoDB? DB-Engines Ranking (http://db-engines.com/en/ranking, October 2014) c2014 rockplace 6

MongoDB? Cassandra vs. HBase vs. MongoDB (http://db-engines.com/en/system, October 2014) c2014 rockplace 7

MongoDB? Cassandra vs. HBase vs. MongoDB (http://db-engines.com/en/ranking_trend, October 2014) c2014 rockplace 8

MongoDB? Cassandra vs. HBase vs. MongoDB (http://www.google.com/trends, October 2014) c2014 rockplace 9

MongoDB? NoSQL Job Trends (http://regulargeek.com/2014/09/01/nosqljob-trends-august-2014/) c2014 rockplace 10

MongoDB? 적용사례 (http://www.mongodb.com/use-cases) c2014 rockplace 11

MongoDB? NoSQL DB 중하나이며, NoSQL 제품군중가장많이 활용되고있는오픈소스기반의 DBMS Collection 으로이루어진각각의데이터베이스들의집합으로구성 Document 방식이기때문에유연한스키마를지원 - Dynamic schema - 구조적이지않기때문에, 다양한스키마를쉽게생성 할수있다. - Embedded document 와 array 를통해 join 에대한 필요성을줄일수있다. c2014 rockplace 12

MongoDB? 높은성능및가용성 - Embedding으로인해빠른 read/write 가능 - 인덱싱을통한빠른검색이가능 (Memory mapping 기술 ) - 복제서버간 failover 기능을지원 확장성 - Automatic sharding을통해 collection 데이터를분산 - 복제된서버를통해분산된 read가가능 빠르고사용하기쉽다. CAP 이론중 C(consistency) 와 P(Partition tolerance) c2014 rockplace 13

rockplace MongoDB 주요특징 c2014 rockplace 14

MongoDB 주요특징 Sharding( 분산 ) / Replication( 복제 ) 기능제공 - Automatic Sharding 매커니즘을이용하여수평으로확장 - 이와같은매커니즘을이용하여 Auto load balancing 이이루어지고, 자동장애복구기능과더불어이론상으로는 MongoDB의구성을수백 ~ 수천개의노드까지확장가능 - 이러한구성환경에서, 클라이언트는 Query를분석해서해당하는노드들로리다이렉트시켜주는 mongos 라는특별한구성요소 ( 노드 ) 에연결 c2014 rockplace 15

MongoDB 주요특징 Sharding( 분산 ) - http://docs.mongodb.org/manual/ c2014 rockplace 16

MongoDB 주요특징 Sharding( 분산 ) - 데이터의손실을피하기위해, 모든 logical 노드들은 replica set 역할을하는다수의물리적서버로구성 - 이러한인프라를구축하면 Map/Reduce를이용하여좋은성능의데이터셋을사용하는것이가능 - 메타데이터를저장하고있는 Config 서버가 1개또는 3개의노드가별도로필요로하며, 다른노드들과물리적으로별도의구성을권장 c2014 rockplace 17

MongoDB 주요특징 Sharding( 분산 ) - http://docs.mongodb.org/manual/ c2014 rockplace 18

MongoDB 주요특징 Sharding( 분산 ) / Replication( 복제 ) 기능제공 - MongoDB는 2가지타입의 replication을제공 - 장애복구와복제를구현하기위해 MySQL과마찬가지로 Master-Slave 구성의복제기능을제공하며, 이기능은노드간의일관성을높은수준으로보장 - Replica Set을제공하며기본적으로 Master-Slave와똑같은동작방식을보여주지만, Arbiter 를이용하여사용자임의로새로운 primary를정하는것이가능 c2014 rockplace 19

MongoDB 주요특징 Replication( 복제 ) 기능제공 - http://docs.mongodb.org/manual/ c2014 rockplace 20

MongoDB 주요특징 Replication( 복제 ) 기능제공 - failover 기능제공 (- http://docs.mongodb.org/manual/) c2014 rockplace 21

MongoDB 주요특징 Map/Reduce 기능제공 - 분산된데이터를효율적으로처리 - R-DB에서사용했던복잡한 query 지원 ( join, sub query, union 등 ) Memory Mapping 기반기술, 빅데이터를처리하는데효율적인성능을제공 - 메모리상의가상 Address에대한디스크의물리적 Address를매핑시켜불필요한작업을최소화 JSON & BSON Type을제공 c2014 rockplace 22

MongoDB 주요특징 JSON & BSON Type 을제공 - JSON(JavaScript Object Notation) - 데이터를표현하며, field 와 value 로구성 - String, Number, Boolean, Arrays, Null, Objects/Document c2014 rockplace 23

MongoDB 주요특징 JSON & BSON Type을제공 - BSON(Binary JSON) - DB에저장될때는 Binary 형태로저장 - JSON, DATE, TIMESTAMP, OBJECT ID 등현재까지 19가지데이터타입을지원한다. - 각프로그래밍언어에대한드라이버가 BSON과 JSON으로상호변환시켜주기때문에, 실제로사용자가이진형식으로만들어진 BSON Dcoument 를사용할일은없다. c2014 rockplace 24

MongoDB 주요특징 GridFS 이용한대용량데이터저장기술제공 Full Index 지원 R-DB와비슷한구조의 Query를제공 hint, explain, profiling 등을이용하여최적화가능 Fast In-Place Updates Aggregation pipeline을제공 - 데이터수집모델을위한프레임워크 - Map/Reduce에대한대체기능을제공하고, 복잡성에대한솔루션을제공 - Application code와요구되는리소스를단순화 c2014 rockplace 25

rockplace MongoDB 구조 c2014 rockplace 26

Mongo Shell Mongo Shell은 JavaScript shell 이다. 접속한후, MongoDB query 및 Map/Reduce, Aggregate, Index 생성및관리등을사용 db.help() 를통해 database 관련 query(javascript method) 를확인가능 db.collection.help() 를통해 collection 단위에서사용가능한 query(javascript method) 를확인가능 Mongo Shell에서사용가능한 JavaScript API는다음 url을참조 - http://docs.mongodb.org/manual/reference/method/ c2014 rockplace 27

MongoDB 용어 - http://docs.mongodb.org/manual/ c2014 rockplace 28

MongoDB Query - http://docs.mongodb.org/manual/ c2014 rockplace 29

MongoDB Query - http://docs.mongodb.org/manual/ c2014 rockplace 30

MongoDB Query - http://docs.mongodb.org/manual/ c2014 rockplace 31

MongoDB Query - http://tech.it168.com/a2011/0905/1242/000001242540.shtml c2014 rockplace 32

rockplace Performance c2014 rockplace 33

Performance(Index Concepts) MongoDB의모든 index 데이터구조는 B-Tree 방식 Index type은 field나 embedded field, 그리고 sub document 등에대해서 index 생성을지원하며, 다음과같은 type 들이있다. - Single Field Indexes - Compound Indexes - Multikey Indexes - Geospatial Indexes and Queries - Text Indexes - Hashed Index c2014 rockplace 34

Performance(Index Concepts) - Single Field indexes - http://docs.mongodb.org/manual/ c2014 rockplace 35

Performance(Index Concepts) - Compound Indexes - http://docs.mongodb.org/manual/ c2014 rockplace 36

Performance(Index Concepts) - Multikey indexes - http://docs.mongodb.org/manual/ c2014 rockplace 37

Performance(Index Concepts) - Geospatial Indexes and Queries * 지리정보를처리하기위해제공되며, 그리고이를처리하기위한 query 메커니즘이제공 - Text Indexes * Document 내에서텍스트검색을지원하기위해제공 - Hashed Index * Hashed index는 index를생성한필드값의 hash 항목들을유지, 관리하기위해제공 c2014 rockplace 38

Performance(Index Concepts) Default - db.collection.ensureindex(<key>, <option>) { unique : true } - unique index를생성할때사용 { sparse : true } - 해당필드의값이존재하는 document 들만으로인덱스가생성, 검색대상필드의값이전체컬렉션에서차지하는밀도가낮은경우, 쿼리최적화에도움 c2014 rockplace 39

Performance(Index Concepts) { dropdups : true } - 동일한값이여러개저장되어있는필드에 dropdups 옵션을사용하면최초입력된 document만남고나머지 document는제거된다. { background : true } - 일반적으로 index 생성시데이터베이스전체의성능지연현상을유발시킬수있다. 이에따라 index 생성시 background의옵션을사용하면다른데이터베이스의활동들을 block 하지않는다. c2014 rockplace 40

Performance(Index Concepts) Index를생성한경우 insert는항상느리다. Update, delete 에는상황에따라달라진다. Delete에서많은 document들을삭제할때는 index로부터해당하는모든 key들을삭제해야되기때문에속도가느리다. 하지만, 하나의 document만을삭제할때는삭제할 document를바로찾기때문에빠르다. 일반적으로, update 역시 delete와같다. c2014 rockplace 41

Performance(Index Concepts) Index 생성후에는, read가 write보다항상빠르다. 일반적으로 index가많을수록빠른읽기작업을수행하지만, 반대로 index가많을수록쓰기속도는느려지는것을의미한다. Index를생성할때는데이터베이스의다른작업들을차단할수있기때문에항상 collection의 size와시스템자원등을충분히고려 c2014 rockplace 42

Performance(Index Concepts) 주의사항 - index는물리적공간을차지하기때문에, 성능상의이유가아닌한적절하게사용하는것이중요 - _id index는자동으로생성되며, 필요하지않다면명시적으로 index를설정할필요가없다. c2014 rockplace 43

Performance(Explain & hint) Explain() 은 query에대한수행계획을보여준다. Explain(true) 와같이사용할경우, 기본정보보다더자세한설명을보여준다. Hint() 는 query를수행할때특정 index를사용하도록하여 query의최적화프로세스를보장한다. c2014 rockplace 44

Performance(Explain & hint) Explain c2014 rockplace 45

Performance Covered Query - 여러개의 field로생성된 index를검색할때, index의검색만으로조건에만족하는 document들이추출될수있다. - db.collection.find(~).explain.indexonly의값은 true 또는 false의값을가지는데, 값이 true인경우조건을만족하는데이터를검색하기위해오직 index만을검색한것이다. c2014 rockplace 46

Performance Covered Query - 이러한방법은 collection 에대한추가검색을피할수있기 때문에성능을개선시킬수있다. c2014 rockplace 47

Performance(currentOp & killop) currentop는 mongod나 mongos에서현재수행되고있는 operation들을확인할수있다. - currentop() 반대로 killop는현재수행되고있는 operation들을중단시킬수있다. - killop(<opid>) - <opid> 는 currentop() 로확인가능하다. c2014 rockplace 48

Performance(currentOp & killop) currentop & killop 실행결과 c2014 rockplace 49

Performance(profile) Mongod 단위로실행 read나 write operation, cursor operation 또는 database command에대한데이터정보를저장 사용자가실행하는모든문장들에대한로그정보를저장하기때문에, query 문장에대한성능지연현상이발생하는경우에는 profile을통해해당문장을추출하고분석할수있는기능 profile은기본적으로 off 상태 임계값 (threshold) 을설정할수있으며, 단위는 ms. c2014 rockplace 50

Performance(profile) { profile : <level> } - -1 = No change, Returns the current profile level. - 0 = Off, No profiling. - 1 = On, Only includes slow operations. - 2 = On, Includes all operations. { profile : 1, slowms : 200 } - slowms 옵션을통해서임계값을설정할수있다. - 위와같은경우, profile이활성화되어있으면서 200ms 보다느린연산에대한로그를저장한다. c2014 rockplace 51

Performance(profile) system.profile collection 에저장 c2014 rockplace 52

Performance(mongostat&mongotop) 두명령어모두 OS shell에서실행가능하며, --help 를통해관련도움말을확인가능 Mongostat는 MongoDB 내에서발생하는다양한작업 (insert, query, update, delete 등 ) 의상태정보와메모리상태 (mapped, vsize, res, faults, locked 등 ) 및기타시스템상태정보를출력해주는유틸리티 c2014 rockplace 53

Performance(mongostat&mongotop) vsize : 프로세스의가상크기 ( 단위 MB) faults : 초당발생하는 pagesfault 수 c2014 rockplace 54

Performance(mongostat&mongotop) repl - M : Master - SEC : Secondary - REC : Recovering - UNK : Unknown - SLV : Slave Set : Replica Set 명 c2014 rockplace 55

Performance(mongostat&mongotop) Mongotop 은 MongoDB 내의모든 collection 에대해서 read/write 의상태정보를제공하는유틸리티 c2014 rockplace 56

Performance(MMS) MMS(MongoDB Management Service) MMS에는몇가지구성요소가있으며, 대표적으로 monitoring과 backup module이있다. 제품이나서비스는 MongoDB와별개의 project 이지만, MongoDB 기반의시스템관리나운영에있어서확실하게도움을줄수있다. MongoDB와관련된모든프로세스목록들을확인가능하다. c2014 rockplace 57

Performance(MMS) Sharding 환경구성도확인가능 각노드에대한서버의설정이나 ReplicaSet의서버에대해서도 on/off가가능 Deployment, Servers, Activity, Backup, Dashboard, Administration 탭을통해다양한정보를확인가능 Chart도사용할수있다. - 단, database 기반의데이터일뿐 database 내의실질적인데이터가아니다. c2014 rockplace 58

Performance(MMS) c2014 rockplace 59

rockplace Sharding c2014 rockplace 60

Sharding Range based partitioning 기법 Sharding을구성하기위해서는반드시 shard key가필요하며, 각각의 collection에대해서로다른 shard key를가질수있다. Automatic Sharding 메커니즘을통한 Scale Out - Write Scalability 증가 Shard key는 2가지에사용 - sort를위한방법으로사용 c2014 rockplace 61

Sharding Shard key는 2가지에사용 - key range 기반에따라데이터를분배 * [k1, k2] -> S2 è k1 <= x <= k2 è x = S2 * [a,b) -> S1 è a <= x < b è x = S1 - http://docs.mongodb.org/manual/ c2014 rockplace 62

Sharding 기본적으로 MongoDB의 sharding은 2가지활동이존재 - split( 분할 ) - migrate( 이동 ) Split( 분할 ) - 분할작업은큰 size의 chunk가있는지확인하는작업 - 해당 chunk의 size가지정된 chunk size 이상으로커지면, MongoDB는 chunk를반으로분할한다. - 기본적으로, chunk size는 64MB이다. c2014 rockplace 63

Sharding Split( 분할 ) - http://docs.mongodb.org/manual/ c2014 rockplace 64

Sharding Migrate( 이동 ) - shard 간데이터의 balance를맞추는역할 - 따라서, shard 간데이터 size가불균형할경우 shard에서다른 shard로데이터를이동하는역할 - 기본적으로복제된데이터가이동하고, 이동이끝나면기존의데이터는삭제 - http://docs.mongodb.org/manual/ c2014 rockplace 65

Sharding Migrate( 이동 ) - 새로운 shard 번호및 chunk를가리키도록시스템의메타데이터를 update - 실제로는 cost가많이드는작업이며, 시스템의과부하를줄이기위해한번에많은작업을하지않는것을권장 - 이러한 migrate 중에도데이터에대한 read/write 가능 - 개념적구성요소가아니라, 실제로는 balancer 라는독립형프로세스를통해작업이이루어짐 c2014 rockplace 66

Sharding Balancer Process - Balancer는 chunk migration을관리하기위한 background 프로세스 - 정확한 byte 혹은 document, chunk의수를맞춰서 balancing이이루어지는것은아님 - 더정교한 balancing을위한부분은앞으로의버전을통해지속적으로업데이트예정 c2014 rockplace 67

Sharding Shard에서구동되는또다른프로세스 - 각 shard 에서는실제로데이터가저장되는 mongod 프로세스가존재 - config는 cluster의메타데이터를저장하기때문에 mongod 프로세스보다훨씬가볍다. - 데이터및구성요소들을규합하고, 일종의 router 역할을하기위한구성요소로 mongos 프로세스가존재 * 즉, client와 shard를연결할수있으며 mongos는영속성상태가아니기때문에데이터파일이없다. c2014 rockplace 68

Sharding Structure - http://docs.mongodb.org/manual/ c2014 rockplace 69

Sharding Structure - http://docs.mongodb.org/manual/ c2014 rockplace 70

rockplace Replica set c2014 rockplace 71

Replica set 기본적으로 Master/Slave 구성을하나의 set라한다. Primary와 secondary로구성되며, secondary 노드는오로지 read 기능밖에없다. Client에설치된드라이버를통해사용자는 replica set의어떠한노드라도접근이가능 - 장애발생시다른노드가 primary가되고, 변경된노드로접근을할수있어야되기때문 장애현상이일어났을경우, 일반적으로 10초이내에다른노드가 primary 서버로선택된다. c2014 rockplace 72

Replica set 이는사용자가개입하여원하는노드로선택되도록할수있으며, 또는 arbiter 에의해자동으로처리가능 우선순위를설정해둔경우에는가장높은값을부여받은서버가 primary 서버로된다. ( 단, 우선순위값은 0~1000) 이와같이, 장애조치와복구는 replica set의중요한개념 Replica set을구축할때 replica set의이름은관리하기쉽고, 단순하게정하는것이좋다. ( 내부적으로사용될일이거의없다.) c2014 rockplace 73

Replica set(slaveok) 일반적으로 primary에서기존의데이터및새로운데이터에대한정보를읽을수있지만, secondary 에서도데이터를읽을수있다. - primary의작업량을줄이기위해 (analytics server) - Read Scalability 증가 - Automatic failover를사용하여높은가용성을제공 Secondary 멤버에서 read operation을실행할수있도록허용 c2014 rockplace 74

Replica set(configuration) c2014 rockplace 75

Replica set(configuration) 가장일반적으로사용되는것이 arbiter - primary 노드가다운됐을경우 arbiter가자동으로적절한서버를선택하여 primary 서버로바꾼다. - 그후, 복구된이전의 primary는 secondary 서버 - 데이터가저장되지않으며오직장애발생시새로운 primary 서버를선출하기위해투표시에만사용 - arbiteronly:true 을추가하여사용 c2014 rockplace 76

Replica set(configuration) priority : <value> - 사용자가임의로지정해놓은대로새로운 primary 서버가될노드를표시하기위해사용된다. - 즉, 우선순위를이용하여장애발생시예정된서버가새로운 primary 서버로선출되도록하기위한방식 - 값이클수록높은우선순위를가짐 - 단, 값이 0 일경우절대해당노드는절대 primary 서버가될수없는 Only Secondary 서버를의미한다. c2014 rockplace 77

Replica set(configuration) Hidden Member - 기본적인복제이외의트래픽을수신하지않기때문에주로데이터의 backup 이나 reporting 을위한노드로사용된다. - client 로부터 replicate set 의멤버를숨길수있다. * MongoDB 드라이버나 client 는 replica set 의멤버상태를판별하기위해 db.ismaster() 메소드를사용하는데 hidden 멤버는 ismaster() 메소드에서출력이되지않는다. - hidden:true 를추가하여사용 c2014 rockplace 78

Replica set(configuration) Hidden Member - 사용시, 반드시 priority = 0 과함께사용해야된다. - 따라서, primary 노드에서장애가일어나도 hidden이포함된노드는절대로 primary가될수없다. - Delayed 멤버는반드시 hidden 옵션이필요하다. - http://docs.mongodb.org/manual/ c2014 rockplace 79

Replica set(configuration) slavedelay(delayed) Member - primary 서버의 oplog 정보를 secondary 서버에바로적용하지않고정의된시간동안 delay 시킨후적용시켜주는멤버 - slavedelay:3600 - 수치 1당 1초 - 따라서, delay 시간동안저장된데이터는읽을수없다. - hidden:true 옵션과같이사용 c2014 rockplace 80

Http Admin UI Mongod process의상태정보를확인할수있다. Http 기반으로사용되며, 기본포트 number에 1000을더하여 web으로접근할수있다. - 기본 port가 27017이면, web admin page를위한연결 port는 28017이된다. - 따라서, localhost:28017 로접근 Mongo shell에서실행되는 rs.status 와많은부분이비슷 c2014 rockplace 81

Http Admin UI Mongod process 의상태정보를제공해준다. c2014 rockplace 82

MongoDB 환경구성도 ( 예시 ) http://www.cumulogic.com/mongodb-as-a-service-on-cumulogic/ c2014 rockplace 83

MongoDB on cloud 기본적으로다양한클라우드플랫폼을지원 - Amazon Web Services EC2 - dotcloud - Joyent Cloud - Rackspace Cloud - Red Hat OpenShift - VMware Cloud Foundry - Windows Azure - Google Compute Engine c2014 rockplace 84