rdblue commented on code in PR #12162:
URL: https://github.com/apache/iceberg/pull/12162#discussion_r1940051614


##########
format/spec.md:
##########
@@ -889,6 +892,9 @@ Table metadata consists of the following fields:
 | _optional_ | _optional_ | _optional_ | **`partition-statistics`**  | A list 
(optional) of [partition statistics](#partition-statistics).                    
                                                                                
                                                                                
                                                                                
                                                          |
 |            |            | _optional_ | **`row-lineage`**           | A 
boolean, defaulting to false, setting whether or not to track the creation and 
updates to rows in the table. See [Row Lineage](#row-lineage).                  
                                                                                
                                                                                
                                                                |
 |            |            | _optional_ | **`next-row-id`**           | A 
`long` higher than all assigned row IDs; the next snapshot's `first-row-id`. 
See [Row Lineage](#row-lineage).                                                
                                                                                
                                                                                
                                                                  |
+|            |            | _optional_ | **`key-cache`**             | A list 
of encryption keys (key-id/key-wrap pairs), used to encrypt the manifest list 
file key metadata. See [Snapshot](#key-metadata-key-id).                        
                                                                                
                                                                                
                                                            |

Review Comment:
   I talked a little about this idea with Russell and I think the trade-off is 
whether to re-encrypt all of the snapshot keys when rotating the table key. If 
we re-encrypt the snapshot keys, that could take a while when there are 
potentially thousands of snapshots in the table. On the other hand, in practice 
it would be a small set and rotating the table key would be rare.
   
   I think I like the idea of a single table key that is used to decrypt all of 
the snapshot keys. It would require a structure that allows us to change the 
content of the snapshot keys (a separate list of them that is mutable) but that 
wouldn't be too difficult.
   
   @ggershinsky, what do you think about that idea?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to