목록전체 글 (442)
나의 잡다한 노트 및 메모
Locale은 UI에서 사용되는 언어, 지역 설정, 출력 형식 등을 정의하는 문자열이다. Unix와 Linux 같은 POSIX 기반의 시스템에서는 같은 형식을 공유하고 있다. 애플의 맥OS를 비롯한 Darwin 계열 os들도 POSIX호환이 되기 때문에 같은 형식의 로케일 문자열을 사용한다. 환경변수를 설정해서 설정을 변경하고, 이 설정값에 따라 메시지, 시간 형식, 통화 형식 등의 출력이나 동작을 변경할 수 있다. 로케일 형식language_[territory][.codeset] 한국어의 경우는 ko_KR.UTF-8 을 주로 사용한다.en_US.UTF-8 -> 영어, 미국, UTF-8 인코딩 쉘에서는 locale 명령어를 사용해 현재 시스템에 적용돼있는 로케일 값을 확인할 수 있다.export를 통해 ..
PostgreSQL은 기본적으로 Citus 없이도 여러 노드로 배포할 수 있지만, **Citus는 특정한 방식으로 수평 확장을 지원하는 확장(extension)**입니다. PostgreSQL을 여러 노드로 구성하는 방법과 Citus의 차이점을 비교해볼게요.1. PostgreSQL에서 Citus 없이 클러스터를 구성하는 방법Citus 없이도 PostgreSQL을 여러 개의 노드로 구성할 수 있습니다. 일반적으로 사용되는 방법은 다음과 같습니다.① 리플리케이션 (Replication)스트리밍 리플리케이션 (Streaming Replication)마스터(Primary) - 리플리카(Standby) 구조로 동작.마스터 노드에서 변경 사항이 발생하면 리플리카 노드로 데이터를 복제.리플리카는 기본적으로 읽기 전용(..
Citus란?Citus는 PostgreSQL을 수평 확장(Sharding) 가능하게 만들어주는 확장(extension) 입니다. 즉, PostgreSQL을 여러 개의 노드(서버)로 구성하여 하나의 분산 데이터베이스처럼 동작하도록 하는 확장 기능입니다.Citus의 주요 특징수평 확장(Sharding) 지원데이터를 여러 개의 노드(서버)로 자동 분산하여 저장합니다.데이터가 많아지더라도 성능을 유지하면서 확장할 수 있습니다.병렬 쿼리 실행여러 노드에서 동시에 쿼리를 실행하여 성능을 높일 수 있습니다.대량의 데이터를 처리할 때 유용합니다.고성능 OLAP(분석) 및 OLTP(트랜잭션) 지원실시간 분석 및 대량 트랜잭션 처리에 적합합니다.PostgreSQL과 완벽한 호환기존 PostgreSQL에서 사용하는 대부분의..

Patroni는 PostgreSQL의 고가용성(HA)을 위해 설계된 오픈 소스 도구로, 자동 장애 조치(auto-failover)와 클러스터 관리를 간소화하는 데 중점을 둡니다. 다음은 Patroni에 대한 자세한 설명입니다.1. Patroni란?정의:Patroni는 Python으로 작성된 PostgreSQL 전용 HA 솔루션입니다. 각 PostgreSQL 인스턴스(노드)를 모니터링하고, 클러스터 내에서 자동으로 리더(Primary)를 선출하거나 장애 발생 시 standby(Replica)를 승격하는 역할을 합니다.주요 역할:자동 장애 조치 (Auto-Failover): Primary 노드에 문제가 생기면, 사전에 구성된 규칙과 우선순위에 따라 standby 노드 중 하나를 자동으로 Primary로 승격..
OLTP DB (온라인 트랜잭션 처리)목적:실시간 데이터 입력, 수정, 삭제 등 빈번한 CRUD(생성, 읽기, 업데이트, 삭제) 작업빠른 응답 속도와 높은 동시성 보장예시 쿼리:신규 주문 생성 (INSERT)주문 테이블에 신규 주문을 추가하는 쿼리로, 트랜잭션 내에서 처리되어야 전체 주문 데이터의 일관성을 유지합니다. INSERT INTO orders (order_id, customer_id, order_date, status) VALUES ('ORD12345', 'CUST001', NOW(), 'pending'); 주문 상태 업데이트 (UPDATE)주문의 상태를 변경하는 작업은 빠른 응답과 동시성 제어가 중요합니다. UPDATE orders SET status = 'completed' WHERE ord..
https://medium.com/@fengruohang/database-in-kubernetes-is-that-a-good-idea-daf5775b5c1f Database in Kubernetes: Is that a good idea?WeChat Columnmedium.com 요약Kubernetes와 데이터베이스의 성격 차이Kubernetes는 원래 무상태(stateless) 애플리케이션, 즉 컨테이너를 빠르게 배포하고 스케일 아웃하는 데 최적화되어 있습니다.반면, 데이터베이스와 같은 상태(stateful) 애플리케이션은 데이터의 영속성, 안정성, 성능 보장이 핵심이므로 운영 방식과 요구사항이 다릅니다.운영상의 도전 과제데이터 영속성 관리:컨테이너는 기본적으로 일시적인 특성을 가지므로, 데이터베이스의..
enterprise에서 쓰기 좋은 minIO의 deploy 모드이다. erasure coding 설정을 지원하여 절반의 노드가 죽을 때 read 를 가능하게 해준다.모든 minIO 서버는 must use the same listen port또한, load balancer를 사용하여 클러스터의 연결을 관리할 것을 강력히 권장하고 있다. Sequential HostnamesMinIO에서는 서버 풀을 생성할 때 연속적인 MinIO 호스트 시리즈를 나타내기 위해 확장 표기법 {x...y}를 사용해야 합니다.순차적인 호스트 이름을 사용하여야 대규모 분산 클러스터에서 관리 오버헤드가 낮아진다.You can specify the entire range of hostnames using the expansion no..