Open kennytm opened 7 months ago
DeleteFiles()
function introduced from #47084.DeleteObjects
(POST /?delete
) API for batch deletion in a single call. (Meanwhile other storage implementations just loop and delete each file one-by-one, including GCS).DeleteObjects
API is not supported in the GCS XML API. This caused the "NotImplemented" error shown in the issue description.The GCS JSON API (gcs://
) uses an entirely different approach for batch delete (https://cloud.google.com/storage/docs/batch), so I believe there is no plan for Google to support DeleteObjects
in the XML API.
For this issue we either
s3://
for GCS is bad, users should just use gcs://
, and close this issue, ors3://
for GCS, make DeleteFiles()
detect the HTTP 400, and fallback to use a loop@kennytm can you please open the issue to tiflow repo instead? cc @flowbehappy
/remove-component br
@BornChanger I have explained why the issue is filed here in the first line in https://github.com/pingcap/tidb/issues/50918#issuecomment-1922586687. I'm keeping the labels unless there is a dedicated label for the external-storage component.
Bug Report
Please answer these questions before submitting your issue. Thanks!
1. Minimal reproduce step (Required)
consistent.level = 'eventual'
), and set the storage tos3://bucket/?endpoint=http://storage.googleapis.com
(thus accessing GCS through their S3-compatible XML API).2. What did you expect to see? (Required)
No error.
3. What did you see instead (Required)
Changefeed stopped because of incompatible API:
4. What is your TiDB version? (Required)
v7.6.0