16/03/2013

Tìm hiểu về các hệ thống cơ sở dữ liệu lớn [1]


Hôm vừa rồi có dịp lên lầu 2 siêu thị BigC đường Tô Hiến Thành, tán dóc với các anh Minh, Khải, Long, Tấn, Tiến của một cty rất trẻ và rất thành công. Trong vòng 5 năm họ đã xây dựng được một cơ đồ ấn tượng. Đố các bạn biết là cty nào? Tôi hiểu rằng họ đang phải giải quyết các vấn đề rất thú vị về các hệ thống CSDL khổng lồ và rất động. Điều này nằm ngoài tầm hiểu biết của tôi, vì thế tôi quyết định tìm hiểu thêm về các hệ thống CSDL lớn. Chuỗi bài này để bác Đoàn Ai Hải viết là thích hợp, nhưng chắc phải có mỹ nhân quân đội nhân dân Trung Của mới dụ được ẩn sĩ xuống núi.
Do nằm ngoài tầm hiểu biết, chuỗi bài này sẽ không tránh khỏi các sai sót cơ bản, mong các gurus góp ý thêm cho. Nhắc đến CSDL thì tôi lại nhớ đến đồ án tốt nghiệp đại học năm cuối ở ĐHBK của mình. Hồi đó tôi làm một CSDL quản lý cty du lịch dùng MS Access mà sau nghĩ lại thấy rất tầm thường. Được 7 hay 8 điểm gì đó là may lắm rồi mà vẫn nghĩ mình đáng lẽ phải được nhiều điểm hơn. Đến khi apply học sau đại học vẫn còn ghi trong statements of purpose là muốn làm về CSDL mà thật sự chẳng hiều là mình muốn làm gì.
Trước hết, phải xem là các CSDL cỡ nào thì gọi là lớn. Và người ta dùng cái gì để quản lý và phân tích chúng. Ở đây có một danh sách các CSDL khổng lồ. Nhớ rằng một petabyte bằng một triệu gigabyte.
  • eBay có khoảng 6 1/2 petabyte dữ liệu, chạy trên Greenplum và một mớ 2 1/2 petabyte dữ liệu kinh doanh trong một data warehouse chạy Teradata. Greenplum là một hệ thống CSDL song song khổng lồ (MPP-DBMS hay massively parallel processing DBMS) dựa trên nền PostgreSQL. Gần đây Greenplum còn thêm vào các mở rộng dựa trên MapReduce. Bài tới chúng ta sẽ tìm hiểu về MapReduce. Teradata là một MPP-DBMS khác.
  • Facebook có datawarehouse cỡ 2 1/2 petabyte chạy trên nền Hadoop/Hive. Hadoop là một implementation của MapReduce.
  • Wal-Mart, Bank of America, một công ty dịch vụ tài chính khác, và Dell cũng có các CSDL rất lớn chạy  chạy trên Teradata.
  • CSDL chứa web/network events của Yahoo chạy trên hệ thống họ tự phát triển, có lẽ bằng khoảng 1/6 kích thước của hệ thống Greenplum của eBay.
  • Fox Interactive Media/MySpace có nhiều trăm terabytes chạy Greenplum và Aster Data nCluster.
  • TEOCO có nhiều trăm terabytes chạy trên DATAllegro. Năm 2008 Microsoft mua DATAllegro, cho nên dù trước đó nó dựa trên Ingres nền Linux, bây giờ thì không biết có chuyển sang MS SQL Server không.
  • Vertica có vài khách hàng với các CSDL cỡ 200 terabyte. Vertica do Michael Stonebraker đồng sáng lập.
  • Sẽ rất thiếu sót khi nói về CSDL lớn mà không nói đến Google. Hệ thống phần mềm của Google quản trị dữ liệu bao gồm 4 thành phần chính: ChubbyGoogle File SystemBigtable và MapReduce. Chubby là một dịch vụ khóa cho một hệ thống phân bố. MapReduce ta sẽ tìm hiểu sau. Google File System là một distributed file system thiết kế cho scalability. Bigtable là một hệ thống CSDL phân bố gọn nhẹ. Chi tiết về phần cứng của Google nghe nói trong quyển sách của Stross là Google giấu giếm kỹ, dù ta biết sơ lược là nó có vài chục đến vài trăm ngàn servers trên PC chạy một phiên bản đã chỉnh sửa của Linux. Tôi không tìm được nguồn đáng tin cậy, có vẻ như Google chứa vài nghìn terabytes dữ liệu.
Về phần giá cả thì làm chủ một datawarehouse bao gồm giá ban đầu, giá bảo trì, và giá upgrade. Giá ban đầu nghe đâu từ 10K đến 150K đô la cho mỗi terabyte. Giá bảo trì chiếm đến khoảng 80% tổng chi phí.
Rất tình cờ là tờ CACM số 1 năm 2010 lại đăng một cuộc “cãi vã” nho nhỏ về MapReduce vs. MPP-DBMS. Có vẻ như hai phe ủng hộ MapReduce/Hadoop và phe ủng hộ MPP-RDBMS đã tranh luận và, quan trọng hơn, tranh thị trường từ vài năm đổ lại đây. Xem các bài này, và bài này, bắt đầu từ một bài blog của Stonebreaker và DeWitt mà bây giờ không còn tìm thấy nguyên bản ở website của họ (có hai bài: bài 1bài 2), và sau đó bị phê phán nhiều. Có vài myths về MapReduce có thể xemở đây.
Lần tới (không biết khi nào vì sắp Tết đến nơi) chúng ta sẽ tìm hiểu về MapReduce, sau đó tìm hiểu về MPP-DBMS, rồi bàn về cuộc chiến giữa chúng.

No comments:

Post a Comment