Domino on Linux/Unix, Troubleshooting, Best Practices, Tips and more ...

How Quotas Work in Notes/Domino 8.x

Daniel Nashed  7 October 2010 09:20:11


I never hat do look into this before but got the question from a customer this week.
In Notes 8 we have the nice quota indicator in the Standard Client that shows the current status of the quota.
By default the quota is measured against the physical size of the database.

There are settings which are hidden in the Translog Tab of the Server document to configure how the quota is calculated.

The setting "Quota enforcement" is set to "Check file size when extending the file".

If you change this setting to "Check space used in file when adding a note" the quota indicator and calculation is based on the acutal used space in the database (without the whitespaces).

In many cases admins tried to work-around the actual used data in the NSF by compacts during the day.

If you change this parameter you can wait for the nightly operations to recover the free space via compact -B (-S 10).


I have done some tests to better understand how this works in the background.
When you change the settings in the Translog tab it will set a notes.ini parameter NSF_QUOTA_METHOD.
You should not set this parameter manually because it will be overwritten by the server.

Note: Deleted documents still count for the quota until they are removed from Trash!

Quota enforcement:

Check file size when adding a note
notes.ini NSF_QUOTA_METHOD=3

Check file size when extending the file
notes.ini NSF_QUOTA_METHOD=2

Check space used in file when adding a note
notes.ini NSF_QUOTA_METHOD=1

For my tests I took a mailfile with the physical size around 203 MB.
Around half the space was used.


When looking into the database from API level querying the quota information I get the following results based on the quota setting in the Translog tab

Used       : 112640 (450641)
Free       : 94720 (379823)
Granularity: 256
Total      : 207360 (830464)
Q.WarningThreshold: 184320
Q.SizeLimit       : 225280
Q.CurrentDbSize   : 207616
Q.MaxDbSize       : -1
Q.QuotaMethod     : 1
Q.CurrentUsage    : 112660
Q.CurrentSizeUsed : 112660

Used       : 112640 (450641)
Free       : 94720 (379823)
Granularity: 256
Total      : 207360 (830464)
Q.WarningThreshold: 184320
Q.SizeLimit       : 225280
Q.CurrentDbSize   : 207616
Q.MaxDbSize       : -1
Q.QuotaMethod     : 2
Q.CurrentUsage    : 112660
Q.CurrentSizeUsed : 207616

Used       : 112640 (450641)
Free       : 94720 (379823)
Granularity: 256
Total      : 207360 (830464)
Q.WarningThreshold: 184320
Q.SizeLimit       : 225280
Q.CurrentDbSize   : 207616
Q.MaxDbSize       : -1
Q.QuotaMethod     : 3
Q.CurrentUsage    : 112660
Q.CurrentSizeUsed : 207616

You see from the results that the only part that changes is the CurrentSizeUsed when the Translog setting is set to "Check space used in file when adding a note" (notes.ini NSF_QUOTA_METHOD=1).
So the server handles the calculation of the quota and the client is leveraging the quota-structure. The quota structure also returns the QuotaMethod.

When you enable DAOS it still works very similar. DAOS manages the logical size values for you in the background -- even the size of the physical database is a lot lower.
But even with DAOS there is a difference in the way the quota is calculated based on the settings.

But in case of DAOS the differences are not that big, because most of the data of a document is stored in the attchment and if you remove a document with a larger attachment DAOS removes the deleted object from the calculation of the quota size in any case.
There is still a difference for the summary data of a document.

So even with DAOS enabled this setting makes sense to use.

-- Same database with DAOS --

Used       : 13568 (54676)
Free       : 512 (2668)
Granularity: 256
Total      : 14080 (57344)
Q.WarningThreshold: 184320
Q.SizeLimit       : 225280
Q.CurrentDbSize   : 112833
Q.MaxDbSize       : -1
Q.QuotaMethod     : 1
Q.CurrentUsage    : 112166
Q.CurrentSizeUsed : 112166


Used       : 13568 (54676)
Free       : 512 (2668)
Granularity: 256
Total      : 14080 (57344)
Q.WarningThreshold: 184320
Q.SizeLimit       : 225280
Q.CurrentDbSize   : 112833
Q.MaxDbSize       : -1
Q.QuotaMethod     : 2
Q.CurrentUsage    : 112166
Q.CurrentSizeUsed : 112833

I hope this gives you some background about how it works and no I have no idea why this setting is hidden in the Translog Tab of the server document.

-- Daniel

Links

    Archives


    • [IBM Lotus Domino]
    • [Domino on Linux]
    • [Nash!Com]
    • [Daniel Nashed]