On Thu, 15 Sep 2022 at 18:04, Simon Riggs <simon.ri...@enterprisedb.com> wrote:
> On Wed, 14 Sept 2022 at 15:21, Alvaro Herrera <alvhe...@alvh.no-ip.org> wrote:
>>
>> On 2022-Aug-30, Simon Riggs wrote:
>>
>> > 001_new_isolation_tests_for_subxids.v3.patch
>> > Adds new test cases to master without adding any new code, specifically
>> > addressing the two areas of code that are not tested by existing tests.
>> > This gives us a baseline from which we can do test driven development.
>> > I'm hoping this can be reviewed and committed fairly smoothly.
>>
>> I gave this a quick run to confirm the claimed increase of coverage.  It
>> checks out, so pushed.
>
> Thank you.
>
> So now we just have the main part of the patch, reattached here for
> the auto patch tester's benefit.

Hi Simon,

Thanks for the updated patch, here are some comments.

There is a typo, 
s/SubTransGetTopMostTransaction/SubTransGetTopmostTransaction/g.

+                *    call SubTransGetTopMostTransaction() if that xact 
overflowed;


Is there a punctuation mark missing on the following first line?

+                * 2. When IsolationIsSerializable() we sometimes need to 
access topxid
+                *    This occurs only when SERIALIZABLE is requested by app 
user.


When we use function name in comments, some places we use parentheses,
but others do not use it. Why? I think, we should keep them consistent,
at least in the same commit.

+                * 3. When TransactionIdSetTreeStatus will use a status of 
SUB_COMMITTED,
+                *    which then requires us to consult subtrans to find 
parent, which
+                *    is needed to avoid race condition. In this case we ask 
Clog/Xact
+                *    module if TransactionIdsAreOnSameXactPage(). Since we 
start a new
+                *    clog page every 32000 xids, this is usually <<1% of 
subxids.

Maybe we declaration a topxid to avoid calling GetTopTransactionId()
twice when we should set subtrans parent?

+               TransactionId subxid = 
XidFromFullTransactionId(s->fullTransactionId);
+               TransactionId topxid = GetTopTransactionId();
  ...
+               if (MyProc->subxidStatus.overflowed ||
+                       IsolationIsSerializable() ||
+                       !TransactionIdsAreOnSameXactPage(topxid, subxid))
+               {
  ...
+                       SubTransSetParent(subxid, topxid);
+               }

-- 
Regrads,
Japin Li.
ChengDu WenWu Information Technology Co.,Ltd.


Reply via email to