범퍼카 토토 주간 뉴스 -2021 년 11 월 7 일

게시2021-11-08by pwn
PWN

범퍼카 토토 주간 뉴스 -2021 년 11 월 7 일

PG Build 2021은 2021 년 11 월 30 일과 12 월 1 일에 온라인으로 개최됩니다. 09 : 00-17 : 00 Gmt.세부 사항.

범퍼카 토토 제품 뉴스

PostgresDac 3.11, 범퍼카 토토의 직접 액세스 구성 요소 제품군이 출시되었습니다. http://microolap.com/products/connectivity/postgresdac/download/

JDBC 42.3.1릴리스.

ODB C ++ ORM 버전 2.5.0-B.21릴리스.

DynamoDB FDW 1.0.0릴리스.

Babelfish, 범퍼카 토토의 MS SQL Server 호환성 레이어,릴리스.

11 월 범퍼카 토토 작업

https : //archives.범퍼카 토토.org/pgsql-jobs/2021-11/

뉴스의 범퍼카 토토

Planet 범퍼카 토토 :https : //planet.범퍼카 토토.org/

범퍼카 토토 주간 뉴스는 이번 주 David Fetter에 의해 당신에게 가져옵니다

일요일 오후 3시에 PST8pdt로 David@fetter.org.

응용 패치

Tom Lane 추진 :

Michaël Paquier 추진 :

  • Reindex를 가로 질러 OPClass 매개 변수를 동시에 보존하십시오. opclass 매개 변수 이전 지수의 데이텀은 Predicates와 같은 방식으로 가져옵니다. 표현식, 시스템 카탈로그에서 직접 잡아. 그들은입니다 그런 다음 새로운 indexinfo로 복사하여 새 사본. 이로 인해 새로운 인덱스가 기본 매개 변수로 재건되었습니다. 사용자가 사전 정의한 것보다는. 새로운 것을 되 찾는 유일한 방법 올바른 opclass 매개 변수가있는 색인은 새 인덱스를 재현하는 것입니다. 할퀴다. 이 문제는 911E702에 의해 소개되었습니다. 저자 : Michael Paquier 검토 : Zhihong Yu 토론 :범퍼카 토토 : //postgr.es/m/yx0cg/qplxcpr8hj@paquier.xyzBackpatch-Strough : 13https : //git.범퍼카 토토.org/pg/commitdiff/add5cf28d4814945946b9aff378aebf17482

  • 타임 라인 스위치를 사용하여 pg_receivewal에 대한 탭 테스트 추가. pg_receivewal은 할 수 있습니다 타임 라인 스위치를 따르지만 테스트되지 않았습니다. 이 테스트는 빈 공간을 사용합니다 슬롯에서 다시 시작하여 아카이브 위치를 구현합니다. 기존 아카이브 디렉토리를 재사용하는 것보다 더 간단합니다. 작가: Ronan Dunklau Reviewed-By : Kyotaro Horiguchi, Michael Paquier 토론 :범퍼카 토토 : //postgr.es/m/18708360.4lzovyhige@aivenronan https : //git.범퍼카 토토.org/pg/commitdiff/0f9b9b9b938a0367313fcfcf6a32fcb7fb5be9e281198

  • PG_RECEIVEWAL의 압축 옵션 재 작업 옵션. PG_RECEIVEWAL은 그 이후로 포함됩니다 CADA1AF 옵션 -코압, WAL 세그먼트의 압축을 사용하여 값이 0 (기본값) 인 gzip을 사용하여 압축을 사용할 수 없음을 의미합니다. 이 커밋 "None", 기본값 및 "gzip"값은 물건을보다 확장 할 수 있도록합니다. -코프 프레스 = 0의 경우이 옵션 레이어로 퍼지가되므로 PG_RECEIVEWAL을 "없음"및 A를 사용할 때 오류를 반환하는 선택 0이 아닌 압축 수준, 즉-코 프레스의 승인 된 값 이제 [0,9] 대신 [1,9]입니다. "gzip"으로 -코프트를 지정하지 않음 압축 방법은 pg_receivewal을 대신 Zlib의 기본값을 사용하게합니다. (z_default_compression). 스트리밍 시작을 책임지는 코드 LSN 기존 아카이브를 스캔 할 때 리팩토링되어 더 많은 확장 가능. 그것에있는 동안 "compression"을 "compression_level"으로 바꾸십시오 walmethods.c, 압축 도입과의 혼란을 줄이기 위해 방법, pg_basebackup이 사용하는 TAR 방법이 압축 방법 (적어도, 적어도)이지만 압축 수준 (이것은 실제로 면적이 더 개선 될 수 있습니다). 이것은 준비 중입니다 PG_RECEIVEWAL에 LZ4 지원을 추가하는 다가오는 패치. 저자 : Georgios Kokolatos 검토 : Michael Paquier, Jian Guo, Magnus Hagander, Dilip Kumar, Robert Haas 토론 :범퍼카 토토 : //postgr.es/m/zcm1j5vfyq2e6dyvxz8si39hq2gwxsz3ipyavgya3 luwy88slapx9eenof5uewrddhx2twg7zykjveup5mwzxcnpybtsgoudsad1o2l_i5e=@pm.me https : //git.범퍼카 토토.org/pg/commitdiff/d62bcc8b07f921bad105c7a826702c117ea7be58

  • pg_receivewal -compression-method로 일부 Thinkos를 수정하십시오. 옵션 이름은 다음과 같습니다 오류 메시지 중 하나에서 잘못되었고 짧은 옵션 'I'가 사용되었습니다. 코드이지만 우리는 이런 식으로 의도하지 않았습니다. 그것에있는 동안, 그것을 고치십시오 "방법"이 아닌 "메소드"를 참조하는 문서는 "레벨. 커밋의 감독 D62BCC8, LZ4 패치를 더 검토 한 후에 감지 한 것입니다. pg_receivewal.https : //git.범퍼카 토토.org/pg/commitdiff/958862945754305836555273a3be814db315c

  • PG_RECEIVEWAL에서 LZ4 압축에 대한 지원 추가. pg_receivewal은 새로운 것을 얻습니다 옵션,-코포 프레스트 -method = lz4, 코드가 컴파일 될 때 사용 가능합니다 -with-lz4. GZIP와 마찬가지로 이것은 압축 가능성을 제공합니다 LZ4와 함께 보관 된 WAL 세그먼트. 이 옵션은 호환되지 않습니다 --압박 붕대. 구현은 LZ4 프레임을 사용하며 Simple과 호환됩니다. lz4 명령. gzip과 마찬가지로 -synchronous를 사용하면 모든 데이터가 현재. 당면 세그먼트 내에서 디스크로 플러시되어 있으므로 가능합니다. 완료되지 않은 세그먼트에서도 가능한 한 많은 WAL 데이터를 검색합니다 (이것은 WAL 세그먼트 크기까지 0을 사용하여 부분 파일을 완료해야합니다. 감압 후 백엔드에 의해 지원되지만 이는 GZIP와 동일합니다). 스트리밍 시작의 계산 LSN은 투명하게 찾을 수 있고 LZ4- 압축 세그먼트를 점검하십시오. 압축되지 않은 크기가있는 gzip과 반대로 객체 읽기에 직접 저장되며 LZ4 청크 프로토콜은 저장하지 않습니다. 기본적으로 압축되지 않은 데이터. 함께 사용할 수있는 내용이 있습니다 LZ4 프레임은 세그먼트가 포함 된 아카이브를 사용하는 경우 도움이되지 않습니다. "lz4"명령의 기본값으로 압축되어 저장되지 않습니다. 따라서이 커밋은 공백을 통해 압축되지 않은 크기를 확인하려면 이미 구한 세그먼트 64KB 덩어리의 출력 버퍼 (실제 성능 차이는 8KB, 16KB 또는 32KB, 작동 자체는 실제로 빠릅니다). 테스트는 있습니다 생성 된 LZ4 파일의 생성 및 정확성을 확인하기 위해 추가되었습니다. 후자는 "lz4"명령을 사용하여 달성됩니다. 환경. Walmethods.c의 TAR 기반 WAL 방법은 지금 만 사용됩니다. PG_BASEBACKUP은 아직 LZ4에 대해 알지 못합니다. 코드가 확장 될 수 있습니다 이 목적. 저자 : Georgios Kokolatos 검토 : Michael Paquier, Jian Guo, Magnus Hagander, Dilip Kumar 토론 :범퍼카 토토 : //postgr.es/m/zcm1j5vfyq2e6dyvxz8si39hq2gwxsz3ipyavgya3 luwy88slapx9eenof5uewrddhx2twg7zykjveup5mwzxcnpybtsgoudsad1o2l_i5e=@pm.me https : //git.범퍼카 토토.org/pg/commitdiff/babbbbbb595d2322da095a1e6703171b3f1f2815cb

  • 주석에 대한 PSQL 탭 완료 개선. 더 많은 객체를 위해 완료가 추가됩니다 도메인 제약, 텍스트 검색 객체 또는 정책과 같은 유형. 또한이 지역은 재구성되어 향후 추가를 완화하기 위해 문서와 동일한 순서로 주석. 저자 : Ken Kato Reviewed-By : Fujii Masao, Shinya Kato, Suraj Khamkar, Michael Paquier 토론 :범퍼카 토토 : //postgr.es/m/6e0c2f3f657b29bea32d098d118f307@oss.nttdata.com https : //git.범퍼카 토토.org/pg/commitdiff/a5b336b8b9e04a93e7c8526302504d2e5201eb80

Álvaro Herrera 추진 :

Daniel Gustafsson이 추진했습니다 :

Amit Kapila 추진 :

Fujii Masao 추진 :

Peter Geoghegan 추진 :

  • 병렬 진공 동안 인덱스를 간과하지 마십시오. b4af70cb를 커밋하십시오 진공에 의해 관리되는 단순화 된 상태, 병렬 진공의 리팩토링을 수행 지나가는 동안. 리더가하는 과제의 정확한 세부 사항에 대한 혼란 프로세스는 병렬로이를 가능하게하는 코드를 제공합니다. 진공 진공 테이블 인덱스의 하위 집합을 놓치는 진공. 구체적으로, min_parallel_index_scan_size 크기 컷오프에 해당하는 인덱스는있었습니다 놓쳤다. 이 지수는 리더가 진공 청소기를 청구해야합니다 ( 평행 불안한 색인)이지만 전혀 진공 청소되지 않았습니다. 영향을받는 인덱스 일단 힙 덩어리가 재활용되면 중복 힙으로 쉽게 끝날 수 있습니다. 새로운 힙 튜플. 이것은 거의 모든 것으로 볼 수있는 일반적인 증상이있었습니다. 인덱스와 그 사이의 구조적 불일치와 관련된 색인 손상 테이블. 수정하려면 병렬 진공 리더 프로세스가 크기 컷오프보다 낮은 인덱스에 필요한 색인 진공 청소기. 또한 이하 크기 절단으로 평행 진공의 설계를 문서화하십시오. 인덱스. 이 버그의 얼마나 많은 사용자가 영향을 받는지 확실하지 않습니다. 거기 버그에 부딪 치기 위해 테이블에서 최소 3 개의 색인이어야했습니다 : 더 작은 색인, 또한 크기 컷오프를 초과하는 최소 2 개의 추가 인덱스. 하나의 추가 색인 만있는 사례는 병렬 진공 비용 모델은 병렬 처리를 적용하는 테이블. 또한 Autovacuum은 그렇지 않았습니다 병렬 처리를 사용하지 않기 때문에 영향을받습니다. 테스트를 기반으로 테스트 사례 더 큰 패치에서 Masahiko Sawada의 평행 진공을 테스트하기 위해. 많은 감사합니다 Kamigishi Rei 에게이 문제를 추적하는 데 귀중한 도움을 받으십시오. 저자 : Peter Geogheganpg@bowt.ie저자 : Masahiko Sawadasawada.mshk@gmail.com보고서 : Kamigishi Reiiijima.yun@koumakan.jp보고서 : Andrew Gierthandrew@tao11.riddles.org.uk진단 : Andres Freundandres@anarazel.de버그 : #17245 토론 :https : //postgr.es/m/17245-ddf06aaf85735f36@범퍼카 토토.org토론 :범퍼카 토토 : //postgr.es/m/20211030023740.qbnsl2xaoh2grq3d@alap3.anarazel.deBackpatch : 14-, 리팩토링 커밋이 나타나는 곳.https : //git.범퍼카 토토.org/pg/commitdiff/9bacec15b67d1a643915858f054790f36b2b7871

  • 병렬 AMVACUUMCLEANUP 안전 버그 수정. Commit B4AF70CB는 반환을 뒤집습니다 함수의 값 parallel_processing_is_safe ()이지만 누락되었습니다 amvacuumcleanup 테스트. 병렬 정리를 전혀 지원하지 않는 인덱스 AM 영향을 받았습니다. 이 버그의 실질적인 결과는 그다지 심각하지 않았습니다. 해시 인덱스는 영향을 받지만 블록 수를 반환하기 때문에 어쨌든 hashvacuumcleanup 동안 많은 영향을 미치지 않았습니다. 작가: Masahiko Sawadasawada.mshk@gmail.com토론 :범퍼카 토토 : //postgr.es/m/cad21aoa-em+aevpmbbl_s1v-ghsjqsxyl-i3jp8ntfpid1wjkw@mail.gmail.comBackpatch : 14- 커밋 B4AF70CB가 나타납니다.https : //git.범퍼카 토토.org/pg/commitdiff/c59278a1aa5ef2ee8a6d5d83bd987a7ce5c89e84

  • git-brame-ingore-Revs에 또 다른 오래된 커밋을 추가합니다. 또 다른 역사적인 Pgindent를 추가하십시오 Commit 8E638845에서 수행 한 초기 작업에서 놓친 커밋.https : //git.범퍼카 토토.org/pg/commitdiff/581055c32fbb518431265877754cbd8019bc012

  • 힙 가지 치기 코드에 다양한 주장을 추가합니다. 이 주장은 문서 (및 검증) 가지 치기가 어떻게 영향을 줄 수 있고 영향을 줄 수 없는지에 대한 높은 수준의 가정 대상 힙 페이지의 기존 항목. 예를 들어, 새로운 주장 중 하나입니다 가지 치기가 힙 전용 튜플을 LP_DEAD로 설정하지 않는지 확인합니다. 작가: Peter Geogheganpg@bowt.ie검토 : Andres Freundandres@anarazel.de토론 :범퍼카 토토 : //postgr.es/m/cah2-wz=vhvbx1gjf+ouehhh8yqchoqyrmi0f0zfmher8yc4scoa@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/5cd7eb1f1c32e1b95894f28b277b4e4b89add772

  • 인덱스에서 유효하지 않은 TID를 잡기 위해 경화를 추가하십시오. heapam에 경화를 추가하십시오 힙을 가리키는 색인 페이지에서 TID를 잡을 수있는 색인 튜플 삭제 경로 색인 튜플이 가리키지 않아야하는 항목. 우리가 노력하고있는 부패 여기서 잡기는 일반적으로 포함되기 때문에 감지하기가 특히 까다 롭습니다. 필요한 색인이없는 것과는 달리 "추가"(부패) 색인 튜플 색인에 튜플. 예를 들어, 인덱스 페이지의 힙 정리 힙 페이지의 lp_unused 항목을 가리려면 새로운 수표 중 하나에 사로 잡혔습니다. 최근에 가능성이 높습니다 고정 병렬 진공 버그 (Commit 9bacec15 참조)가 잡혔을 것입니다. Postgres 14에 대한 특별한 수표가 제자리에있었습니다. 그래도 지금은 더 강화됩니다. 저자 : Peter Geogheganpg@bowt.ie검토 : Andres Freundandres@anarazel.de토론 :범퍼카 토토 : //postgr.es/m/cah2-wzk-4_ratzawwgaiqnvkpwdxxv3y1aqhqyuehfku=tfcea@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/e7428a9a9a13f973549aab30c57ec8380dda1869

  • 쓸모없는 힙 가지 치기 의견을 업데이트하십시오. 무엇을 설명하는 새로운 의견을 추가하십시오 진공 청소기 힙 가지 치기로부터의 진공 예상 : 가지 치기는 죽은 튜플 뒤에 남겨 두지 않아야합니다. 여전히 튜플 스토리지가 있습니다. 이것은 커밋 이후 적어도 그랬습니다 8523492d. 아마도 튜플 스토리지가있는 죽은 튜플을 직접 처리합니다. 단순히 가지 치기를 다시 시도함으로써 (동시와 관련된 희귀 한 코너 케이스를 처리하기 위해 거래 중단). 통과 할 때 이전 기호 이름에 대한 일부 참조를 업데이트하십시오 스냅 샷 확장 성 작업 (특히 커밋 DC7420C2C9).https : //git.범퍼카 토토.org/pg/commitdiff/f214960adde6028a39ba3014b14b1ab2b224faeefed

  • Vacuumlazy.c에서 쓸모없는 참조 업데이트. Commit 7AB96CF6에서 감독.https : //git.범퍼카 토토.org/pg/commitdiff/02f9fd129432cab565b2a3cb9f3b3a5000dfe540

Peter Eisentraut 추진 :

Heikki Linnakangas 추진 :

Robert Haas 추진 :

  • Amcheck : 추가 토스트 포인터 점검을 추가하십시오. 구운 점검을 확장하십시오 Rawsize가 오스러스 인 경우 불만을 제기 할 속성. 압축 속성, 압축이 확장 된 것으로 보이는 경우 불평 속성 또는 압축 메소드가 유효하지 않은 경우. Mark Dilger, 검토 Justin Pryzby, Alexander Alekseev, Heikki Linnakangas, Greg Stark 및 Me. 논의:http : //postgr.es/m/8e42250d-586a-4a27-b317-8b062c3816a8@enterprisedb.com https : //git.범퍼카 토토.org/pg/commitdiff/bd807be6935929bdefe74d1258048f0aafa3

  • 기본 백업 코드를 모듈화하기 위해 'bbsink'추상화를 소개합니다. 베이스 백업 코드는 수년에 걸쳐 건전한 수많은 새로운 기능을 축적했지만 유지하기가 점점 어려워지고 해당 코드를 더욱 향상시킵니다. 실질적인 우려가 없기 때문입니다. 예를 들어, 코드입니다 이해하는 것은 우리가 고객에게 데이터를 보내는 방법에 대한 세부 사항을 LIBPQ 프로토콜은 BASEBACKUP.C 전체에 흩어져 있습니다 한 곳에서 중앙 집중식. 이 상황을 개선하려고 시도하려면 새로운 것을 소개하십시오 'bbsink'객체는 기본 백업 진행 및 백업 매니페스트. 이 커밋이 소개됩니다 BBSINK의 세 가지 유형 : A 'COPPYTBLSPC'BBSINK 백업을 클라이언트에게 전달합니다. 테이블 스페이스 당 하나의 복사 작업 및 매니페스트를 위해 다른 복사 작업을 사용하여 'Progress'bbsink는 명령 진행 보고서 및 '스로틀'bbsink를 수행합니다. 속도 제한을 수행합니다. '진행'및 '스로틀'BBSink 유형도 있습니다 데이터를 후임자 BBSINK로 전달하십시오. 현재, 마지막 bbsink 체인은 항상 'CopyTblSpc'유형입니다. 더 많은 유형을 추가 할 계획이 있습니다 향후 커밋에 'bbsink'의. 이 추상화는 진보보고, 그러나 이것은 여전히 ​​우리가 이전보다 더 깨끗해 보입니다. 나에 의한 패치, Andres Freund, Sumanta Mukherjee, Dilip의 검토 및 테스트 Kumar, Suraj Kharage, Dipesh Pandit, Tushar Ahuja, Mark Dilger 및 Jeevan Ladhe. 논의:범퍼카 토토 : //postgr.es/m/ca+tgmozgwr=zvwfeecncubeypdwghnvfkkdbe9blcclsiqdf9q@mail.gmail.com토론 :범퍼카 토토 : //postgr.es/m/ca+tgmozvqkk7uuzxsxsx1xjjjrmmgkugytzldch8smu1xtpr1xig@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/bef47ff85df18bf4a3a9b13bd2a54820e27f3614

  • PG_BASEBACKUP을 모듈화하기 위해 'BBStreamer'추상화를 소개합니다. pg_basebackup 서버에서 얻은 백업으로 몇 가지 작업을 수행하는 방법을 알고 있습니다. 파일을 작성하거나 먼저 압축하거나 타르를 구문 분석하는 것처럼 수정 된 범퍼카 토토.auto.conf 파일을 아카이브에 형식화하고 인젝트 서버에 의해 생성됩니다. 비정상적으로, 이것은 pg_basebackup.c를 매우 크게 만듭니다 소스 파일, 예를 들어 서버가 우리에게 다른 것보다 '타르'파일을 보내고 있다는 지식 일종의 아카이브는 중앙 ​​집중식이 아닌 모든 곳에 퍼집니다. 에서 이 상황을 개선하기위한 노력 으로이 커밋은 새로운 'bbstreamer'를 발명합니다. 추출. 서버에서받은 각 아카이브는 BBStreamer에 공급됩니다. 이를 처리하거나 다른 BBStreamer에게 전달할 수 있습니다. 청크는 또한 그들이의 일부인지에 따라 "라벨링"될 수 있습니다 아카이브 또는 아카이브 메타 데이터의 일부에있는 파일의 페이로드 데이터. 그래서, 예를 들어 TAR 파일을 사용하려면 범퍼카 토토.auto.conf를 수정하십시오. 포함 된 파일 및 결과를 gzip으로 작성하고 쓸 수 있습니다. BBStreamer_TAR_PARSER 서버에서받은 TAR 파일을 구문 분석하려면 A bbstreamer_recovery_injector 범퍼카 토토.auto.conf의 내용을 수정하려면 a bbstreamer_tar_archiver 수정 된 파일의 타르 헤더를 교체하려면 수정 된 것에 맞는 새로 만들어진 새 단계를 가진 이전 단계 파일 및 bbstreamer_gzip_writer를 gzip으로 작성하고 결과 데이터를 작성하십시오. 오직 이름에 "타르"가있는 개체는 타르 아카이브 형식에 대해 알고 있습니다. 그리고 이론적으로 우리는 "타르"보다는 다른 형식을 사용하여 다시 살 수 있습니다. 누군가 코드를 작성하고 싶었습니다. 이러한 기회는 상당한 양을 추가합니다 코드이지만 결과는 훨씬 더 유지 가능하고 확장 가능하다고 생각합니다. pg_basebackup.c 자체는 대략 3 분의 1, 많은 이전에 포함 된 복잡성은 새로 수용된 파일로 이동했습니다. 나에 의한 패치. 이것이 부분 인 더 큰 패치 시리즈가 검토되었습니다. Andres Freund, Sumanta Mukherjee, Dilip Kumar, 다양한 시간에 테스트했습니다. Suraj Kharage, Dipesh Pandit, Tushar Ahuja, Mark Dilger, Sergei Kornilov 및 Jeevan Ladhe. 논의:범퍼카 토토 : //postgr.es/m/ca+tgmozgwr=zvwfeecncubeypdwghnvfkkdbe9blcclsiqdf9q@mail.gmail.com토론 :범퍼카 토토 : //postgr.es/m/ca+tgmozvqkk7uuzxsxsxsx1xjjrmmgkugytzldch8smu1xtpr1xig@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/23a1c6578c87fca0e361c4f5f9a07df5ae1f9858

  • 그렇게 할 이유가 없을 때이 thistimelineid를 설정하지 마십시오. slotfuncs.c에서 pg_replication_slot_advance ()는 슬롯의 LSN을 결정해야합니다. 고급이어야하지만 이티시 라인드를 업데이트 할 필요는 없습니다. 여기에서 불리는 코드 중 어느 것도 그것에 의존하지 않기 때문입니다. 복제 인 경우 슬롯은 논리적이며 pg_logical_replication_slot_advance는 호출합니다 read_local_xlog_page는 thistimelineid를 사용하지만 처리합니다. 최신 상태인지 확인하십시오. 복제 슬롯이 물리적 인 경우 타임 라인입니다 전혀 사용되지 않습니다. logicalfuncs.c에서 PG_LOGICAL_SLOT_GET_CHANGES_GUTS ()는 동일한 문제가 있습니다. 유일한 코드입니다 타임 라인에 관심이있는 달리기는 read_local_xlog_page, 이미 올바른 값이 세트. 그러므로 여기서하지 마십시오. Michael이 검토하고 테스트 한 내 패치 Paquier, Amul Sul 및 Álvaro Herrera. 논의:범퍼카 토토 : //postgr.es/m/ca +tgmobfaaqhfwa1kafbbbvfvx+5jm=7te=n4r4q1o2bjbgpa@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/caf1f675b88d1aa67ea3fb642e8f38b470cc911e

  • xlog.c 이외 의이 TimeLineID 글로벌 변수의 모든 사용을 제거하십시오. 그런 모든 것 코드는이 글로벌 변수를 세 가지 방법 중 하나로 처리합니다. 때로는 동일합니다 기능은 이러한 방식 중 하나 이상으로 동시에 사용합니다. 첫 번째, 때로는 하나 이상의 기능에 대한 암시 적 주장입니다. xlog.c 또는 다른 곳에서 전화하기 전에 적절한 값으로 설정해야합니다. 그 기능은 잘못 행동하지 않도록합니다. 그러한 경우, 그것은 이제 an으로 전달됩니다 대신 명백한 주장. 둘째, 때로는 전류를 얻는 데 사용됩니다 복구 종료 후 타임 라인, 즉 WAL이되는 타임 라인 작성 및 플러시. 이러한 코드는 이제 getwalinsertiontimeline ()을 호출하거나 의존합니다 getflushrecptr ()에 추가 된 새로운 아웃 매개 변수에서. 셋째, 때때로 그것은입니다 회복 중에 현재 재생 타임 라인을 저장하는 데 사용됩니다. 그것은 변할 수 있습니다 이러한 코드는 일반적으로 각 사용 전에 값을 업데이트해야합니다. 여전히 할 수 있습니다 그러나 대신 로컬 변수를 사용해야합니다. 이것들의 순 효과 변경 사항은 직접적으로 코드의 양을 공정한 금액으로 줄이는 것입니다. 이 글로벌 변수에 액세스합니다. 역사가 우리를 보여 주었기 때문에 좋습니다 어떤 타임 라인 ID에 포함되어야하는지 항상 명확하게 생각하지 마십시오. 주어진 시점 또는 실제로, 그것이 있었는지 또는 필요한지 여부에 관계없이 코드의 특정 지점에서 초기화되었습니다. 나에 의한 패치, 검토 및 테스트 Michael Paquier, Amul Sul 및 Álvaro Herrera. 논의:범퍼카 토토 : //postgr.es/m/ca +tgmobfaaqhfwa1kafbbbbfvx+5cjm=7te=n4r4q1o2bjbgybpa@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/e997a0c642860a96df0151cbeccbdf0450d08

  • 이 티티 라인드를 글로벌 변수에서 로컬 변수로 변경하십시오. startupxlog ()는 여전히이 thistimelineID를 로컬 변수로하지만 나머지는 xlog.c의 코드는 이제 다른 수단으로 관련 타임 라인이 필요합니다. 이것은 대부분 기능 매개 변수로 전달한다는 것을 의미합니다. 우리가 이전에하지 않은 기능. 그러나 몇 가지 경우에는 특별한 경우가 필요합니다 취급 : - 외부 발신자가 호출 할 수있는 기능에서 지정할 타임 라인을 반드시 알 필요는 없으며 타임 라인 ID를 얻습니다. 공유 메모리에서. xlogctl-이 티티 라인 드는 대부분의 경우에 사용할 수 있습니다 회복은 해당 기능을 호출 할 때까지 완료된 것으로 알려져 있습니다. xlog_redo ()에서는 xlogctl- Replayendtli를 사용할 수 있습니다. -xlogfileclose () 요구 사항 열린 로그 파일의 TLI를 알고 있습니다. 새로운 글로벌 변수로 그렇게하십시오 OpenLogtli. 누군가는 이것이 단지 하나의 글로벌 거래라고 주장 할 수 있지만 다른 사람의 경우, 새로운 것은 훨씬 더 좁은 목적을 가지고 있으며 몇 곳에서 언급되었습니다. -Read_backup_label ()은 이제 tli를 반환합니다 Backup_Label 파일을 구문 분석하여 얻습니다. 이전에는 readRecord () 이 thistimelineid가 초기화되었습니다. 이제 타임 라인이 전달되었는데 원하지 않았습니다. 초기화되지 않은 변수를 전달합니다. 이 변화를 통해 우리는 그것을 피할 수 있습니다. 오래된 코딩은 우리가 필요로하는 실질적인 결과가없는 것 같습니다. 걱정하지만 이것은 깨끗합니다. -BootstrapxLog ()에서는 일정합니다. Michael Paquier, Amul Sul 및 Álvaro가 검토하고 테스트 한 패치 헤레라. 논의:범퍼카 토토 : //postgr.es/m/ca +tgmobfaaqhfwa1kafbbbbfvx+5cjm=7te=n4r4q1o2bjbgpa@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/4a92a1c3d1c361ffb031ed05bf65b801241d7cdd

  • BD807BE6935929BDEFE74D1258CA08048F0AAFA3에 의해 추가 된 테스트를 제거합니다. buildfarm 불행합니다. 왜이 테스트가 마음에 들지 않는지 분명하지 않지만 제거합시다 우리가 그것을 알아낼 때까지. 논의:http : //postgr.es/m/462618.1636171009@sss.pgh.pa.us https : //git.범퍼카 토토.org/pg/commitdiff/ccf289745d3e50360653181dce6a277a1fc79730

Tomáš Vondra 추진 :

Alexander Korotkov 추진 :

Andres Freund 추진 :