Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

ObjectStore’s maxParallel doesn’t actually increase the number of parallel uploads

オープン
#820 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
62/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
静か
技術スタック
go, postgresql
領域
backend, databases

調査の方向性

internal/cnpgi/common/wal.go の internalRun から始め、GatherReadyWALFiles をどのように呼び出しているかを調べてください。issue にある ten-WAL、maxParallel=3 のシナリオを指針にします。完了条件は、連続する archive_command の実行が異なるバッチを並列数単位のグループでアップロードし、アーカイブ済みの WAL を再アップロードせず、ファイルが残っていない場合に正常終了することです。

索引モデルが issue の本文から書いたものです。

説明

bug

Say you have 10 WAL files ready for archiving and maxParallel is set to 3.

  • PG runs archive_command for WAL file 1:
    • barman-plugin looks at ready files and run the archiver for WAL 1, 2 and 3.
    • Those 3 files are uploaded to the archive.
    • Command exits successfully and PG marks WAL 1 as done.
  • Then PG runs archive_command for WAL file 2:
    • barman-plugin looks are ready file and runs the archiver for WAL 2, 3 and 4
    • WAL file 2 and 3 are already archived.
    • WAL file 4 is uploaded to the archive.
    • Command exits successfully and PG marks WAL 2 as done.
  • And so on, PG archives WAL file 3 and barman-plugin uploads WAL file 5.

This results in always uploading one single WAL file at a time which is pretty slow and is contrary to what the doc says: “Number of WAL files to be […] archived in parallel”.

What I would expect to happen is:

  • PG runs archive_command for WAL file 1:
    • WAL file 1, 2 and 3 are uploaded
    • WAL file 1 is marked as done
  • PG runs archive_command for WAL file 2:
    • WAL file 4, 5, 6 are uploaded
    • WAL file 2 is marked as done
  • And so on until there are no more files to upload and the archive_command simply exits successfully without doing anything.

I think this happens because internalRun does not pass WALs that have already been archived to GatherReadyWALFiles: https://github.com/cloudnative-pg/plugin-barman-cloud/blob/376e178ab5ea907aae50e6eaeb19215ec4326c53/internal/cnpgi/common/wal.go#L206.

主要言語
Go
スター
198
フォーク
81
平均マージ
2日 6時間
マージ済み PR(30日)
19

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

cloudnative-pg/plugin-barman-cloud のほかの issue

cloudnative-pg/plugin-barman-cloud の issue をすべて見る

似ている issue

Go の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。