본문 바로가기

database/PostgreSQL6

{PostgreSQL} 2장.2.Shared Buffer에서 버퍼 읽기  ※ 2019년 5월 스터디 멤버들과 함께 [PostgreSQL 9.6 성능이야기] 2020. 11. 26.
{PostgreSQL} 2장.1.Shared buffer 구조 ※ 2019년 5월 스터디 멤버들과 함께 [PostgreSQL 9.6 성능이야기] 2020. 11. 26.
{PostgreSQL} 1장. 아키텍쳐 개요 ※ 2019년 5월 스터디 멤버와 함께 [PostgreSQL 9.6 성능이야기] 2020. 11. 26.
Shared Buffer 동작 원리 2020/11/26 - [database/PostgreSQL] - {PostgreSQL} 2장.1.Shared buffer 구조 [PostgreSQL 9.6 성능이야기] 편, 스리슬쩍 공부한다꼬 책 보면서 요약 내용에 틀린 부분이 있을 수 있음! - Shared Buffer 구성 - 공유 리소스 디렉토리, 해시 세그먼트, 해시 테이블은 모두 Shared Bufferr 내에 존재하는 공유 리소스이다 - LW락 (Light Weight, ORACLE 에서는 Latch 라고 표현.) 공유 리소스는 LW락을 이용해서 보호한다. 즉, Backend 프로세스가 공유 메모리를 액세스하기 위해서는 LW락을 획득해야 한다. 테이블 내의 데이터를 보호하는 락과는 다른 개념. - 버퍼 파티션 (NUM_BUFFER_PARTI.. 2019. 5. 29.
Bulk IO 처리를 위한 IO전략과 Ring Buffer [PostgreSQL 9.6 성능이야기] 편, 스리슬쩍 공부한다꼬 책 보면서 요약 내용에 틀린 부분이 있을 수 있음! 문제1. Seq Scan 으로 인해 Bulk Table 의 모든 블록이 Shared Buffer로 로딩된다면? 해결1. IO전략 해결2. Ring Buffer 사용 - IO전략이란? IO전략은 IO유형에 따라 4가지로 구분된다. 1. NORMAL (랜덤 엑세스용) -- normal 요청을 제외한 아래 3개 요청은 Ring Buffer를 이용한다. 2. BULK READ (Large Seq Scan 용) 3. BULK WRIET (대량 Write 용) 4. VACUUM - Ring Buffer (256 KB, 32 Block) 논리적으로 원형 형태의 배열을 의미. 일정 크기의 배열을 순환 .. 2019. 5. 29.
Buffer Replacement를 위한 Clock Sweep Algorithm [PostgreSQL 9.6 성능이야기] 편, 스리슬쩍 공부한다꼬 책 보면서 요약 내용에 틀린 부분이 있을 수 있음! - Victim Share Buffer 내에 empty buffer 없다면 Share Buffer 내의 버퍼를 디스크에 기록해야 한다. 이때 디스크로 기록되는 버퍼를 Victim 버퍼라고 한다. - Buffer Replacement Algorithm Victim 버퍼를 선정하는 중요한 알고리즘으로 Share Buffer 의 목적이 Disk read 를 최소화해서 성능을 향상하기 위한 것이므로, 효율적으로 버퍼를 관리하기 위해 사용된다 - Clock Sweep Algoritm PostgreSQL은 Buffer Replacement 를 위해서 Clock Sweep 알고리즘을 사용한다 Not .. 2019. 5. 29.