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

게시2021-11-08by pwn
PWN

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

PG 빌드 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 to david@fetter.org.

응용 패치

Tom Lane 추진 :

Michaël Paquier 추진 :

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

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

  • 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 토론 :https : //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 토론 :https : //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 토론 :https : //postgr.es/m/6e0c2f3f657b29bea32d098d118f307@oss.nttdata.com https : //git.범퍼카 토토.org/pg/commitdiff/a5b336b8b9e04a93e7c8526302504d2e5201eb80

Álvaro Herrera 추진 :

Daniel Gustafsson이 추진했습니다 :

Amit Kapila 추진 :

Fujii Masao 추진 :

Peter Geoghegan 추진 :

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. 논의:https : //postgr.es/m/ca+tgmozgwr=zvwfeecncubeypdwghnvfkkdbe9blcclsiqdf9q@mail.gmail.com토론 :https : //postgr.es/m/ca +tgmozvqkk7uuzxsxsx1xjjjrmmgkugytzldch8smu1xtpr1xig@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/bef47ff85df18bf4a3a9b13bd2a54820e27f3614

  • PG_BASEBACKUP을 모듈화하기 위해 'BBStreamer'추상화를 소개합니다. pg_basebackup 서버에서 얻은 백업으로 몇 가지 작업을 수행하는 방법을 알고 있습니다. 파일을 작성하거나 먼저 압축하거나 타르를 구문 분석하는 것처럼 수정 된 postgresql.auto.conf 파일을 아카이브에 형식화하고 인젝트 서버에 의해 생성됩니다. 비정상적으로, 이것은 pg_basebackup.c를 매우 크게 만듭니다 소스 파일, 예를 들어 서버가 우리에게 다른 것보다 '타르'파일을 보내고 있다는 지식 일종의 아카이브는 중앙 ​​집중식이 아닌 모든 곳에 퍼집니다. 에서 이 상황을 개선하기위한 노력 으로이 커밋은 새로운 'bbstreamer'를 발명합니다. 추출. 서버에서받은 각 아카이브는 BBStreamer에 공급됩니다. 이를 처리하거나 다른 BBStreamer에게 전달할 수 있습니다. 청크는 또한 그들이의 일부인지에 따라 "라벨링"될 수 있습니다 아카이브 또는 아카이브 메타 데이터의 일부에있는 파일의 페이로드 데이터. 그래서, 예를 들어 TAR 파일을 사용하려면 Postgresql.auto.conf를 수정하십시오. 포함 된 파일 및 결과를 gzip으로 작성하고 쓸 수 있습니다. BBStreamer_TAR_PARSER 서버에서받은 TAR 파일을 구문 분석하려면 A bbstreamer_recovery_injector postgresql.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. 논의:https : //postgr.es/m/ca+tgmozgwr=zvwfeecncubeypdwghnvfkkdbe9blcclsiqdf9q@mail.gmail.com토론 :https : //postgr.es/m/ca+tgmozvqkk7uuzxsxsx1xjjjrmmgkugytzldch8smu1xtpr1xig@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. 논의:https : //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. 논의:https : //postgr.es/m/ca +tgmobfaaqhfwa1kafbbbbfvx+5cjm=7te=n4r4q1o2bjbgpa@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가 검토하고 테스트 한 패치 헤레라. 논의:https : //postgr.es/m/ca +tgmobfaaqhfwa1kafbbbbfvx+5cjm=7te=n4r4q1o2bjbgpa@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/4a92a1c3d1c361ffb031ed05bf65b801241d7cdd

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

Tomáš vondra 추진 :

Alexander Korotkov 추진 :

  • 필요할 때 대기에서 마지막으로 플로우드를 재설정하십시오. 현재 LastoverFlowedXID입니다 절대 재설정되지 않습니다. 그것은 알려진 새로운 거래에서 방금 조정되었습니다 오버플로. 그러나 오랫동안 오버플로 된 거래가 없다면 스냅 샷은 랩 어라운드로 인해 하위 흐름으로 잘못 표시 될 수 있습니다. 이것 Comming Comming이 필요할 때 LastoverFlowedXID를 재설정 하여이 문제를 수정합니다. 알려진 assignedxids와 함께. 모든 지원되는 버전에 대한 배낭을. 보고서 : Stan Hu 토론 :https : //postgr.es/m/cambwrq%3dfp5uasu_naty7emy7nhczg4-dtdu%3dmcvbqzaq6wa2xq%40mail.gmail.com저자 : Kyotaro Horiguchi, Alexander Korotkov 검토 : Stan Hu, Simon Riggs, Nikolay Samokhvalov, Andrey Borodin, Dmitry Dolgovhttps : //git.범퍼카 토토.org/pg/commitdiff/05e6e78c1840d07154a4b52092178a2d1ad39445

Andres Freund 추진 :