본문 바로가기

데이터베이스(DA, AA, TA)/NoSQL

[데이터베이스] DB엔진 메모

https://db-engines.com/en/ranking -> DB엔진 랭킹 사이트(monthly단위로 확인 가능)

 

사용량은 아니고, Stackoverflow 같은 검색어 질의를 Summary한 랭킹

사람들이 많이 사용? 조회? 하는 DB 순서 랭킹

 

DBMS의 종류별로 확인 가능.

 

Relational DBMS (Oracle / MySQL / Mssql / Hive / Spark SQL ...)

Key-value stores (Redis / Amazon DynamoDB / Memcaches / Ehcache ...)

Document stores (MongoDB / Amazon DynamoDB / Couchbase ...)

Search engines (Elasticsearch / Splunk / Solr ....)

 


 

Replica(복제) : 여러 대의 서버로 데이터를 실시간으로 복제 / Secondary 서버를 통해 읽기 부하 분산 가능 / Raft, Paxos Consensus 알고리즘

Sharding(샤딩) : 많은 양의 데이터를 여러 대의 서버에 나누어 저장 / 수평적 확장 가능

 

몽고DB는 DB서버를 여러대만들어서 데이터를 분산하는 Scale out 방식으로 샤딩이 가능함.

 

몽고DB Replication 참고 사이트 ( https://kayjayworld.tistory.com/6 )

 

Chunk : 샤드키 기준으로 나뉘어진 데이터의 조각?

 

 

QueryRouting(쿼리라우팅): 쿼리 라우팅 방법은 동일한 분산 파일 시스템을 사용하고 해당 메타데이터를 공유하는 복수의 쿼리 수행 엔진들과 연동 가능한 쿼리 라우팅 서버에서 수행되고, 사용자로부터 쿼리 및 쿼리 수행 엔진 결정 기준을 수신하는 단계 -> 쿼리 수행 엔진 결정 기준을 기초로 복수의 쿼리 수행 엔진들 중 하나를 결정하는 단계.

 

 

CheckPoint(체크포인트): 트랜잭션로그 변경이 기록되면 클라이언트는 ACK를 받고, DBMS는 buffer pool의 변경사항을 disk에 background 작업으로 기록한다. Async 작업으로 이를 check point라고 부른다.

DirtyPoint(더티포인트): 메모리 버퍼에는 기록이 되었으나, 메모리에는 기록되지 않은것을 dirty point라고 부른다.

HazardPoint: Bufferpool 공간은 유한하므로 참조되지 않은 오래된 데이터 순으로 데이터가 제거될때 특정 buffer pool의 데이터를 지우지 못하도록 보호하는 역할.

CacheEviction(캐시 이빅션): 공유 캐시를 스캔하여 오래 사용하지 않은 캐시 삭제

 

 

oplog(저널로그?): 어느 로그 라인까지 데이터 disk 페이지에 저장했는지 기록하고 있다. Daemon에 문제가 생겨도 데이터는 유실되지 않록 돕는 역할.

 


 

컨센서스 알고리즘 (Raft 모델 / Poxos 모델)