본문 바로가기

데이터베이스4

분산 키-값 저장소에서 고려해야할 점 아래 내용은 "가상면접 사례로 배우는 대규모 시스템 설계기초" 의 6장인 '분산 키-값 저장소 설계' 의 내용을 정리했습니다.  만약, 우리 서비스가 키-값 저장소를 사용하려 하는데 아래와 같은 요구사항이 필요하다고 한다.큰 데이터를 저장할 수 있어야 한다. 높은 가용성을 제공해야 한다. 장애시 빠르게 응답해야 한다. 높은 확장성을 제공해서, 트래픽양에 따라 자동적으로 서버 증설/삭제가 이뤄져야 한다. 데이터 일관성 수준은 조정 가능해야 한다. latency 가 짧아야 한다.  위와 같은 요구사항을 만족시켜야 할때, 우선 아래와 같은 선택지가 있다. 단일 저장소 분산 저장소하지만.. 단일 저장소는 빠른 응답을 위해 메모리에 올려두는 방식을 선택할 수 있겠지만, 많은 요청을 한번에 감당하거나 장애시 대응에.. 2025. 1. 23.
[postgreSQL] replication slots postgreSQL 에는 replication slot 이라는 개념이 있다.  replication slots 이란이 개념은 stanby 서버가 primary 의 wal 파일을 전달받지 못하는 상황을 방지하기 위한 목적으로 존재한다. 우선 postgreSQL 에서 replication 을 맺는 방법을 알아야 하는데, 기본적으로 WAL(Wrtie-Ahead Log) 를 이용한 방식으로 전달한다. 데이터 변경을 모두 WAL 을 통해서 파일이 쌓이게 되고, standby 서버는 이 WAL 파일을 전달 받아서 primary 와의 동기화를 보장하게 된다. 하지만 어떤 이유로 standby 가 잠시 WAL 을 전송받지 못하는 경우에는 문제가 발생할 수 있다.왜냐하면 WAL 파일은 primary 에서 주기적으로 정리.. 2024. 12. 27.
postgreSQL에서의 database, schema, user 권한 정리 postgreSQL 에서 관리하는 database, schema, user 등에 대한 개념을 정리한다. postgreSQL에서는 크게 database, schema, table 단위로 데이터 그룹이 분리된다. mySQL 에서는 크게 databse, table 단위로 구분이 되어서 database 안에 table 이 1:n 관계로 묶여있게 되는데, postgreSQL 에서는 schema 라고 하는 단위가 하나 더 추가된다. postgreSQL 에서도 마찬가지로 database 가 가장 큰 단위로 존재하고 그, database > schema > table 단위로 구분된다. 한 세션은 무조건 하나의 database 에 접속 할 수 있고, 서로 다른 database 의 table 끼리는 데이터 접근이 안.. 2024. 8. 25.
postgreSQL의 고가용성을 위한 방법 database 에서는 고가용성을 위해 메인으로 운영되는 db 이외에 백업 본으로 replica db 가 연결된 상태로 운영되는 경우가 많다. replication  이라고 하는데, primary-standby 구조라고 하기도 하고 active-standby, master-slave 등으로 다양하게 부른다. 1대의 read/write 가 가능한 primary 노드가 있고, 그 이외에 standby 노드 들이 해당 primary의 데이터를 계속 동기화 시키면서 복제 해두는 방식으로 운영 된다.  이렇게 replica  를 나누는 이유는, primary 노드에 장애가 발생 했을때 빠르게 standby 노드를 이용해 복구 시킬 수 있고, standby 노드는 read 용으로 사용할 수 있기 때문에 부하를 분산.. 2024. 8. 4.