@@ -1119,7 +1119,7 @@ InitPredicateLocks(void)
11191119
11201120SHMQueueInit (& RWConflictPool -> availableList );
11211121requestSize = mul_size ((Size )max_table_size ,
1122- PredXactListElementDataSize );
1122+ RWConflictDataSize );
11231123RWConflictPool -> element = ShmemAlloc (requestSize );
11241124if (RWConflictPool -> element == NULL )
11251125ereport (ERROR ,
@@ -1190,11 +1190,17 @@ PredicateLockShmemSize(void)
11901190size = add_size (size ,hash_estimate_size (max_table_size ,
11911191sizeof (SERIALIZABLEXID )));
11921192
1193+ /* rw-conflict pool */
1194+ max_table_size *=5 ;
1195+ size = add_size (size ,RWConflictPoolHeaderDataSize );
1196+ size = add_size (size ,mul_size ((Size )max_table_size ,
1197+ RWConflictDataSize ));
1198+
11931199/* Head for list of finished serializable transactions. */
11941200size = add_size (size ,sizeof (SHM_QUEUE ));
11951201
11961202/* Shared memory structures for SLRU tracking of old committed xids. */
1197- size = add_size (size ,sizeof (OldSerXidControl ));
1203+ size = add_size (size ,sizeof (OldSerXidControlData ));
11981204size = add_size (size ,SimpleLruShmemSize (NUM_OLDSERXID_BUFFERS ,0 ));
11991205
12001206return size ;