dennishuo commented on issue #766:
URL: https://github.com/apache/polaris/issues/766#issuecomment-2610652389

   The current code structure probably exaggerates the expected transaction 
semantics needlessly, and a few minor adjustments should be able to 
significantly lighten the requirements. In particular:
   
   1. Most of the independent one-shot reads happen to be structured as 
`runInReadTransaction` but aren't actually depending on transaction semantics
   2. The `writeToEntities`, `writeToEntitiesChangeTracking`, 
`writeToEntitiesActive` triplet is actually more for serving the role of 
secondary indexes than truly being separate tables. There are caveats depending 
on how we approach vestigial plans for UNDROP functionality, but it's worth 
discussing whether these make sense to push down to the `MetaStoreSession` 
layer and even refactoring the EclipseLink one to better portray these as 
serving efficient queries on a single table
   3. A few operations actually do uniquely require various flavors of 
transactions across multiple rows or tables; we should enumerate these 
separately from the majority of "core" actions. Of particular interest off the 
top of my head:
       a. CreateCatalog relationship to a "storage integration" object and 
bootstrapped CatalogRoles
       b. CreatePrincipal with "principal secrets"
       c. Iceberg-level multi-table commit that uses 
updateEntitiesPropertiesIfNotChanged
       d. DropTable atomically adding a TaskEntity for cleanup (other 
DropEntity types as well technically, but the main non-trivial case is for file 
cleanup when PURGE=true)


-- 
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]

Reply via email to