On 01/10/2016 04:15 AM, Simon Riggs wrote:
>> One concern that come into my mind while reading updated
>> patch is about creating extra bool field in GlobalTransactionData
>> structure. While this improves readability, it
>> also increases size of that structure and that size have impact on
>> performance on systems with many cores
>> (say like 60-80). Probably one byte will not make measurable difference,
>> but I think it is good idea to keep
>> GXact as small as possible. As far as I understand the same logic was
>> behind split of
>> PGPROC to PGPROC+PGXACT in 9.2 (comment in proc.h:166)
>
>
> I think padding will negate the effects of the additional bool.
>
> If we want to reduce the size of the array GIDSIZE is currently 200, but XA
> says maximum 128 bytes.
>
> Anybody know why that is set to 200?
>
Even though GlobalTransactionId and BranchQualifer have a maximum of 64
each, external clients may choose to encode the information, and thereby
need more space,
https://github.com/pgjdbc/pgjdbc/blob/master/pgjdbc/src/main/java/org/postgresql/xa/RecoveredXid.java#L66-L70
http://docs.oracle.com/javaee/7/api/javax/transaction/xa/Xid.html
which in this case adds up to a maximum of 189 characters.
Best regards, Jesper