Category: Database



Redis #.5 Publish & Subscribe

  Publish & Subscribe 유투브 같은 사이트에서 내가 누군가의 영상을 구독했을때, 새 영상이 올라오면 유투브는 자동으로 구독자들에게 발행자의 업데이트 소식을 알려줍니다. 레디스로 이런 기능 구현이 가능합니다. 구독자에게 SUBSCRIBE 설정을 하면, 레디스는 구독자의 CLI를 블록킹하게...

Redis #.4 Database namespace & Expiry

  Namespace Redis의 네임스페이스란 Database를 말합니다. 쉽게 말해서 PostgreSQL는 하나의 클러스터 안에 여러개의 Database를 생성하여 용도를 나눠 사용할 수 있듯이 Redis는 네임스페이스를 나눠서 Database를 구분합니다. 네임스페이스는 숫자로 구분되며, 0이 설치되면 접속해서 사용할 수 있는...

Redis #.3 Sort Set

  Sort SET Sort SET은 Redis가 가진 각각의 데이터 타입들의 특성을 고루 가지고 있습니다. List 처럼 정렬되며, Set처럼 고유한 값들을 갖습니다. Hash 처럼 키 필드와 값의 쌍으로된 데이터를 갖지만, 문자열 대신 값의 순서를 나타내는...

Redis #.2 트랜잭션과 데이터 타입

  SET 과 GET SET : 키 값을 추가 할 수 있음. 항상 Key-Value로 된 두개의 매개변수를 필요로 함. GET : SET으로 입력한 값을 읽을때 사용. 간단하게 웹 주소를 단축하는 키 값을 추가해 봅니다....

Redis #.1 소개 및 설치

  Redis 란? Redis가 주목 받는 이유는 빠른 처리 속도와 검증된 소프트웨어 안정성에 있습니다. 모든 데이터를 메모리에 상주시켜 처리하고 이벤트 기반의 네트워크 비동기 입출력 처리를 해서, 한 Redis 서버는 초당 수만 건 이상의 요청을...

갈레라 클러스터 WSREP GTID

갈레라 클러스터 WSREP GTID   갈레라 클러스터는 마리아DB의 리플리케이션과는 상당히 다른, 인증기반의 리플리케이션 방식을 가지고 있습니다. 갈레라의 GTID가 각각의 노드에 대해서만 일관성을 가지지 않고 전체 노드에 유니크한 값을 가진 쓰기셋으로 갈레라 클러스터에 연동된다면 충분히...

샤드와 샤딩 (Shard and Sharding)

  샤드 (Shard: Database Architecture) 데이터베이스 샤드는 데이터베이스 혹은 검색엔진의 수평적 파티션을 말합니다. 각각의 파티션을 샤드 또는 데이터베이스 샤드라고 합니다. 각 샤드는 별도의 데이터베이스 서버 인스턴스에 분리 보관되어 로드를 분산시킵니다. 어떤 데이터는 데이터베이스의 모든...

갈레라 클러스터 (Galera Cluster): Multi Master Replication

  Galera Cluster: 다중 마스터 복제 갈레라 클러스터는 코더십이 만든 동기적 다중 마스터 방법입니다. MariaDB의 공식적인 클러스터 입니다. 갈레라 클러스터는 인증 기반 복제를 제공합니다. 데이터 완전성에 대해서는 자동으로 관리합니다.   Galera Cluster 동작 원리...

Database를 위한 디스크와 파일시스템 최적화

  Disk & File System for Database DB 서버의 디스크 영역이나 파일시스템은 DB를 설계하는데 있어 매우 중요합니다. DB의 성능은 DIsk I/O와 CPU, Memory의 성능과 밀접하게 연관이 있으며, 하드웨어의 성능도 중요하지만 OS 튜닝부분도 중요합니다.  ...

Sysbench : MariaDB, MySQL, PostgreSQL Benchmark Tool.

  Sysbench ? 시스템 성능을 측정할 수 있는 툴로, MySQL에서 내부 프로젝트로 만들다가 Lua 스크립트를 적용한 0.5 버전까지 나왔다가 오랜기간 개발이 중지 되었습니다. 2016년에 다시 개발이 시작되었고 현재 1.0 버전대 개발이 진행중입니다. 기존에는 소스코드를...

pg_trgm

  pg_trgm postgresql 추가모듈 중 pg_trgm을 이용하여 ‘%문자열%’ like 검색시 인덱스 스캔을 실행할 수 있습니다. (3글자 미만에 대한 패턴검색의 경우 인덱스 탐색비용이 급격히 증가, table full scan의 비용을 초과함.) pg_trgm 모듈은 유사한 문자열을 빠르게...

PostgreSQL과 MariaDB의 사이에서의 선택

  PostgreSQL과 MariaDB의 사이에서의 선택 클라우드가 대세가 되고, 오픈소스가 많은 영역에서 중요한 자리를 차지하게 됨에 따라서, 데이터베이스 영역 역시 오픈소스 DB가 많은 시장 점유율을 차지하고 있습니다. 여전히 성능과 안정성, 모든 부분에서 상용인 오라클이 가장...

Oracle Lock

  대표적인 오라클 Lock의 종류 래치(Latch) : SGA에 공유돼 있는 갖가지 자료구조를 보호할 목적으로 사용되는 가벼운 Lock 버퍼 Lock : 버퍼 블록에 대한 액세스를 직렬화 라이브러리 캐시 Lock : 라이브러리 캐시 오브젝트에 대한 핸들을...

MariaDB, MySQL max_connections 값 변경

  MariaDB, MySQL max_connections 값 변경   max_connections 값이 작으면 그냥 변경해도 변경이 됩니다. 그러나 1000 이상의 값을 가지게 되면 에러가 떨어지면서 적용하려면 OS 커널 파라미터의 튜닝이 필요합니다. # vi /etc/my.cnf.d/server.cnf open_files_limit = 4096 max_connections...