1.1 --- a/docs/wiki/Resources Tue Apr 11 21:37:49 2017 +0200
1.2 +++ b/docs/wiki/Resources Tue May 16 00:41:37 2017 +0200
1.3 @@ -376,19 +376,95 @@
1.4 === Quota Controls ===
1.5
1.6 In contrast to each user's stored information which consolidates information
1.7 -related to that user's own schedule, the quota system consolidates information
1.8 -related to the schedules of one or more resources, thus enabling observations
1.9 -to be made about their collective usage.
1.10 +related to that user's own schedule in a section of the data store, the quota
1.11 +system consolidates information related to the schedules of one or more
1.12 +resources in a repository known as the journal, thus enabling observations to
1.13 +be made about their collective usage.
1.14
1.15 First, consider a resource such as a car where an organiser of an event may be
1.16 booking the car for travel purposes. A quota prevents the organiser from
1.17 booking the resource too much and denying other users access to it.
1.18
1.19 +{{{#!graphviz
1.20 +//format=svg
1.21 +//transform=notugly
1.22 +digraph quota_users {
1.23 + node [shape=box,fontsize="13.0",fontname="Helvetica",tooltip="Quota example"];
1.24 + edge [tooltip="Quota example"];
1.25 +
1.26 + subgraph {
1.27 + rank=same;
1.28 + reservation1 [label="Reservation from oliver.otter@example.com\nMonday at 10am",shape=folder,style=filled,fillcolor=cyan];
1.29 + reservation2 [label="Reservation from oliver.otter@example.com\nTuesday at 10am",shape=folder,style=filled,fillcolor=cyan];
1.30 + reservation3 [label="Reservation from oliver.otter@example.com\nWednesday at 10am",shape=folder,style=filled,fillcolor=cyan];
1.31 + }
1.32 +
1.33 + subgraph {
1.34 + rank=same;
1.35 + test1 [label="Within quota?",shape=ellipse,style=filled,fillcolor=gold];
1.36 + test2 [label="Within quota?",shape=ellipse,style=filled,fillcolor=gold];
1.37 + test3 [label="Within quota?",shape=ellipse,style=filled,fillcolor=gold];
1.38 + }
1.39 +
1.40 + subgraph {
1.41 + rank=max;
1.42 + quota [label="Quota for resource-car-pontiac@example.com",shape=folder];
1.43 + }
1.44 +
1.45 + reservation1 -> test1;
1.46 + reservation2 -> test2;
1.47 + reservation3 -> test3;
1.48 +
1.49 + quota -> test1;
1.50 + quota -> test2;
1.51 + quota -> test3;
1.52 +}
1.53 +}}}
1.54 +
1.55 Now consider a number of separate car resources. An organiser might attempt to
1.56 get around any individual resource quota by booking a number of different cars.
1.57 +Since each car is only aware of its own usage, it would be unaware of the
1.58 +undesirable cumulative usage of all cars by the organiser.
1.59 +
1.60 By grouping the resources together, the organiser will exhaust any quota set on
1.61 the group of resources as they try and make reservations for the different
1.62 -members of the quota group.
1.63 +members of the quota group. Some additional measures are introduced as follows:
1.64 +
1.65 +{{{#!graphviz
1.66 +//format=svg
1.67 +//transform=notugly
1.68 +digraph quota_users {
1.69 + node [shape=box,fontsize="13.0",fontname="Helvetica",tooltip="Quota example"];
1.70 + edge [tooltip="Quota example"];
1.71 +
1.72 + subgraph {
1.73 + rank=same;
1.74 + reservation1 [label="Reservation from oliver.otter@example.com\nMonday at 10am",shape=folder,style=filled,fillcolor=cyan];
1.75 + reservation2 [label="Reservation from oliver.otter@example.com\nTuesday at 10am",shape=folder,style=filled,fillcolor=cyan];
1.76 + reservation3 [label="Reservation from oliver.otter@example.com\nWednesday at 10am",shape=folder,style=filled,fillcolor=cyan];
1.77 + }
1.78 +
1.79 + subgraph {
1.80 + rank=same;
1.81 + car1 [label="resource-car-pontiac@example.com",shape=folder];
1.82 + car2 [label="resource-car-cadillac@example.com",shape=folder];
1.83 + car3 [label="resource-car-lexus@example.com",shape=folder];
1.84 + }
1.85 +
1.86 + test [label="Within common quota?",shape=ellipse,style=filled,fillcolor=gold];
1.87 +
1.88 + subgraph {
1.89 + rank=max;
1.90 + journal [label="Quota for cars",shape=folder];
1.91 + }
1.92 +
1.93 + reservation1 -> car1 -> test;
1.94 + reservation2 -> car2 -> test;
1.95 + reservation3 -> car3 -> test;
1.96 +
1.97 + journal -> test;
1.98 +}
1.99 +}}}
1.100
1.101 ==== Initialising Quotas ====
1.102