Một Google cluster là một tập hợp máy chủ cùng chạy đồng thời, được kết nối với nhau thông qua một băng thông tốc độ cao (high - bandwith cluster network). Google đã công bố một tập dữ liệu nhật kí theo dõi của 12453 node (thông thường mỗi node là một process riêng biệt, chạy trên một máy vật lý) ghi lại nhật ký hoạt động của của các node này trong khoảng 30 ngày, cập nhật mỗi 5 phút một lần. Một tế bào (cell) là một tập hợp các máy tính, thường tập trung trong một cluster đơn để chia sẻ một hệ thống quản lý cluster- management chung để phân chia công việc cho các máy. Công việc (work) đến một tế bào (cell) dưới dạng mẫu nhiều job (việc nhỏ). Một job được đóng gói theo nhiều task (nhiệm vụ), mỗi task được kèm theo một bộ yêu cầu tài nguyên được sử dụng để lên kế hoạch (scheduling) các task lên máy tính. Mỗi task đại diện cho một chương trình Linux, có thể bao gồm nhiều tiến trình, có thể chạy trên một máy tính đơn. Các task và các job được lên kế hoạch lên các máy theo vòng đời. Yêu cầu tài nguyên và dữ liệu sử dụng cho các task được cấp phát từ thông tin được cung cấp bởi hệ thống quản lý cell và các máy riêng lẻ trong cell.
Một single usage trace (dấu vết sử dụng đơn) mô tả một vài ngày của workload (khối lượng công việc) trên một trong những cell. Một theo dõi (trace) được tạo bởi một vài dataset (bộ dữ liệu). Một dataset chứa một bảng, được chỉ mục (index) bằng một khóa chính mà thường bao gồm một timestamp (dấu thời gian). Mỗi dataset được đống gói trong một bộ của một hay nhiều files, mỗi file được đóng gói theo chuẩn CSV.
Các bảng dữ liệu của Google cluster trace gồm 3 gói mô tả:
Machines: được chia làm 2 bảng: bảng machine event (sự kiện của máy) và bảng machine attributes (trạng thái của máy). Trong đó machines event gồm
các thuộc tính: timestamp (tem thời gian), machine ID (số định dạng máy), event type (thể loại sự kiện), platform ID (định dạng platform), capacity: CPU (sức chứa CPU), capacity memory (sức chứa bộ nhớ). Event type có 3 kiểu:
ADD (0): một máy trở nên sẵn sàng cho cluster – Tất cả máy trong theo dõi sẽ có một sự kiện ADD.
REMOVE (1): một máy bị xóa khỏi cluster. Sự xóa có thể xảy ra do lỗi hoặc bảo trì.
UPDATE (2): một máy sẵn sàng cho cluster có tài nguyên thay đổi.
Jobs và Tasks: được mô tả qua các bảng: bảng sự kiện của công việc (Job events table), bảng sự kiện của nhiệm vụ (task event table), và bảng ràng buộc nhiệm vụ (Task constraints table). Sự tương quan giữa vòng đời job/ task và các loại event được thể hiện như hình dưới đây. Có các trạng thái: Unsubmitted (chưa gửi), pending (trì hoãn), running (đạng chạy), dead (ngừng hẵn). Và các hoạt động:
SUBMIT (0): một task hoặc job đủ điều kiện cho scheduling (sếp lịch).
SCHEDULE (1): một task hoặc job được schedule trên một máy
EVICT (2): một task hoặc job bị xóa lịch (deschedule) bởi độ ưu tiên.
FAIL (3): một task hoặc job bị xóa lịch vì lỗi task
FINISH (4): một task hoặc job hoàn thành bình thường.
KILL (5): một task hoặc job bị hủy bởi người dùng hoặc người quản trị
LOST (6): một task hoặc job bị ngắt
UPDATE_PENDING (7): một task hoặc job đợi được xếp lịch.
Hình 3.1: Trạng thái dịch chuyển giữa các job và các task
Resource usage: là bảng dữ liệu chứa các giá trị start time (bắt đầu), end time (kết thúc), memory accesses per instruction (truy xuất bộ nhớ trên kiến trúc), ….
Với mục đích xây dựng mô hình dự đoán lỗi cho các node thất bại, luận văn dựa trên đặc tính các sự kiện XÓA (REMOVE event). Sự kiện này xảy ra có thể do hai nguyên nhân: lỗi máy hoặc máy đang trong quá trình cập nhật phần mềm. Ngưỡng thời gian máy duy trì trạng thái hỏng (down) lớn hơn 2 giờ, nghĩa là sự kiện XÓA kéo dài thay vì sự kiến THÊM (ADD) trên cùng một máy , thì có thể gán máy đó là bị lỗi. Còn ngược lại, nếu trong thời gian nhỏ hơn 2 giờ, thì máy đó là biểu hiện của việc cập nhật phần mềm.