String 숫자넣으면 incre decre 기능 사용 가능 활용사례 : 좋아요 수 증감처리 mset mget으로 한번에 여러 키/벨류 삽입 조회 가능 List 링크드리스트 자료구조 인덱스 조회 불가, 데이터 넣고빼기 용이 파이썬 deque와 비슷한 느낌? Set 활용사례 : 이벤트 쿠폰 발급하고 중복사용 막기. 사용한 유저id를 셋에 삽입 Hash 벨류가 오브젝트 처럼 여러 필드를 갖고있음 기존 스트링에 json으로 보관하는 것 과의 차이점 : 특정 필드에 따로 접근 가능 각 필드에 접근하여 incre decre도 가능 : 특정 숫자 증가 가능 (string inc와의 차이점) SortedSet Set의 필드에 score값이 포함되어있음 활용사례 : 게임 랭킹 시스템 Bitmap 비트벡터로 아루어짐 활..
BSON(Binary JSON) JSON과 유사한 문서를 바이너리 형태로 인코딩한 데이터 포맷 날짜 타입, BinData 타입 등 JSON보다 많은 타입을 지원 Protocol Buffer, Thrift와 같은 바이너리 교환 형식(Binary Interchange Format) BSON은 Protocol Buffer 대비 schema-less 하여 유연하다는 장점이 있지만, 직렬화된 데이터의 필드명에 대한 오버헤드가 있어 공간 효율성 면에서 약간의 단점이 있다 특징 가볍다 쉬운 데이터 순회 (Traversable) 타입과 길이 정보를 인코딩하여 순회를 빠르게 할 수 있다 효율적이다 문서 맨 앞에 길이 정보를 포함하고 있어 빠르게 스캔 및 쿼리 가능 C언어의 데이터 타입을 사용하기 때문에 대부분의 프로그래..
Schema Design Pattern 데이터 모델링 시 자주 나타나는 과제들을 해결하기 위한 방법들을 비슷한 특징끼리 묶어 정리한 것 디자인 패턴의 데이터 모델링 버전이라고 볼 수 있다 소프트웨어 개발 방법에서 사용되는 디자인 패턴은 프로그램 개발에서 자주 나타나는 과제를 해결하기 위한 방법 중 하나로, 과거의 소프트웨어 개발 과정에서 발견된 설계의 노하우를 축적하여 이름을 붙여, 이후에 재이용하기 좋은 형태로 특정의 규약을 묶어서 정리한 것이다. 알고리즘과 같이 프로그램 코드로 바로 변환될 수 있는 형태는 아니지만, 특정한 상황에서 구조적인 문제를 해결하는 방식을 설명해 준다. - 위키피디아 사실 MongoDB만을 위한 패턴은 아니다. 다만 유연한 스키마를 가진 MongoDB에서 사용하기에 효과적이다..
Ranged Sharding 샤드키의 값을 기준으로 청크에 분산 연속된 숫자들이 같은 샤드와 같은 청크에 존재함 데이터의 값으로 정확히 어떤 샤드에 존재하는지 알기 때문에 데이터가 존재하는 샤드에만 쿼리를 요청하는 Target Query가 가능 단점 : 데이터가 균형있게 분산되지 않을 가능성이 높다 usage 타겟쿼리가 필수일 경우 hash shrading을 이용하지 못하는 경우 Hash Sharding 샤드키의 값의 해시값을 기준으로 분산 균등 분산 카디널리티가 낮으면 부하편중을 완전히 막을 순 없음 샤디드 클러스터의 목적이 분산이므로 균등분산이 잘되는 해시샤딩을 대부분 사용 주의할 점 데이터가 연속되어있지 않고 분산되어있으므로 모든 샤드에 다 요청해서 데이터를 가져온 후 필터링 해야 할 수도 있음 →..
Sharded Cluster MongoDB의 분산 솔루션 Replica Set에 더 이상 감당 안될 정도로 데이터가 유입되면 Sharded Cluster 사용 고려 모든 샤드는 Replica Set으로 구성되어 있다 분산을 위한 솔루션이지만 Replica Set 구성이기 때문에 HA도 지원 Replica Set의 목적 : HA 샤딩의 목적 : 스케일아웃 대량으로 늘어나는 데이터를 저장하고 쓰기에 대한 부하가 클 때 적합 Replica Set은 secondary를 늘리면서 읽기 부하를 분산할 수 있지만 primary는 하나이기 때문에 쓰기 분산이 커지면 sharded cluster를 사용하는 것이 좋다 용어 Sharding : 하나의 큰 데이터를 여러 장비에 걸쳐서 분할하는 과정 Shard : 분할된 데이..
Replica Set은 HA(High Availability)를 보장해 주기 때문에 내부적으로 아키텍처가 복잡해지는 트레이드오프가 있음 이로 인해 우리가 꼭 알아야 하는 것들이 생긴다 개발자 입장에서 Replication에 대한 이해가 있어야 Replica Set을 이용한 몽고디비를 잘 활용할 수 있다 Replica Set 3대의 MongoDB 멤버 이루어진 구조 1Primary, 2 Secondary HA(High Availability)에 대한 해결방안 멈춤 없이 지속적 운영이 필요한 서비스에서 필요한 최소 배포 단위 각 멤버는 같은 서버에 존재할 수도, 다른 서버에 존재할 수도 있다 replica set의 목적이 HA이기 때문에 각각 다른 서버에 설치되어 있어야 목적에 맞는 효과를 볼 수 있다 각 ..
- Total
- Today
- Yesterday
- MySQL
- 분산처리
- laravel 테스트코드
- 주니어개발자
- NoSQL
- 샤드
- kubernetes
- 몽고디비
- 리눅스 컨테이너
- 도커
- java
- 대규모 데이터 처리
- laravel
- 샤딩
- k8s
- devops
- pods
- mockery
- laravel 테스트
- php
- 쿠버네티스
- database
- phpUnit
- 백엔드
- index
- redis
- 라라벨
- springboot
- docker
- mongoDB
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |