dennishuo opened a new pull request, #1092:
URL: https://github.com/apache/polaris/pull/1092

   This fixes https://github.com/apache/polaris/issues/1076
   
   Explicitly set transaction isolation level to SERIALIZABLE and set 
eclipselink.transaction.join-existing
   Set the Isolation level in both a new EclipseLink SessionCustomizer as well 
as providing
   default postgresql.conf and injecting it in the getting-started 
docker-compose.
   
   Set eclipselink.transaction.join-existing in persistence.xml to force reads 
to go through
   the same write connection per EntityManager session, otherwise reads are not 
consistent with
   writes in a transaction.
   
   Only call rollback() if the transaction is still active, otherwise we get 
500 server errors.
   
   Fix handling of non-SUCCESS ReturnStatus in BasePolarisCatalog for 
createTableLike/updateTableLike
   
   Without this fix, even if the underlying database layer does the right thing 
in resolving
   concurrency conflicts, the API call will incorrectly return a 200 success.
   
   This isn't too common of a race condition under normal operation since 
BasePolarisCatalog
   does redundant state-checking right before the transaction (which maybe 
should be removed
   in the future for performance), but in theory this bug indeed could've 
caused dropped writes
   under high concurrency.
   
   


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