Για την περιγραφή του φόρτου εξυπηρέτησης (workload), η γλώσσα
προδιαγραφής παρέχει συντακτικές δομές για τον ορισμό κλάσεων μονάδων
φόρτου εξυπηρέτησης (classes of units of work) και κλάσεων χρηστών.
Η γλώσσα προδιαγραφής επιτρέπει τον ορισμό δύο τύπων κλάσεων
μονάδων φόρτου. Οι απλές μονάδες φόρτου είναι δοσοληψίες που διαβάζουν
και ενημερώνουν δεδομένα. Για την περιγραφή μιας απλής κλάσης μονάδων
φόρτου καθορίζεται το (αναμενόμενο) πλήθος εντολών που εκτελεί το
αντίστοιχο πρόγραμμα εφαρμογής, και η κατανομή των προσπελάσεων από
δοσοληψίες αυτής της κλάσης στα αρχεία που υλοποιούν στο φυσικό επίπεδο
τη βάση δεδομένων. Καθορίζεται το ελάχιστο και το μέγιστο πλήθος
προσπελάσεων, καθώς και η πιθανότητα προσπέλασης για κάθε αρχείο
δεδομένων που οι δοσοληψίες αυτής της κλάσης χρειάζονται. Για κάθε
προσπελαζόμενο αρχείο δεδομένων καθορίζεται επίσης η πιθανότητα η
προσπέλαση να είναι εγγραφή. Καθορίζεται τέλος το “κεφάλαιο” που διατίθεται
σε κάθε δοσοληψία αυτής της κλάσης. Η δήλωση του κεφαλαίου αποτελεί καινούργιο
συντακτικό στοιχείο της γλώσσας προδιαγραφής. Ακολουθεί παράδειγμα δήλωσης της
απλής κλάσης classA1.
DEFINE TRANSACTION_CLASS classA1 AS {
applicationBurst : 80000.0;
blocksAccessed_min : 4;
blocksAccessed_max : 12;
budget : 500000;
accessProbability OF INSTANCE rA : 0.2;
writeProbability OF INSTANCE rA : 0.8;
accessProbability OF INSTANCE rB : 0.2;
writeProbability OF INSTANCE rA : 0.8;
}
Μια σύνθετη μονάδα φόρτου (workflow) ορίζεται ως σύνθεση απλών μονάδων
φόρτoυ δοσοληψιών. Η γλώσσα προδιαγραφής υποστηρίζει τον ορισμό
αλυσίδων από δοσοληψίες. Ακολουθεί παράδειγμα δήλωσης σύνθετης
μονάδας φόρτου. Η κλάση δοσοληψιών classB θεωρείται μια αλυσίδα από 3
δοσοληψίες που ανήκουν στις κλάσεις classA1, classA2, classA3.
DEFINE WORKFLOW_CLASS WC1 AS {
programm : classB_Program;
chain : classA1, classA2, classA3
}
Το ακόλουθο παράδειγμα περιγράφει τον ορισμό μιας κλάσης χρηστών
που υποβάλλουν στο σύστημα δοσοληψίες των κλάσεων classA1, classB με
την ίδια πιθανότητα. Καθορίζεται επίσης ο ρυθμός άφιξης δοσοληψιών ο οποίος
μπορεί να είναι σταθερός ή να μεταβάλλεται στη διάρκεια του χρόνου
προσομοίωσης. Στο παράδειγμα ο ρυθμός άφιξης δοσοληψιών είναι σταθερός στο
χρόνο.
DEFINE CLIENT_CLASS clientClass AS {
interarrivalRate : 5.0;
SUBMIT classA1 WITH PROBABILITY : 0.5;
SUBMIT classB WITH PROBABILITY : 0.5;
}
Για κάθε κλάση χρηστών καθορίζεται ο αριθμός των ενεργών χρηστών σε κάθε
κόμβο του συστήματος.
DEFINE SYNTHETIC WORKLOAD wrkLoad AS {
numClients OF CLASS clientClass : 50 AT {Node1, Node2}
}
Σε όλα τα πειράματα προσομοίωσης που διεξήχθησαν στα πλαίσια αυτής της εργασίας χρησιμοποιήθηκε το ανοιχτό μοντέλο φόρτου στο οποίο θεωρείται ότι υπάρχει, σε κάθε κόμβο του συστήματος και για κάθε κλάση χρηστών που είναι ενεργή στον κόμβο, μια “πηγή-φόρτου” που στέλνει αιτήσεις εξυπηρέτησης, με ρυθμό που καθορίζεται ως παράμετρος στον ορισμό της κλάσης χρηστών. Η πηγή φόρτου δεν περιμένει να λάβει ειδοποίηση για την περάτωση μιας δοσοληψίας για να αποστείλει την επόμενη.