一致性

本頁面說明哪些 Cloud Storage 的作業具有同步一致性,以及哪些作業具有最終一致性。在可快取且可公開讀取的物件中,您可以控制物件作業的一致性程度。

同步一致性作業

Cloud Storage 可在下列作業中提供全域同步一致性,包含資料與中繼資料在內:

  • 寫入後的讀取作業
  • 中繼資料更新後的讀取作業
  • 刪除後的讀取作業
  • 列出值區清單
  • 列出物件清單
  • 授予資源存取權

上傳物件到 Cloud Storage 並收到成功回應後,只要在 Google 有提供服務的位置上,該物件就能立即用於下載作業和中繼資料作業。無論是建立新物件或是覆寫現有物件皆是如此。由於上傳作業具有同步一致性,因此在寫入後的讀取或是中繼資料更新後的讀取作業上,您永遠不會收到 404 Not Found 回應或是過時的資料。

此外,成功上傳要求就代表您的資料已在多個資料中心中完成複製。相較於 Cloud Storage 未經複製或非承諾的儲存庫,針對具有全域一致性的複製儲存庫進行寫入作業的延遲時間會稍長。這是因為成功回應只會在數個寫入作業完成後傳回,而不是在完成一個作業後便立即傳回。

全域同步一致性也能延伸適用於物件的刪除作業。如果刪除要求成功,立即嘗試下載物件或其中繼資料將會出現 404 Not Found 狀態碼。您會收到 404 錯誤是因為刪除作業成功後該物件就不再存在。

值區清單具有同步一致性。舉例來說,如果您建立一個值區,然後立即執行 list buckets 作業,新的值區會出現在傳回的值區清單中。

物件清單同樣也具有同步一致性。舉例來說,如果您上傳物件到值區中,然後立即執行 list objects 作業,新的物件會出現在傳回的物件清單中。

就值區而言,雖然中繼資料更新對於中繼資料更新後的讀取作業具有同步一致性,但產生的設定變更可能需要一些時間才能生效。舉例來說,如果您在值區上啟用物件版本管理,您應該至少等待 30 秒後再執行刪除或覆寫物件。

最終一致性作業

下列作業具有最終一致性:

  • 撤銷資源的存取權

一般來說,撤銷存取權的操作一分鐘後才會生效。在部分情況下所需時間會更長。

本文透過下列範例來說明最終一致性引起的行為:如果您將使用者的值區存取權移除,這項變更會立即反映在值區的中繼資料中,但是該使用者短時間內可能還是會擁有該值區的存取權。

快取控制與一致性

可公開讀取的快取物件可能不具有同步一致性。如果您允許物件受到快取,而且在更新或刪除時該物件處在快取中,則必須等到快取的生命週期結束後,系統才會更新或刪除經過快取的物件。

物件的快取生命週期是由與物件相關的 Cache-Control 中繼資料所定義。您可以使用 Cache-Control 要求標頭來設定 Cache-Control 中繼資料,這個要求標頭可包含在物件的初始上傳作業中,或是後續物件中繼資料的更新作業中。由於您可以控管 Cache-Control 中繼資料,因此您也可以控制快取物件的一致性程度。除此之外,雖然向物件發出的要求可以包含自己的 Cache-Control 標頭,但如果這些標頭設為避開快取的內容,則 Cloud Storage 會忽略這些標頭。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Storage
需要協助嗎?請前往我們的支援網頁