Đó có phải là Oracle hay MySQL hay thứ gì đó mà họ tự xây dựng?
Đó có phải là Oracle hay MySQL hay thứ gì đó mà họ tự xây dựng?
Câu trả lời:
Hệ thống lưu trữ phân tán cho dữ liệu có cấu trúc
Bigtable là một hệ thống lưu trữ phân tán (được xây dựng bởi Google) để quản lý dữ liệu có cấu trúc được thiết kế để mở rộng quy mô rất lớn: petabyte dữ liệu trên hàng ngàn máy chủ hàng hóa.
Nhiều dự án tại Google lưu trữ dữ liệu trong Bigtable, bao gồm lập chỉ mục web, Google Earth và Google Finance. Các ứng dụng này đặt ra các yêu cầu rất khác nhau đối với Bigtable, cả về kích thước dữ liệu (từ URL đến trang web đến hình ảnh vệ tinh) và yêu cầu độ trễ (từ xử lý hàng loạt phụ trợ đến phục vụ dữ liệu thời gian thực).
Bất chấp những nhu cầu khác nhau, Bigtable đã cung cấp thành công một giải pháp linh hoạt, hiệu suất cao cho tất cả các sản phẩm này của Google.
Một số tính năng
Ngành kiến trúc
BigTable không phải là một cơ sở dữ liệu quan hệ. Nó không hỗ trợ các phép nối cũng như không hỗ trợ các truy vấn giống như SQL. Mỗi bảng là một bản đồ thưa thớt đa chiều. Các bảng bao gồm các hàng và cột và mỗi ô có dấu thời gian. Có thể có nhiều phiên bản của một ô có dấu thời gian khác nhau. Dấu thời gian cho phép các hoạt động như "chọn phiên bản 'của trang Web này" hoặc "xóa các ô cũ hơn ngày / giờ cụ thể."
Để quản lý các bảng lớn, Bigtable chia các bảng ở ranh giới hàng và lưu chúng dưới dạng máy tính bảng. Một máy tính bảng có dung lượng khoảng 200 MB và mỗi máy tiết kiệm khoảng 100 máy tính bảng. Thiết lập này cho phép các máy tính bảng từ một bảng được trải rộng giữa nhiều máy chủ. Nó cũng cho phép cân bằng tải hạt mịn. Nếu một bảng nhận được nhiều truy vấn, nó có thể loại bỏ các máy tính bảng khác hoặc di chuyển bảng bận sang máy khác không quá bận. Ngoài ra, nếu một máy bị hỏng, một máy tính bảng có thể được trải rộng trên nhiều máy chủ khác để tác động hiệu suất lên bất kỳ máy cụ thể nào là tối thiểu.
Các bảng được lưu trữ dưới dạng SSTables bất biến và đuôi của các bản ghi (một bản ghi trên mỗi máy). Khi một máy hết bộ nhớ hệ thống, nó sẽ nén một số máy tính bảng bằng các kỹ thuật nén độc quyền của Google (BMDiff và Zippy). Các phép tính nhỏ chỉ liên quan đến một vài máy tính bảng, trong khi các phép tính chính liên quan đến toàn bộ hệ thống bảng và phục hồi không gian đĩa cứng.
Các vị trí của máy tính bảng Bigtable được lưu trữ trong các tế bào. Việc tra cứu bất kỳ máy tính bảng cụ thể nào được xử lý bởi hệ thống ba tầng. Các khách hàng nhận được một điểm đến bảng META0, trong đó chỉ có một. Bảng META0 theo dõi nhiều máy tính bảng META1 có chứa vị trí của các máy tính bảng được tra cứu. Cả META0 và META1 đều sử dụng rất nhiều việc tìm nạp trước và bộ nhớ đệm để giảm thiểu tắc nghẽn trong hệ thống.
Thực hiện
BigTable được xây dựng trên Hệ thống tệp của Google (GFS), được sử dụng làm kho lưu trữ sao lưu cho các tệp nhật ký và dữ liệu. GFS cung cấp lưu trữ đáng tin cậy cho SSTables, định dạng tệp thuộc sở hữu của Google được sử dụng để duy trì dữ liệu bảng.
Một dịch vụ khác mà BigTable sử dụng rất nhiều là Chubby , một dịch vụ khóa phân tán đáng tin cậy, có tính sẵn sàng cao. Chubby cho phép khách hàng lấy một khóa, có thể liên kết nó với một số siêu dữ liệu, nó có thể gia hạn bằng cách gửi các tin nhắn còn sống lại cho Chubby. Các khóa được lưu trữ trong một cấu trúc đặt tên phân cấp giống như hệ thống tập tin.
Có ba loại máy chủ quan tâm chính trong hệ thống Bigtable:
Ví dụ từ bài nghiên cứu của Google:
Một lát của bảng ví dụ lưu trữ các trang Web. Tên hàng là một URL đảo ngược . Họ cột nội dung chứa nội dung trang và họ cột neo chứa văn bản của bất kỳ neo nào tham chiếu trang. Trang chủ của CNN được tham chiếu bởi cả trang chủ Sports Illustrated và MY-look, do đó, hàng chứa các cột có tên
anchor:cnnsi.com
vàanchor:my.look.ca
. Mỗi ô neo có một phiên bản ; cột nội dung có ba phiên bản , tại timestampst3
,t5
vàt6
.
API
Các hoạt động tiêu biểu cho BigTable là tạo và xóa các bảng và họ cột, ghi dữ liệu và xóa các cột khỏi một hàng. BigTable cung cấp các chức năng này cho các nhà phát triển ứng dụng trong API. Giao dịch được hỗ trợ ở cấp hàng, nhưng không phải qua một số khóa hàng.
Đây là liên kết đến bản PDF của bài nghiên cứu .
Và ở đây, bạn có thể tìm thấy một video cho thấy Jeff Dean của Google trong một bài giảng tại Đại học Washington , thảo luận về hệ thống lưu trữ nội dung Bigtable được sử dụng trong phần phụ trợ của Google.
Đó là thứ họ tự xây dựng - nó được gọi là Bigtable.
http://en.wikipedia.org/wiki/BigTable
Có một bài báo của Google trên cơ sở dữ liệu:
Spanner là hệ thống quản lý cơ sở dữ liệu quan hệ được phân phối toàn cầu (RDBMS) của Google , kế thừa của BigTable . Google tuyên bố đây không phải là một hệ thống quan hệ thuần túy vì mỗi bảng phải có khóa chính.
Đây là liên kết của bài báo.
Spanner là cơ sở dữ liệu có thể mở rộng, đa phiên bản, phân phối toàn cầu và được nhân rộng của Google. Đây là hệ thống đầu tiên phân phối dữ liệu ở quy mô toàn cầu và hỗ trợ các giao dịch phân tán thống nhất bên ngoài. Bài viết này mô tả cách Spanner được cấu trúc, bộ tính năng của nó, lý do cơ bản dựa trên các quyết định thiết kế khác nhau và API thời gian mới lạ cho thấy sự không chắc chắn của đồng hồ. API này và việc triển khai nó rất quan trọng để hỗ trợ tính nhất quán bên ngoài và một loạt các tính năng mạnh mẽ: đọc không chặn trong quá khứ, giao dịch chỉ đọc không khóa và thay đổi lược đồ nguyên tử, trên tất cả Spanner.
Một cơ sở dữ liệu khác được phát minh bởi Google là Megastore . Đây là bản tóm tắt:
Megastore là một hệ thống lưu trữ được phát triển để đáp ứng các yêu cầu của các dịch vụ trực tuyến tương tác ngày nay. Megastore pha trộn khả năng mở rộng của kho dữ liệu NoQuery với sự tiện lợi của RDBMS truyền thống theo cách mới lạ, và cung cấp cả đảm bảo tính nhất quán mạnh mẽ và tính sẵn sàng cao. Chúng tôi cung cấp ngữ nghĩa ACID tuần tự hóa đầy đủ trong các phân vùng dữ liệu chi tiết. Phân vùng này cho phép chúng tôi sao chép đồng bộ từng lần ghi trên một mạng diện rộng với độ trễ hợp lý và hỗ trợ chuyển đổi dự phòng liền mạch giữa các trung tâm dữ liệu. Bài viết này mô tả thuật toán nhân rộng và thuật toán sao chép của Megastore. Nó cũng mô tả kinh nghiệm của chúng tôi hỗ trợ một loạt các dịch vụ sản xuất của Google được xây dựng với Megastore.
Như những người khác đã đề cập, Google sử dụng giải pháp cây nhà lá vườn có tên BigTable và họ đã phát hành một vài bài viết mô tả nó ra thế giới thực.
Những người Apache có một triển khai các ý tưởng được trình bày trong các bài báo này được gọi là HBase . HBase là một phần của dự án Hadoop lớn hơn mà theo trang web của họ "là một nền tảng phần mềm cho phép một người dễ dàng viết và chạy các ứng dụng xử lý lượng dữ liệu khổng lồ." Một số điểm chuẩn khá ấn tượng. Trang web của họ là tại http://hadoop.apache.org .
Mặc dù Google sử dụng BigTable cho tất cả các ứng dụng chính của họ, nhưng họ cũng sử dụng MySQL cho các ứng dụng khác (có thể là nhỏ).
Và cũng có thể hữu ích khi biết rằng BigTable không phải là cơ sở dữ liệu quan hệ (như MySQL) mà là một bảng băm (phân tán) khổng lồ có các đặc điểm rất khác nhau. Bạn có thể tự chơi xung quanh với (một phiên bản giới hạn) của BigTable trên nền tảng Google AppEngine .
Bên cạnh Hadoop được đề cập ở trên, có nhiều triển khai khác cố gắng giải quyết các vấn đề tương tự như BigTable (khả năng mở rộng, tính sẵn sàng). Tôi thấy một bài đăng blog tốt đẹp ngày hôm qua liệt kê hầu hết trong số họ ở đây .
Google chủ yếu sử dụng Bigtable.
Bigtable là một hệ thống lưu trữ phân tán để quản lý dữ liệu có cấu trúc được thiết kế để mở rộng quy mô đến một kích thước rất lớn.
Để biết thêm thông tin, tải tài liệu từ đây .
Google cũng sử dụng cơ sở dữ liệu Oracle và MySQL cho một số ứng dụng của họ.
Bất kỳ thông tin bạn có thể thêm được đánh giá cao.
Google also use Oracle
- tham khảo cần thiết.
Các dịch vụ của Google có kiến trúc kiên trì polyglot. BigTable được tận dụng bởi hầu hết các dịch vụ của mình như YouTube, Google Search, Google Analytics, v.v. Dịch vụ tìm kiếm ban đầu sử dụng MapReduce cho cơ sở hạ tầng lập chỉ mục của nó nhưng sau đó được chuyển sang BigTable trong quá trình phát hành Caffeine.
Kho dữ liệu Google Cloud có hơn 100 ứng dụng đang được sản xuất tại Google cả đối mặt với người dùng nội bộ và bên ngoài. Các ứng dụng như Gmail, Picasa, Lịch Google, Android Market & AppEngine sử dụng Cloud Datastore & Megastore.
Google Xu hướng sử dụng MillWheel để xử lý luồng. Quảng cáo Google ban đầu được sử dụng MySQL sau đó di chuyển sang F1 DB - cơ sở dữ liệu quan hệ phân tán tùy chỉnh bằng văn bản. Youtube sử dụng MySQL với Vitess. Google lưu trữ exabyte dữ liệu trên các máy chủ hàng hóa với sự trợ giúp của Hệ thống tệp Google.
Nguồn: Cơ sở dữ liệu Google: Dịch vụ Google lưu trữ dữ liệu quy mô Petabyte-Exabyte như thế nào?
Cơ sở dữ liệu YouTube - Làm thế nào để nó lưu trữ rất nhiều video mà không hết dung lượng lưu trữ?