Chương 1: Định luật Gray: Tính toán khoa học lấy dữ liệu làm trung tâm

Trở về Mục lục cuốn sách

Alexander S. Szalay | The Johns Hopkins University
José A. Blakeley | Microsoft

Sự bùng nổ dữ liệu khoa học đã tạo ra một thử thách lớn đối với các dự án khoa học hiện đại. Với những tập hợp dữ liệu vượt ngoài phạm vi hàng chục terabyte, các nhà khoa học không có những giải pháp sẵn có nào để quản trị và xử lý dữ liệu ngay được [1]. Các dự án thành công đến giờ đều bố trí kết hợp những tập tin rời và cơ sở dữ liệu [2]. Tuy nhiên, phần lớn các giải pháp này đều được chỉnh lại cho từng dự án cụ thể và không thể dễ dàng khái quát hóa hay dãn ra để phù hợp với các thí nghiệm thế hệ mới được. Hơn nữa, các kiến trúc máy tính hiện đại ngày càng mất cân đối; khoảng cách về độ trễ giữa các bộ vi xử lý nhiều lõi với các ổ cứng cơ học càng nới rộng theo từng năm, làm cho thử thách đối với tính toán thiên về dữ liệu càng khó được đón nhận [3]. Điều mà ta cần là một phương pháp tổng quát và có hệ thống để giải quyết các vấn đề này với một kiến trúc mà có thể điều chỉnh trong tương lai.

Các định luật Gray

Jim Gray đã lập nên một số quy luật bất thành văn—hay định luật—để chuẩn hóa cách tiếp cận các thử thách trong kĩ thuật dữ liệu có liên quan đến các tập hợp dữ liệu khoa học cỡ lớn. Những định luật đó như sau:

  1. Tính toán khoa học ngày càng trở nên thiên về dữ liệu hơn.
  2. Giải pháp nằm ở một kiến trúc mở rộng theo hướng ngang.1
  3. Đưa việc tính toán đến với dữ liệu, thay vì đưa dữ liệu tới nơi tính toán.
  4. Bắt đầu việc thiết kế với “20 câu hỏi”.
  5. Đi từ hoạt động được đến hoạt động được.

Điều quan trọng là nhận thấy được rằng việc phân tích các tập hợp dữ liệu quan sắt được bị hạn chế trầm trọng bởi hiệu năng nhập xuất/dữ liệu khá thấp của đa số các nền tảng tính toán ngày nay. Các mô phỏng số trị với hiệu năng cao đang ngày càng thấy rõ “nút thắt nhập/xuất”. Một khi tập hợp dữ liệu vượt quá dung lượng bộ nhớ RAM của hệ thống, tính địa phương trong vùng nhớ cache nhiều tầng (multi-tiered cache) không còn giúp gì nữa [4]. Chỉ còn rất ít các nền tảng cao cấp cho những hệ thống nhỏ có tốc độ nhập/xuất đủ nhanh.

Các tính toán số trị hiệu năng cao, có thể thay đổi theo cỡ bài toán cũng thể hiện một thử thách đối với thuật toán. Các gói phần mềm phân tích số trị truyền thống đều được thiết kế để thao tác trên tập hợp dữ liệu có thể đặt vừa trong RAM. Để phân tích được các tập dữ liệu với cỡ độ lớn gấp nhiều lần, những gói đó phải được thiết kế lại để hạt động theo cách nhiều công đoạn, chia-để-trị trong khi vẫn đảm bảo được độ chính xác số học vốn có. Điều này gợi ý một cách tiếp cận trong đó một bài toán lớn được chia nhỏ thành các mảnh sao cho có thể giải được trong phạm vi RAM, trong khi toàn bộ phần còn lại của tập dữ liệu vẫn nằm trên đĩa. Cách tiếp cận này giống như cách mà các thuật toán cơ sở dữ liệu như sắp xếp hoặc ghép nối thao tác trên tập dữ liệu lớn hơn RAM. Các thử thách nói trên đang đạt đến giai đoạn giới hạn.

Việc mua những hệ thống lưu trữ mạng lớn hơn và gắn chúng với các nhóm điểm nút máy tính sẽ không giải quyết được vấn đề vì tốc độ truyền tin tăng không đủ nhanh để đương đầu với nhu cầu dung lượng đĩa, vốn mỗi năm tăng lên gấp đôi. Các giải pháp mở rộng theo hướng ngang đều ủng hộ các “viên gạch” đơn giản cấu thành hệ thống, trong đó dữ liệu được phân mảnh giữa các nút với dung lượng được gắn tại chỗ [5]. Các “viên gạch” này càng nhỏ và đơn giản bao nhiêu thì sự cân đối giữa các CPU, dung lượng đĩa và mạng càng tốt hơn. Gray đã tiên liệu được những “viên gạch thông tin” đơn giản trong đó mỗi ổ đĩa có riêng CPU và thiết bị mạng của nó [6]. Dù số nút của hệ thống như vậy sẽ lớn hơn nhiều so với một kiến trúc mở rộng theo “phương đứng” kiểu truyền thống, nhưng sự đơn giản và chi phí thấp cho mỗi nút cùng hiệu năng tổng hợp sẽ bù trừ để tốt hơn quy mô được tăng thêm. Với sự xuất hiện của đĩa thể rắn và bo mạch chủ tiêu thụ ít điện, chúng ta đang ở ngưỡng khả năng xây dựng hệ thống như vậy [7].

Tính toán lấy cơ sở dữ liệu làm trung tâm

Hầu hết việc phân tích dữ liệu khoa học đều được thực hiện theo các bước có thứ bậc. Trong suốt bước đầu tiên, một phần của dữ liệu được kết xuất bằng cách lọc dựa trên thuộc tính nào đó (như loại bỏ dữ liệu lỗi) hay kết xuất một cột dữ liệu. Ở bước tiếp theo, dữ liệu thường được chuyển đổi hoặc gộp theo cách nào đó. Dĩ nhiên, trong những tập dữ liệu phức tạp hơn, các dạng mẫu này thường được kèm theo với kết nối phức tạp giữa nhiều tập dữ liệu, như kiểm định theo dữ liệu ngoài, hay kết xuất và phân tích những phần khác nhau trong một chuỗi gien [8]. Khi tập dữ liệu lớn lên, cách hiệu quả nhất để thực hiện phần lớn các thao tác tính toán trên rõ ràng là di chuyển các hàm tính toán càng gần về dữ liệu càng tốt. Nó cũng cho thấy rằng phần lớn các hình thức này có thể dễ dàng diễn tả bởi một ngôn ngữ miêu tả, hướng về tập hợp; trong đó việc thực thi được tận dụng tối đa từ các phương pháp như: tối ưu hóa tìm kiếm theo chi phí, tự động hóa cơ chế song song, và đánh chỉ số.

Gray và các đồng nghiệp đã giới thiệu một số dự án trong đó công nghệ cơ sở dữ liệu quan hệ đang dùng có thể được áp dụng thành công theo cách này [9]. Cũng có những cách kết hợp trơn tru các thư viện lớp phức tạp được viết theo ngôn ngữ thủ tục, với vai trò phần mở rộng của bộ máy cơ sở dữ liệu bên trong [10, 11].

MapReduce đã trở thành một mẫu hình tính toán và phân tích dữ liệu kiểu phân tán thông dụng trong những năm gần đây [12]. Nguyên lí bên trong mẫu hình này giống với các tính năng tổng hợp và tạo nhóm phân tán đã tồn tại trong các hệ cơ sở dữ liệu quan hệ song song được một thời gian rồi. Các hệ cơ sở dữ liệu song song thế hệ mới như Teradata, Aster Data, và Vertica đã đổi nhãn hiệu các tính năng trên trở thành “MapReduce trong cơ sở dữ liệu”. Những chuẩn mới để song sánh ưu điểm của từng cách tiếp cận đã được lập nên [13].

Kết nối tới những nhà khoa học

Một trong những bài toán thách thức nhất trong việc thiết kế cơ sở dữ liệu khoa học là việc thiết lập sự liên lạc hiệu quả giữa người lập cơ sở dữ liệu và các nhà khoa học chuyên ngành quan tâm đến tính toán. Hầu hết các dự án đều mắc phải lỗi cố gắng trở thành “đa dụng cho mọi người”. Rõ ràng là có một số tính năng sẽ quan trọng hơn những tính năng khác và khi thiết kế phải cân nhắc đến sự được-mất, từ đó dẫn tới bù trừ về mặt hiệu năng.

Jim Gray đã tiến đến một quy tắc nằm lòng gồm “20 câu hỏi”. Với mỗi dự án mà ông tham gia, Jim đều yêu cầu 20 câu hỏi quan trọng nhất từ phía các nhà nghiên cứu đặt ra với hệ thống dữ liệu. Ông nói rằng 5 câu hỏi thì chưa đủ để thấy được một dạng mẫu khái quát, còn 100 câu hỏi sẽ làm loãng sự tập trung. Vì phần lớn các lựa chọn từ phía con người đều tuân theo luật phân bố 1/f, hay “dài đuôi”, nên rõ ràng hàm lượng thông tin trong các câu hỏi xếp theo tầm quan trọng sẽ phân bố theo hàm logarit, vì vậy những lợi ích thu được khi tăng số câu hỏi từ 20 (bằng 24,5) lên 100 (26,5) là không nhiều lắm [14].

Quy tắc “20 câu hỏi” là tên của một bước thiết kế nhằm đưa nhà khoa học chuyên ngành và người kĩ sư cơ sở dữ liệu đối thoại với nhau để bắc nhịp cầu giữa các danh từ và động từ trong lĩnh vực khoa học với các thực thể và quan hệ được lưu trữ trong cơ sở dữ liệu. Các câu hỏi đẽ định nghĩa chính xác một loạt những yêu cầu dưới hình thức thực thể và quan hệ, mà nhà khoa học muốn đặt ra cho cơ sở dữ liệu. Quá trình này được lặp lại, và cuối cùng thì nhà khoa học và cơ sở dữ liệu sẽ có cùng tiếng nói.

Cach tiếp cận này đã và đang rất thành công trong việc giữ cho quá trình thiết kế hướng tập trung vào những đặc điểm quan trọng nhất mà hệ thống phải hỗ trợ, đồng thời giúp các nhà khoa học hiểu vấn đề được-mất trong hệ thống cơ sở dữ liệu, từ đó hạn chế sự mở rộng quá đáng các tính năng của hệ thống.

Một quy luật thiết kế khác là di chuyển từ một phiên bản chạy được này sang một phiên bản chạy được khác. Gray rất hiểu về sự thay đổi nhanh chóng của kiến trúc tính toán dựa trên dữ liệu, đặc biệt là khi nó bao gồm dữ liệu phân bố. Hàng năm, các mẫu hình tính toán phân bố mới liên tục đến và đi, khiến ta rất khó thiết kế và làm theo chu trình thực hiện kiểu từ trên xuống cho một dự án trong nhiều năm. Đến lúc một dự án như vậy được hoàn thành, các điều kiện đề ra ban đầu đã trở nên lỗi thời. Nếu ta dựng một hệ thống chỉ bắt đầu hoạt động khi mọi thành phần của nó hoạt động đúng thì ta sẽ không bao giờ hoàn thành.

Cách duy nhất để tồn tại được và tiến bộ trong hoàn cảnh như vậy là xây dựng một hệ thống cấu thành bởi các phần (mô-đun) trong đó mỗi phần đều có thể thay thế được khi mà công nghệ bên trong đổi mới. Các kiến trúc hướng dịch vụ ngày nay là một ví dụ điển hình cho điều này. Những dịch vụ Web đã trải qua một số giai đoạn tiến hóa lớn, mà ta vẫn chưa bao giờ nhìn thấy hồi kết của chúng.

Từ cơ sở dữ liệu khoa học cỡ tera đến cỡ peta

Bằng cách dùng Microsoft SQL Server, chúng tôi đã giải quyết thành công được một số dự án có cỡ từ vài terabyte (TB) đến hàng chục terabyte [15–17]. Việc thực hiện các cơ sở dữ liệu sớm vượt ngưỡng 100 TB dường như có diễn tiến thuận lợi [18], nhưng không rõ ràng là khoa học sẽ vượt qua rào cản cỡ peta bằng cách nào. Khi cơ sở dữ liệu càng lớn lên, điều không tránh được là chúng sẽ bắt đầu đòi hỏi kiến trúc mở rộng ngang. Dữ liệu sẽ càng bị chia cắt, làm cho các truy vấn phân tán, không cục bộ cũng như việc ghép nối phân tán càng khó khăn.

Với phần lớn các vấn đề cỡ peta ngày nay, một chiến lược tự động duyệt web đơn giản trên các phần dữ liệu riêng rẽ, được mở rộng mạnh mẽ đã là đủ (MapReduce, Hadoop, v.v.). Nhưng cũng rõ là hình thức này kém tối ưu khi một chỉ số tốt có thể nâng hiệu năng lên hàng bậc độ lớn. Việc ghép các bảng có độ dài rất khác nhau trở nên cực kì khó khăn khi dùng các trình duyệt tự động này.

Các cơ sở dữ liệu cho ta nhiều điều về mặt kế hoạch hiệu quả. Chúng tôi cũng cần phải nghĩ lại về lợi ích từ việc trông đợi một kết quả đơn nhất. Ta có thể hình dung trình duyệt tự động trên cơ sở dữ liệu bị phân mảnh đã thực hiện một hệ thống trong đó cung cấp kết quả mỗi lúc một khối, khiến cho các việc kiểm soát và hồi phục giữa một truy vấn đồ sộ được dễ dàng hơn. Cách tiếp cận này cũng có ích với các hàm tổng hợp trong đó có vế lệnh khiến cho việc tính toán dừng lại khi kết quả ước lượng đã đạt, chẳng hạn, 99% độ chính xác. Những bổ sung này sẽ giúp ích nhiều trong việc tránh các truy vấn đơn nhất khổng lồ—hãy chia nhỏ chúng thành những phần dễ kiểm soát hơn.

Điện toán đám mây là một mẫu hình mới xuất hiện. Nó có những ưu thế hiển nhiên, như xếp cùng dữ liệu với tính toán và tiết kiệm về kích cỡ khi tổ chức các dịch vụ. Dù những nền tảng [đám mây] này rõ ràng là hoạt động tốt với mục đích định trước của chúng như là máy tìm kiếm hoặc tổ chức các Web site thương mại, vài trò của chúng trong tính toán khoa học chưa được làm rõ. Trong một số kịch bản phân tích khoa học, dữ liệu cần được ở gần thí nghiệm. Trong một số kịch bản khác, các nút cần được tích hợp chặt chẽ với độ trễ rất ngắn. Lại có những trường hợp khác, cần đến băng thông xuất/nhập rất cao. Các chiến lược phân tích này đều không tối ưu trong môi trường ảo hiện tại. Dĩ nhiên, những đám mây dữ liệu chuyên dụng sẽ sớm xuất hiện. Trong vòng một vài năm tới, ta sẽ xem liệu rằng tính toán khoa học sẽ chuyển từ trường đại học sang các nhà cung cấp dịch vụ có tính thương mại, hay cần gom các nguồn dữ liệu khoa học về chung một mối.

Kết luận

Khoa học thực nghiệm đang phát sinh một khối lượng lớn dữ liệu. Dự án Pan-STARRS sẽ thu thập 2,5 petabyte (PB) dữ liệu mỗi năm khi đưa vào sản xuất [18]. Máy gia tốc hạt lớn sẽ phát sinh từ 50 đến 100 PB dữ liệu mỗi năm, với khoảng 20 PB dữ liệu được lưu và xử lý trên một tổ chức liên hiệp rộng khắp, gồm các lưới máy tính từ nhiều quốc gia, liên kết trên 100.000 CPU [19]. Tuy nhiên các giải pháp lấy dữ liệu làm trung tâm tổng quát để có thể đương đầu với khối lượng dữ liệu này cùng những tính toán tương ứng thì chưa sẵn sàng [20].

Các nhà khoa học và viện nghiên cứu cần một khuôn mẫu và một tập hợp các quy tắc đắc dụng nhất để tạo được sự cân bằng giữa kiến trúc máy tính và phần mềm tương ứng, để xử lý khối lượng dữ liệu lớn đó. Điều này sẽ làm giảm nhu cầu phát minh lại thứ sẵn có. Các đặc điểm của cơ sở dữ liệu như ngôn ngữ mô tả, hướng đến tập hợp và cơ chế song song tự động, vốn đã thành công trong việc xây dựng những ứng dụng khoa học cỡ lớn, rõ ràng là rất cần thiết.

Chúng tôi tin rằng làn sóng cơ sở dữ liệu hiện nay có thể quản lý được ít nhất là một cấp độ lớn khác về kích thước dữ liệu. Vì vậy bây giờ, chúng tôi có thể tiếp tục làm việc. Tuy nhiên giờ cũng là lúc bắt đầu nghĩ về làn sóng tiếp theo. Các cơ sở dữ liệu là một biểu hiện từ sớm cho thấy những yêu cầu của các ứng dụng thông thường dành cho công ty lớn; vì vậy, việc đầu tư vào các ứng dụng này sẽ dẫn đến các công nghệ có thể áp dụng được trong vài năm tới. Các thử thách của khoa học ngày nay là đại biểu điển hình cho thử thách dành cho quản lý dữ liệu trong thế kỉ 21. Những định luật Gray cho thấy một danh sách những nguyên lý chỉ dẫn rất hay nhằm thiết kế hệ thống thiên về dữ liệu trong tương lai.

Tài liệu tham khảo

[1] A. S. Szalay and J. Gray, “Science in an Exponential World,” Nature, vol. 440, pp. 23–24, 2006, doi: 10.1038/440413a.

[2] J. Becla and D. Wang, “Lessons Learned from Managing a Petabyte,” CIDR 2005 Conference, Asilomar, 2005, doi: 10.2172/839755.

[3] G. Bell, J. Gray, and A. Szalay, “Petascale Computational Systems: Balanced Cyber- Infrastructure in a Data-Centric World,” IEEE Computer, vol. 39, pp. 110–112, 2006, doi: 10.1109/MC.2006.29.

[4] W. W. Hsu and A. J. Smith, “Characteristics of I/O traffic in personal computer and server workloads,” IBM Sys. J., vol. 42, pp. 347–358, 2003, doi: 10.1147/sj.422.0347.

[5] A. Szalay, G. Bell, et al., “GrayWulf: Scalable Clustered Architecture for Data Intensive Computing,” Proc. HICSS-42 Conference, Hawaii, 2009, doi: 10.1109/HICSS.2009.750.

[6] J. Gray, Cyberbricks Talk at DEC/NT Wizards Conference, 2004; T. Barclay, W. Chong, and J. Gray, “TerraServer Bricks – A High Availability Cluster Alternative,” Microsoft Technical Report, MSR-TR-2004-107, http://research.microsoft.com/en-us/um/people/gray/talks/DEC_ Cyberbrick.ppt.

[7] A. S. Szalay, G. Bell, A. Terzis, A. S. White, and J. Vandenberg, “Low Power Amdahl Blades for Data-Intensive Computing,” http://perspectives.mvdirona.com/content/binary/AmdahlBladesV3. pdf.

[8] U. Roehm and J. A. Blakeley, “Data Management for High-Throughput Genomics,” Proc. CIDR, 2009.

[9] J. Gray, D. T. Liu, M. A. Nieto-Santisteban, A. S. Szalay, G. Heber, and D. DeWitt, “Scientific Data Management in the Coming Decade,” ACM SIGMOD Record, vol. 34, no. 4, pp. 35–41, 2005; also MSR-TR-2005-10, doi: 10.1145/1107499.1107503.

[10] A. Acheson et al., “Hosting the .NET Runtime in Microsoft SQL Server,” ACM SIGMOD Conf., 2004, doi: 10.1145/1007568.1007669.

[11] J. A. Blakeley, M. Henaire, C. Kleinerman, I. Kunen, A. Prout, B. Richards, and V. Rao, “.NET Database Programmability and Extensibility in Microsoft SQL Server,” ACM SIGMOD Conf., 2008, doi: 10.1145/1376616.1376725.

[12] J. Dean and S. Ghemawat, “MapReduce: Simplified Data Processing on Large Clusters,” OSDI, 2004, doi: 10.1145/1327452.1327492.

[13] A. Pavlo et al., “A Comparison of Approaches to Large-Scale Data Analysis,” ACM SIGMOD Conf., 2009, doi: 10.1145/1559845.1559865.

[14] C. Anderson. The Long Tail. New York: Random House, 2007.

[15] A. R. Thakar, A. S. Szalay, P. Z. Kunszt, and J. Gray, “The Sloan Digital Sky Survey Science Archive: Migrating a Multi-Terabyte Astronomical Archive from Object to Relational DBMS,” Comp. Sci. and Eng., vol. 5, no. 5, pp. 16–29, Sept. 2003.

[16] A. Terzis, R. Musaloiu-E., J. Cogan, K. Szlavecz, A. Szalay, J. Gray, S. Ozer, M. Liang, J. Gupchup, and R. Burns, “Wireless Sensor Networks for Soil Science,” Int. J. Sensor Networks, to be published 2009.

[17] Y. Li, E. Perlman, M. Wan, Y. Yang, C. Meneveau, R. Burns, S. Chen, A. Szalay, and G. Eyink, “A public turbulence database cluster and applications to study Lagrangian evolution of velocity increments in turbulence,” J. Turbul., vol. 9, no. 31, pp. 1–29, 2008, doi: 10.1080/14685240802376389.

[18] Pan-STARRS: Panoramic Survey Telescope and Rapid Response System, http://pan-starrs.ifa.hawaii.edu.

[19] A. M. Parker, “Understanding the Universe,” in Towards 2020 Science, Microsoft Corporation, 2006, http://research.microsoft.com/towards2020science/background_overview.htm.

[20] G. Bell, T. Hey, and A. Szalay, “Beyond the Data Deluge,” Science, vol. 323, no. 5919, pp. 1297–1298, 2009, doi: 10.1126/science.1170411.


  1. “scale-out”: có thể hình dung như việc tăng số nút trong tính toán lưới. Trái với “scale-up”: tăng cường tài nguyên / phần cứng tại mỗi điểm nút.
Advertisements

1 Phản hồi

Filed under Mẫu hình IV

One response to “Chương 1: Định luật Gray: Tính toán khoa học lấy dữ liệu làm trung tâm

  1. Pingback: Mẫu hình thứ tư: Khám phá khoa học thiên về dữ liệu | Blog của Chiến

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s