## 4 System Model
### Dataset  
We have made use of the Google cluster trace dataset that was made public in May 2019 by Google. Google clusters consist of many computers linked by a specialized, high-bandwidth network and housed in racks. The term \"cell\" refers to a group of computers that are all part of the same cluster and use the same cluster management system to divide up the workload. This is a trace of the workloads which was operating on eight different compute clusters belonging to Google Borg. The trace provides an account of each task submission, scheduling decision, and details regarding resource use for each job that was executed in those clusters. A job in Borg is a collection of tasks that define the computations a user wishes to do. In contrast, an alloc set is a collection of allocs or alloc instances that indicate a resource reservation in which jobs may be executed. Linux applications are represented by tasks, each of which may consist of many processes. All of a job's tasks will execute in (get resources from) an alloc instance belonging to the alloc set the job has specified. Without an alloc set, a job's tasks will use the machine's resources without allocating them. Thingsmay be either a collection (such as a group of jobs or allocs) or an instance (such as a single task or alloc). A single-use trace may represent the amount of work done on a single Borg cell over the course of many days. A trace is constructed up of a number of tables, each of which is indexed by a primary key, which will normally consist of a timestamp. The information that is included in the tables was obtained from the management system of the cell as well as the various machines that were located inside the cell. **Data Tables**  
In this section, some of the important tables that are included inside the traces will be discussed. * **Machines** The MachineEvents table and the MachineAttributes table are used to describe machines. These tables may be found in the machine description. The machine event table may include one or more entries for each machine to provide a description of that machine. The vast majority of data discusses computers that were already operational when the trace was initiated. The kernel version, clock speed, existence of an external IP address, and other machine features are examples of machine attributes. Machine attributes are key-value pairs that reflect the qualities of the machine. It is possible for instances to place limitations on machine characteristics. * **Machine Event Table** The table labeled \"Machine Event\" provides an explanation of each of the machines. It includes details such as the timestamp when the machine was launched, the identification number of the machine, and the different types of events, which include ADD, REMOVE, and UPDATE, Platform ID, the capacity of the CPU, and the amount of memory. * **Machine Attribute Table** Machine attribute values are supplied as integers or encrypted (hashed) texts depending on the number of possible values for a given attribute name. In a first scenario, the values of characteristics are recorded and sorted (in numerical order, if all are numbers) after being seen across all machines. One corresponds to the first value, two to the second, and so on. Attributes whose existence or absence alone serves as a signal (such as whether or not a computer is executing a certain software) are assigned the value one if they are present. * **Collection Event Table** Collection-related events are summarized in this table. The following descriptions apply to each field. The first group is shared by collections and instances but with a significantly context-dependent meaning. At any given time in the trace, the thing event tables will include information about all things that are either now being executed (marked as RUNNING) or are schedule-eligible but have not yet been scheduled (marked as PENDING). We will include a record for each collection instance in the trace, which will provide the collection's scheduling restrictions.