-
Annamalai Gurusami authored
Problem: The following problems have been identified: 1. If the row format is REDUNDANT or COMPACT (both of them have blob prefix) and transaction isolation level is READ UNCOMMITTED, then it is possible to return only the local prefix of the LOB. In the case of JSON documents, this will be seen as a corrupted document. 2. If the row format is REDUNDANT or COMPACT (both of them have blob prefix) and transaction isolation level is READ UNCOMMITTED, then it is possible to return the local prefix of the new LOB + external part of the old blob. In the case of JSON documents, this will be seen as a corrupted document. 3. If the row format is DYNAMIC (no blob prefix) and transaction isolation level is READ UNCOMMITTED, then it is possible to return old LOB with new value of other fields. While no JSON document will be considered corrupted, it will be inconsistent to return old value for blob column and new value for another column. Solution: The solution consists of 2 parts: 1. Either send the full document or none. Don't send only the local prefix. 2. Before releasing latches, mark the blobs as 'being modified' in the blob reference object stored in the clust_rec. rb#19446 approved by Bin Su.
Annamalai Gurusami authoredProblem: The following problems have been identified: 1. If the row format is REDUNDANT or COMPACT (both of them have blob prefix) and transaction isolation level is READ UNCOMMITTED, then it is possible to return only the local prefix of the LOB. In the case of JSON documents, this will be seen as a corrupted document. 2. If the row format is REDUNDANT or COMPACT (both of them have blob prefix) and transaction isolation level is READ UNCOMMITTED, then it is possible to return the local prefix of the new LOB + external part of the old blob. In the case of JSON documents, this will be seen as a corrupted document. 3. If the row format is DYNAMIC (no blob prefix) and transaction isolation level is READ UNCOMMITTED, then it is possible to return old LOB with new value of other fields. While no JSON document will be considered corrupted, it will be inconsistent to return old value for blob column and new value for another column. Solution: The solution consists of 2 parts: 1. Either send the full document or none. Don't send only the local prefix. 2. Before releasing latches, mark the blobs as 'being modified' in the blob reference object stored in the clust_rec. rb#19446 approved by Bin Su.
Loading