2015-02-17 20 views
0

我正在嘗試使用AWS SDK for Java的UpdateTable API將幾個全局二級索引添加到現有表中。我已經閱讀了文檔,因此我將每個CreateGlobalSecondaryIndexAction封裝到GlobalSecondaryIndexUpdate中,然後進入UpdateTableRequest。任何方式來通知dynamodb中的表或索引狀態變化?

我遇到的問題是這些表更新需要一段時間來處理。一旦其中一個啓動,表將進入UPDATING狀態,並且該表不能再次更新,直到其狀態爲ACTIVE。這些文檔說它們是異步請求,並且有一個AmazonDynamoDBAsyncClient可用於執行更新,甚至可以使用AsyncHandler爲您提供方法以便響應事件。但問題是,這些異步處理程序在UpdateTableResult準備就緒時會收到通知。但是,這並不意味着該表是ACTIVE並準備好進行其他更新。所以你必須在桌子上進行輪詢來檢查它的狀態何時回到ACTIVE狀態。

最重要的是,如果您要更新二級索引,它們也會進入UPDATING狀態。所以表可以處於ACTIVE狀態,但是如果它有一個狀態爲UPDATING的輔助索引,則無法更新該表上的任何其他索引。所以你最終不得不輪詢表中的表狀態和索引狀態,以確保它們在進行另一次更新之前都處於ACTIVE狀態。

是否有任何事件機制被通知到表和/或索引的狀態更新以避免此輪詢?

+0

據我所知,沒有推動模型獲取更新索引更新的表。支持使用[DynamoDB Streams](http://dynamodb-preview.s3-website-us-west-2.amazonaws.com/docs/streams-dg/About.html)監聽項目更新,但不支持表更新。 – mkobit 2015-02-18 17:30:13

回答

0

還沒有任何事件機制。如果您通過控制檯創建索引,則可以收到電子郵件通知,但這可能對您所尋找的內容沒有多大幫助。

感謝您的反饋,但我會確保團隊意識到對此功能的興趣。如果您還想看到其他功能,請隨時聯繫我們的forums

相關問題