banner
Nov 3, 2022
126 Views

[netflixtechblog] Timestone: Hệ thống hàng chờ ưu tiên của netflix có lưu lượng cao, độ trễ thấp và hỗ trợ các công việc không-thể-thực-thi-song-song P1/3

Written by
banner

Nguồn: https://netflixtechblog.com/timestone-netflixs-high-throughput-low-latency-priority-queueing-system-with-built-in-support-1abf249ba95f

Giới thiệu

Timestone là hệ thống hàng chờ ưu tiên có độ trễ thấp, lưu lượng cao chúng tôi xây dựng để hỗ trợ nhu cầu của nền tảng chuyển đổi nội dung số COSMOS.

Sau 2.5 năm, Timestone ngày càng được tích hợp vào nhiều mục đích khác nhau. Timestone hiện tại cũng đang là hệ thống hàng chờ ưu tiên hỗ trợ những mục đích cơ bản cho nền tảng phân phối công việc Conductor và là bộ lên kế hoạch (scheduler) cho hệ thống xử lý dữ liệu quy mô lớn BDP Scheduler. Xét 1 cách tổng thể, hàng triệu tiến trình công việc của Netflix chảy qua Timestone hàng ngày.

Timestone clients có thể tạo các hàng chờ, thêm các gói tin vào hàng chờ với thời hạn (deadlines) và các thông tin mô tả được người dùng định nghĩa, rồi sau đó lấy các gói tin theo thứ tự thời hạn (EDF = earliest-deadline-first). Lọc các gói tin theo EDF với các tiêu chuẩn khác (ví dụ "gói tin thuộc hàng chờ X và có thông tin mô tả Y") cũng được hỗ trợ.

Một trong những thứ khiến Timestone khác các hàng đợi ưu tiên khác là nó hỗ trợ 1 cấu trúc chúng tôi gọi là hàng đợi độc quyền (exclusive queues) - có nghĩa là đánh dấu 1 khối công việc là những-công-việc-không-thực-thi-song-song tránh việc bị tắc hoặc đánh giá lại từ phía bên tiêu thụ gói tin (consumer); mọi thứ được xử lý bởi hàng đợi độc quyền chạy nền. Chúng tôi sẽ giải thích chi tiết các khái niệm này ở bên dưới.

Tại sao Timestone lại tồn tại ?

Khi thiết kế thứ có thể thay thế Reloaded - hệ thống chuyển đổi nội dung số vào năm 2018 (xem mục "Background" ở bài sau The Netflix Cosmos Platform), chúng tôi cần hệ thống hàng chờ ưu tiên cung cấp các hàng chờ giữa 3 thành phần chính trong COSMOS (Ảnh 1)

  1. Khung API (Optimus),
  2. Hệ thống chuyển tiếp chuỗi quy tắc (the forward chaining rule engine) (Plato)
  3. Lớp tính toán phi-máy-chủ (Stratum)
Ảnh 1. Ứng dụng chuyển đổi video xây dựng trên nền COSMOS. Hãy để ý 3 hệ thống con của COSMOS là: Optimus, 1 lớp API chuyển đổi các yêu cầu bên ngoài thành các yêu cầu nội bộ phục vụ sản phẩm. Plato, một lớp quy trình làm việc dùng để thiết lập các quy tắc và Stratum, lớp không-máy-chủ để chạy các chức năng phi-trạng-thái và hao tổn tài nguyên. Nguồn: The Netflix Cosmos Platform

Một số yêu cầu mà hệ thống hàng chờ ưu tiên này cần đáp ứng bao gồm:

  • 1 gói tin chỉ được phép chỉ định cho cho 1 máy xử lý ở bất kỳ thời điểm nào. Những công việc được xử lý ở COSMOS thường là các công việc dùng nhiều tài nguyên và có thể tạo ra hàng ngàn hành động. Giả sử khi hệ thống bản sao dữ liệu không kịp xóa 1 công việc khi Worker B vừa nhận được công việc đó làm cho worker A cùng nhận được 1 công việc từ 1 bản sao khác, như thế thì năng lực xử lý sẽ bị lãng phí rất nhiều. Yêu càu này tương đương với việc chúng tôi muốn các công việc được xử lý như đang xử lý trên 1 máy chủ mặc dù có thể dữ liệu được phân phối và xử lý trên nhiều máy chủ (Linearizability).
  • Cho phép xử lý các công việc không-thể-song-song. Giả sử Plato đang có nhiệm vụ xử lý các công việc cho 1 dự án cụ thể, trong khi đó phải kiểm tra tất cả hàng đợi thì Plato sẽ có thể không xử lý thêm được công việc nó đang phải làm. Luôn tồn tại những công việc của COSMOS mà không-thể-song-song được và từ đó phát sinh yêu cầu phải có hệ thống hàng đợi đáp ứng mặc định được mong muốn đó. Yêu cầu này cũng là nguồn gốc của khái niệm về hàng đợi độc quyền. Chúng tôi sẽ giải thích cách làm việc của hàng đợi độc quyền ở mục "Các khái niệm chính" bên dưới.
  • Cho phép lấy / thêm gói tin vào hàng đợi theo bộ lọc.
  • Cho phép tự động tạo 1 hàng đợi dựa trên việc thêm gói tin.
  • Có thể lấy gói tin tức thời sau khi thêm vào hàng đợi.

Chúng tôi xây dựng nên Timestone vì không thể tìm ra phương án phù hợp với các yêu cầu trên.

tobe continued...

Article Tags:
· · · ·
Article Categories:
techblog
banner

Leave a Reply

Your email address will not be published. Required fields are marked *