전체 글
-
MongoDB performance bug 정리논문정리 2022. 2. 9. 17:54
해당 버그는 MongoDB v3.0.0 이전에서 발생한 버그로, 현재 버전에서는 해결되어 해당 사항이 없습니다. 관련 issues https://jira.mongodb.org/browse/SERVER-34192 https://jira.mongodb.org/browse/SERVER-20328 Patch commit https://github.com/mongodb/mongo/commit/10bcc73a75ac857c290c3af6a3f89a45c4867043 성능 버그 발생 조건 MongoDB가 하나의 primary server와 하나 이상의 secondary server가 replication으로 구성되어 있을 때, Primary server에 높은 부하의 Write 동작이 발생하는 경우, Secondar..
-
MongoDB A to Z - Sharding정보정리 2022. 2. 9. 17:32
MongoDB의 sharding에 대한 기본 개념을 정리한다. 자료는 아래 출처에서 참고하였다. https://junghwanta.tistory.com/41 MongoDB Sharding(샤딩) Sharding MongoDB의 샤딩(Sharding)을 알아보기 전에 먼저, 샤딩에 대한 개념을 알아보자. 샤딩은 데이터를 여러 서버에 분산해서 저장하고 처리할 수 있는 기술을 말한다. 복제(Replication)와의 차이점이 junghwanta.tistory.com Sharding Sharding은 데이터를 여러 서버에 분산해서 저장하고 처리할 수 있는 기술이다. Replication과의 차이점으로는, Replication은 고가용성(안정성)을 위한 방법이며, Sharding은 분산 처리를 위한 방법이다. M..
-
Isolation level정보정리 2022. 2. 7. 21:04
RDBMS의 Isolation level의 종류와, 각 level의 특징에 대해 정리한다. Transaction의 Isolation level(격리 수준)은 동시에 여러 transaction이 수행될 때, 특정 transaction이 다른 transaction에서 변경하거나 조회하는 데이터를 볼 수 있도록 허용할지 여부를 결정 Transaction 격리 수준은 아래와 같다. READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE READ UNCOMMITTED Select 수행 당시 다른 transaction에서 수정한 데이터는 commit이 되지 않았더라도 읽어올 수 있음 (commit되지 않은 data를 읽는 현상을 dirty read 라고 함) i..
-
B+ Tree Index정보정리 2022. 2. 6. 21:28
B+ Tree Index B+ Tree를 사용한 Database index Dynamic tree-structured index height-balanced를 유지하도록 조정됨 효율적인 일치 및 범위 검색 지원 B+ Tree Key로 식별되는 record의 효율적인 삽입, 조회, 삭제를 통해 정렬된 데이터를 표현하기 위한 tree 자료구조 B 트리와는 대조적으로, 모든 record들이 트리 가장 하위 레벨에 정렬되어 있으며, key들만이 내부 블록에 저장된다. BST에 비해 B+ Tree 노드의 fanout(한 노드의 자식 노드의 수)이 훨씬 높기 때문에 filesystem에서 검색을 효율적으로 할 수 있어 NTFS, JFS2, XFS 등의 파일시스템이 블록 인덱싱을 위해 사용한다. → 한 노드에 여러 ..
-
MongoDB A to Z - MongoDB 기본 개념정보정리 2022. 1. 31. 12:55
해당 포스팅은 T아카데미 MongoDB 프로그래밍 강의를 보고 정리한 내용이다. https://youtu.be/81JnYGT2HVQ MongoDB는 10get 사에서 개발한 솔루션 (C++)로, schema를 고정하지 않는 형태로 동작한다. 따라서 스키마 변경으로 인해 발생하는 문제가 없으며, 데이터를 구조화하여 JSON 형태로 저장한다. Memory Map 형태의 DB이기 때문에 Memory에 의존적으로, 메모리 크기가 성능을 좌우하며, 메모리를 넘어서는 경우 성능이 급격히 저하된다. 쌓아놓고 삭제가 없는 경우가 적합함 (ex: log data, 이벤트 참여 내역, session) transaction이 필요한 금융, 결제, 회원정보 등에는 부적합하다. -> RDBMS 사용 추천 Document dat..
-
MongoDB A to Z - NoSQL 데이터 모델링 기법정보정리 2022. 1. 31. 12:45
해당 포스팅은 T아카데미 MongoDB 프로그래밍 강의를 보고 정리한 내용이다. https://youtu.be/oUjpMJNtfYE NoSQL의 데이터 모델링 개념 Denormalization (비정규화) 데이터 중복 허용 쿼리 프로세싱을 간단하게 하거나 최적화하기 위해서, 사용자의 데이터를 특정한 데이터 모델에 맞추기 위해서 같은 데이터를 여러 Document나 테이블에 복제하여 중복하는 것을 허용함 비정규화 시 query 수행을 위한 모든 데이터를 한 곳에 모아놓고 query를 수행하기 때문에, I/O 숫자를 줄여 전체 성능을 향상시킬 수 있음 연속적인 Join은 query process의 complexity를 증가시킴 다른 쿼리 수행을 위해 다른 document 또는 table에 중복 저장되기 때문..
-
MongoDB A to Z - NoSQL의 특징정보정리 2022. 1. 31. 12:21
해당 포스팅은 T아카데미 MongoDB 프로그래밍 강의를 보고 정리한 내용이다. https://youtu.be/Dvi_TsBMFJo MongoDB는 Document store NoSQL 데이터베이스이다. Document store: Key-Value store의 확장. MongoDB는 JSON 형태로 데이터를 저장하며, Value는 다른 key-value 쌍이 될 수 있음 NoSQL의 특징 NoSQL은 일반적인 서버 여러대를 연결하여 데이터를 저장 및 처리하는 구조를 가짐 분산형 구조를 통해 데이터를 여러 대의 서버에 분산해 저장하고, 분산 시 상호 복제하여 특정 서버에 장애가 발생했을 때에도 데이터 유실 및 서비스 중지가 없음 NoSQL은 RDBMS와 다르게 테이블의 스키마가 유동적임 ID로 사용되는 ..
-
튜플코딩테스트 2022. 1. 28. 11:35
https://programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr def solution(s): answer = [] s = s[2:-2].split('},{') for i in range(len(s)): s[i] = s[i].split(',') for j in range(len(s[i])): s[i][j] = int(s[i][j]) s = sorted(s, key=lambd..