atomic lease limits
Make the checking of lease limits atomic to the lease allocation process, and thus resulting in a hard limit cap, as outlined below:
-
Add the limits to the lease candidate's user context under path ISC.limits
in theleaseX_select
callout. -
Add before-event triggers on the lease tables in MySQL and PostgreSQL that check the limits and prevent the subsequent INSERT or UPDATE statement if a limit is exceeded. If the INSERT or UPDATE is carried out, ISC.limits
is removed from the user context. -
Signal the event of reaching a limit to the lease manager which logs its details. -
Make sure the event is properly handled as a frequent application logic event in the calling contexts (e.g. allocation engine, HA service, lease_cmds), as opposed to a technical failure which can disrupt the usual service or can be costly in terms of performance.