Resource Reservation

Resource reservation ensure that specific groups always has access to licenses, regardless of the number of jobs.

For example, if you have 10 licenses of spice but you want to make sure that the 'Production' group has always access to 2 of those licenses, you can use resource reservation.

A resource map can be reserved in whole or in part for a group, a user, or a specific job. When a resource is reserved for a group, jobs in other groups cannot use that resource. Similarly, the same happens for user reservation.

With resource reservation, you are willing to take a hit in the overall utilization of the resources in order to provide instant access to a specific group or user. The reserved resources remain idle even if there is demand for those resources by other groups or users. If you care about overall utilization, consider the other mechanisms of FairShare and preemption.

This functionality is available only to ADMIN users by means of the procedure vtk_resourcemap_reserve which accepts the following arguments:
ResourceName
The name of the resource you want to reserve.
TypeOfReservation
One of the following strings "USER" "GROUP" "JOBID" "JOBCLASS" "JOBPROJ"
NameOfUserOrGroupOrJob
Depending on the value of the previous argument, this is the name of the user or the name of a group or the ID of the job for which the resource map is to be reserved. The reservation for a specific job is used by the preemption daemon.
HowMany
The quantity of resources to be reserved. If this is greater or equal than the total available quantity, then the whole resource map is reserved.
Duration
The duration of the reservation. After the expiration of the reservation, the resources become available to all.
Explanation
A message to document why this reservation has been placed.

Examples of vtk_resourcemap_reserve

# Reserve 1 License:abc to user John for the next 3 days.
vtk_resourcemap_reserve License:abc  USER john      1 3d  "decided by the boss"

# Reserve 3 licenses for a group
vtk_resourcemap_reserve License:abc GROUP  /app/alpha  3  8h  "agreed by the board"

# Reserve 3 licenses for a jobclass
vtk_resourcemap_reserve License:abc JOBCLASS  hsim  3  8h  "as discussed in meeting"

Cancel a Resource Reservation

To cancel all resource reservations, use vtk_resourcemap_clear_reservations
# Cancel all reservations on a resource.
vtk_resourcemap_clear_reservations License:abc 
A possible way to cancel a specific reservation is to make a new reservation that expires very quickly.
# Cancel a reservation for user john.
vtk_resourcemap_reserve License:abc  USER john      1 2s  "cancel"

# Cancel a reservation for a group
vtk_resourcemap_reserve License:abc GROUP  /app/alpha  3  2s  "cancel"

# Cancel a reservation for a jobclass
vtk_resourcemap_reserve License:abc JOBCLASS  hsim  3  3s "cancel"