Khi pipeline Dataflow có hiệu năng thấp nhưng bộ tự động co giãn (autoscaler) không tăng số lượng worker (kẹt ở 10 cho dù tối đa là 1000), nguyên nhân thường là Fusion Optimization (tối ưu hóa kết hợp):
- Fusion: Dataflow tự động tối ưu bằng cách ghép các bước biến đổi liên tiếp vào cùng một luồng xử lý trên một worker để tránh ghi đĩa và truyền dữ liệu qua mạng.
- Vấn đề: Khi một bước đọc tệp CSV lớn và phát ra hàng triệu dòng (high fan-out), sự kết hợp này buộc các bước xử lý dòng CSV tiếp theo phải chạy trên cùng một worker đã đọc tệp đó, làm mất đi khả năng xử lý song song và khiến autoscaler không thấy lý do để thêm worker mới.
- Reshuffle: Thêm một bước
Reshuffle (hoặc Redistribute trong phiên bản mới) sẽ phá vỡ liên kết fusion này, buộc Dataflow phải ghi tạm dữ liệu và phân phối đều (shuffle) các dòng dữ liệu ra toàn bộ các worker khác, kích hoạt bộ tự động co giãn tăng thêm worker.
- Tại sao chọn B: Phá vỡ fusion giúp phân phối tải đồng đều, cho phép Dataflow tận dụng song song hóa và tăng số lượng worker.
- Tại sao A và D sai: Thay đổi cấu hình phần cứng worker (Vertical/Right Fitting) không giải quyết được gốc rễ vấn đề phân phối tải mất cân bằng do fusion.
- Tại sao C sai: Giới hạn worker tối đa hiện tại là 1000 nhưng hệ thống chỉ đang dùng 10, do đó việc tăng giới hạn lên cao hơn nữa hoàn toàn không có tác dụng.
(Đáp án được gợi ý bởi AI)