Skip to contentSkip to conversation

xfsprogs/mkfs: what's the relationship between max trans res and min log size

DISCUSSION Wang Sheng-Hui 2 participants 3 messages May 18, 2015

lore
Share & tools
lore
#0 lore raw

Hi guys,

In maxtrres.c/max_trans_res, it calls xfs_log_calc_minimum_size to compute the
maximum transaction reservation

But for xfs_log_calc_minimum_size, it's used to calculate the
minimum valid log size

The naming max/minimum seems confusing.

Why are they named in such way? What's the relationship between max trans res and minimun log size, (max trans res) <= (minimun log size)?

Any explanations are welcomed!

Thanks,
Sheng-Hui

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs

#1 lore raw
Quoted 12 lines · Wang Sheng-Hui

Hi guys,

In maxtrres.c/max_trans_res, it calls xfs_log_calc_minimum_size to compute the
maximum transaction reservation

But for xfs_log_calc_minimum_size, it's used to calculate the
minimum valid log size

The naming max/minimum seems confusing.

Quoted 8 lines

Why are they named in such way? What's the relationship between max trans res and minimun log size, (max trans res) <= (minimun log size)?

Any explanations are welcomed!

From the comment in xfs_log_calc_minimum_size():

/*
* Two factors should be taken into account for calculating the minimum
* log space.
* 1) The fundamental limitation is that no single transaction can be
* larger than half size of the log.
*
* From mkfs.xfs, this is considered by the XFS_MIN_LOG_FACTOR
* define, which is set to 3. That means we can definitely fit
* maximally sized 2 transactions in the log. We'll use this same
* value here.
...
*/

So the log must be at least the size of two single transactions (it looks like the code is conservative and uses a factor of 3). This is a limitation on the minimum allowable log size for the fs. Transactions are of variable size, so to determine what that means in terms of actual size we must calculate the maximum possible (i.e., worst case) transaction size for the particular fs geometry and then use that to calculate the minimum total log size.

Brian

Quoted 9 lines

Thanks,
Sheng-Hui

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs

#2 lore raw
Quoted 35 lines · Brian Foster
Quoted 12 lines · Wang Sheng-Hui

Hi guys,

In maxtrres.c/max_trans_res, it calls xfs_log_calc_minimum_size to compute the
maximum transaction reservation

But for xfs_log_calc_minimum_size, it's used to calculate the
minimum valid log size

The naming max/minimum seems confusing.

Quoted 8 lines

Why are they named in such way? What's the relationship between max trans res and minimun log size, (max trans res) <= (minimun log size)?

Any explanations are welcomed!

From the comment in xfs_log_calc_minimum_size():

/*
* Two factors should be taken into account for calculating the minimum
* log space.
* 1) The fundamental limitation is that no single transaction can be
* larger than half size of the log.
*
* From mkfs.xfs, this is considered by the XFS_MIN_LOG_FACTOR
* define, which is set to 3. That means we can definitely fit
* maximally sized 2 transactions in the log. We'll use this same
* value here.
...
*/

Quoted 7 lines

So the log must be at least the size of two single transactions (it looks like the code is conservative and uses a factor of 3). This is a limitation on the minimum allowable log size for the fs. Transactions are of variable size, so to determine what that means in terms of actual size we must calculate the maximum possible (i.e., worst case) transaction size for the particular fs geometry and then use that to calculate the minimum total log size.

Thanks, Brian.

Regards,
Sheng-Hui

Quoted 14 lines

Brian

Quoted 9 lines

Thanks,
Sheng-Hui

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs