Tuesday, September 5, 2017

[BIG DATA] - Scale Up vs Scale Out

Co giãn theo chiều dọc hay chiều ngang (Scale Up vs Scale Out) là vấn đề cốt lõi trong xử lí dữ liệu lớn nói riêng và các hệ thống lớn nói chung.

Để có thể hiểu về vấn đề co giãn (scalability) trong các hệ thống dữ liệu lớn - Dhãy lấy một ví dụ đó là bán vé xe lửa ngày thường và ngày Tết.

Thông thường, số lượng giao dich và lượng truy cập cho website bán vé xe lửa không lớn; tuy nhiên vào các đợt lễ Tết thì lượng truy cập tăng lên đột biến, có thể gây nghẽn mạng như đã từng xảy ra vào các năm trước đây.

Có hai cách tiếp cận: thứ nhất là mua một máy tính cấu hình thật mạnh để hi vọng có xử lí được trường hợp lượng truy cập tăng - hoặc thứ hai là mua nhiều máy tính cấu hình tương đối - và khi có lượng truy cập tăng thì tăng thêm máy vào hệ thống, và khi lượng truy cập giảm thì giảm đi.

Cách thứ nhất sẽ gây lãng phí tài nguyên khi lượng truy cập tăng chỉ thỉnh thoảng xảy ra, và tiềm ẩn nguy cơ rủi ro khi nếu sự cố xảy ra thì hệ thống shutdown; Ucách thứ hai mềm dẻo hơn - nhưng bù lại, việc xử lí trên nhiều máy sẽ phức tạp hơn, chậm hơn, và tốn năng lượng hơn.

Hai cách tiếp cận trên minh họa cho hai hướng tiếp cận khi xử lí bài toán co giãn - scale up (dồn hết vào một máy tính cực mạnh) và scale out (tản ra nhiều máy tính cấu hình tương đối). Việc chọn cách tiếp cận nào thì tùy vào trường hợp cụ thể - và mềm dẻo nhất là kết hợp cả hai cáchY.


Một ví dụ thực tế khác đó là chúng ta có cần xe bus trong Tp.HCM loại lớn - 2 tầng (scale up), hay là cần các xe bus loại nhỏ (scale out) - và việc vận hành sẽ thế nào khi mà nhu cầu đi lại tăng đột biến vào đầu giờ sáng và cuối giờ chiều tương ứng với thời gian đi học và đi làm của mọi người. Để giải quyết bài toán thực tế này, nên học cách thiết kế và vận hành của Hadoop (v2).

Tham khảo: https://www.brianjgraf.com/2013/05/17/scalability-scale-up-scale-out-care/

Keyword: big data, scale up, scale out, vertical, horizontal, scalability, hadoop, dynamic scaling 

@Lê Đình Duy