1. Trang chủ
  2. » Công Nghệ Thông Tin

Spanner Hệ cơ sở dữ liệu phân tán

15 860 11

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 233,43 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Spanner là hệ cơ sở dữ liệu phân tán toàn cầu của Google. Nó có khả năng mở rộng cho phép lưu trữ hàng tỷ tỷ dòng dữ liệu trong hàng triệu node phân tán qua hàng trăm datacenter. Trọng tâm chính của Spanner là quản lý sao chép dữ liệu qua các datacenter. Spanner hỗ trợ ACID cho các giao tác và cung cấp ngôn ngữ truy vấn dựa trên SQL. Spanner sử dụng một TrueTime API mới để đồng bộ và xử lý đồng thời.

Trang 1

XỬ LÝ ĐỒNG THỜI TRÊN HỆ

CSDL SPANNER

1

Trang 2

NỘI DUNG BÁO CÁO

1. Giới thiệu Spanner

2. Kiến trúc Spanner

3. Spanserver Software Stack

4. TrueTime

5. Timestamps and TrueTime

6. Điều khiển đồng thời (Concurrency Control)

7. Đánh giá

2

Trang 3

Giới thiệu Spanner

 Spanner là hệ cơ sở dữ liệu phân tán toàn cầu của Google.

 Spanner có khả năng mở rộng cho phép lưu trữ hàng tỷ

tỷ dòng dữ liệu trong hàng triệu node phân tán qua hàng trăm datacenter.

 Trọng tâm chính của Spanner là quản lý sao chép dữ liệu qua các datacenter.

 Spanner hỗ trợ ACID cho các giao tác và cung cấp ngôn ngữ truy vấn dựa trên SQL.

 Spanner sử dụng một TrueTime API mới để đồng bộ và

xử lý đồng thời

3

Trang 4

Kiến trúc Spanner

 Một sự triển khai Spanner gọi là

universe.

Một universe có nhiều zone

(physic location).

 Một datacenter có một hoặc nhiều zone.

Một zone có một zonemaster

và hàng trăm đến hành nghìn

spanserver Spanner Server Configuration

Universemaster cung cấp thông tin trạng thái của tất cả các zone

hoặc thông debugging.

Placement driver tự động chuyển dữ liệu giữa các zones hoặc

định kỳ tương tác với server để tìm kiếm dữ liệu cần chuyển đổi.

4

Trang 5

Spanserver Software Stack

 Quản lý 100 – 1000 tablet.

Trạng thái của tablet lưu trong Colossus Distributed File System

dưới dạng file B-tree và write-ahead log.

Mỗi tablet được nhân bản qua nhiều datacenter sử dụng Paxos.

 Mỗi Paxos có một leader tồn tại tương đối dài.

Tập hợp các bản sao (replicas) gọi là một nhóm Paxos (Paxos group)

5

Trang 6

Spanserver Software Stack

Paxos Group

6

Trang 7

True Time

 Một API cung cấp thông tin về thời gian

 Có các phương thức sau:

TT.now(): trả về thời gian hiện tại dưới dạng

TTinterval: [earliest, latest], đảm bảo thời gian tuyệt đối khi TT.now() được gọi là ở trong TTinterval.

TT.after(t): trả về true nếu chắc chắn đã qua thời gian chỉ định t, ngược lại: false

TT.before(t): trả về true nếu chắc chắn trước thời gian chỉ định t, ngược lại: false

7

Trang 8

 TT.now()

time

earliest latest

TT.now() 2*ε

 ε là biên độ lỗi tức thời (instantaneous error bound).

 TTinterval tt = TT.now()

 tt.lastest – tt.earliest = 2* ε

 Thực thế, ε nằm trong khoảng từ 1 đến 7ms.

8

Trang 9

Timestamps and TrueTime

 Gán timestamp đến một transaction

 Sử dụng 2PL đối với một write transaction

T

Pick s = TT.now().latest

Acquired locks Release locks

Wait until TT.now().earliest > s

s

average ε

Commit wait

average ε

 Commit wait là khoảng thời gian mà coordinator leader đảm bảo các clients không nhìn thấy bất kỳ dữ liệu nào đã commit bởi T cho đến khi TT.after(s) là true

9

Trang 10

Điều khiển đồng thời

 Có 3 loại hoạt động mà Spanner hỗ trợ:

 Read/write transaction

 Read-only transaction

 Snapshot reads

 Hoạt động write đơn lẻ được cài đặt như một read/write transaction

 Một hoạt động read (không phải snapshot read) được cài đặt như một read-only transaction

10

Trang 11

Điều khiển đồng thời

 Read/Write Transaction

 Sử dụng two phase commit (2PC)

TC

Acquired locks Release locks

TP1

Acquired locks Release locks

TP2

Acquired locks Release locks

Notify participants of s

Commit wait done

Compute s for each

Start logging Done logging

Prepared

Compute overall s

Committed

Send s

11

Trang 12

Điều khiển đồng thời

 Read-Only Transaction

 Spanner yêu cầu scope-expression cho mỗi read-only transaction.

 Scope-expression là một biểu thức tóm tắt các khóa (key) sẽ được đọc bởi toàn bộ transaction.

 Nếu giá trị của scope được thực thi bên trong một nhóm Paxos:

 Client yêu cầu group leader cho một read-only transaction Paxos leader gán timestamp là LastTS() và thực thi hoạt động read.

 LastTS() là giá trị timestamp của hoạt động write đã commit sau cùng trong một nhóm Paxos.

 Nếu giá trị scope thực thi qua nhiều nhóm Paxos:

 Client sử dụng TT.now().lastest như là một read timestamp.

 Client chờ cho đến khi TT.after() là true.

 Xác nhận giá trị timestamp đã qua.

 Gửi read task trong transaction đến các bản sao (replicas)

12

Trang 13

Điều khiển đồng thời

 Schema Change Transaction

 Sử dụng một transaction đặc biệt.

 Đầu tiên, tạo một thời điểm ở tương lai và tạo và đăng ký một timestamp.

 Điều này giúp cho schema thay đổi mà không ảnh hưởng đến các task đang diễn ra.

 Read/write liên quan đến thay đổi schema được đồng bộ với timestamp đã đăng ký của schema.

 Nếu timestamp của task sớm hơn timestamp của thay đổi schema, task được thực hiện sớm Ngược lại, nó bị chặn.

13

Trang 14

Đánh giá

 Spanner là hệ CSDL phân tán quy mô toàn cầu đầu tiên của Google và hỗ trợ giao tác phân tán nhất quán bên ngoài (externally-consistently)

 Spanner kế thừa những ưu điểm từ BigTable và MegaStore và khắc phục nhược điểm của chúng

 Một tính năng then chốt của Spanner là TrueTime

14

Trang 15

Cảm ơn!

15

Ngày đăng: 01/09/2014, 11:55

TỪ KHÓA LIÊN QUAN