Tải bản đầy đủ (.ppt) (22 trang)

TIỂU LUẬN MÔN CƠ SƠ DỮ LIỆU NÂNG CAO HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN RIAK

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.98 MB, 22 trang )

GVHD: PGS.TS Nguyễn Hà Nam
Nhóm 1:
1. Nguyễn Thanh Tịnh
2. Vương Đình Dũng


Tổng quan về Riak

Một số ưu nhược điểm

Một số hướng ứng dụng
Riak?

Là một hệ cơ sở dữ liệu phân tán mã nguồn mở

Dữ liệu được chứa trong các bucket, các khóa và các giá trị

Thiết kế dựa theo thuyết CAP của Eric Brewer
-
Consistency
-
Availability
-
Partition tolerance
3/21
Vòng tròn cụm

Mỗi máy chủ vật lý là một node, mỗi node chứa 1 hoặc nhiều node ảo (vnode)

Tất cả các node trong cụm là bình đẳng, không tồn tại khái niệm master node
4/21


Giao thức Gossip

Chia sẻ thông tin giữa các node về trạng thái vòng tròn
cụm:
- Vai trò của mỗi node.
- Các thuộc tính của các bucket.

Mỗi node định kỳ gửi thông tin mà nó biết đến một số node
được lựa chọn ngẫu nhiên.

Chức năng:
-
Phát hiện các node bị mất kết nối với vòng tròn cụm.
-
Làm tăng tính nhất quán của dữ liệu.
5/21
Tạo bản sao

Bảo đảm cho dữ liệu không bị mất nếu có node bị mất kết
nối.

Có thể tùy chỉnh cho từng bucket.

Tiến trình Read Repair: sửa lỗi dữ liệu không nhất quán.

Hinted handoff: bù trừ cho node bị mất kết nối.
6/21
Backend lưu dữ liệu

Engine lưu trữ đặc biệt được tối ưu cho việc truy xuất dữ

liệu dạng key/value.

Hỗ trợ nhiều loại backend, có thể đưa thêm vào hoặc gỡ
ra.

Mỗi bucket có thể dùng một backend khác nhau.

Mặc định dùng Bitcask.
7/21
Backend lưu dữ liệu - Bitcask
File
entry
Thư
mục
File
8/21
Backend lưu dữ liệu - Bitcask
Keydir

- Nằm trọn vẹn trong bộ nhớ trong.
-> Thao tác đọc dữ liệu nhanh.
9/21
Backend lưu dữ liệu - Bitcask
Tiến trình hợp nhất dữ liệu

10/21
Đọc/ghi

Mỗi node đều có thể đóng vai trò là node điều phối cho 1
request từ client:

-
Chuyển request đến các partition phù hợp.
-
Nhận và so sánh các kết quả trả về.
-
Trả lời client.
Đọc
- Client có thể thiết lập 1 giá trị R trên mỗi request.
Ghi
- Cho phép thiết lập 1 giá trị W cho mỗi cập nhật.
- Mỗi cập nhật được đánh dấu bằng 1 vector clock.
11/21
Giải quyết xung đột

Hai cách giải quyết các xung đột trong việc cập nhật
các đối tượng dữ liệu:
-
Cho lần cập nhật gần nhất giành chiến thắng.
-
Trả về cho client tất cả các phiên bản của object.
12/21
Giải quyết xung đột – Vector clock

Phương pháp so sánh các phiên bản của đối tượng

Ví dụ:
[{client1,3,tstamp},{client2,1,tstamp},{client3,2,tstamp}]

Vector Clock Pruning :
13/21

Giải quyết xung đột - Sibling

Sibling được tạo ra khi Riak không thể xác định
được phiên bản đúng của đối tượng dữ liệu.

Ba trường hợp sẽ tạo ra sibling:
-
Các thao tác ghi xảy ra đồng thời.
-
Sử dụng giá trị vector clock sai.
-
Thao tác ghi không dùng vector clock.
14/21
Map-Reduce

Xử lý dữ liệu theo thời gian thực và xử lý song song

Tăng tính địa phương hóa cho dữ liệu

Job:
-
có thể được viết bằng Javascript và gửi đi thông qua HTTP
-
nhận kết quả ở dạng JSON

Map phase
- thực thi tại các node chứa dữ liệu input

Reduce phase
- thực thi tại node điều phối

15/21
Link-walking

Link
-
Thiết lập các mối quan hệ một chiều giữa các đối tượng dữ
liệu
-
Cho phép thực hiện những truy vấn lần theo các mối quan
hệ từ một đối tượng đến các đối tượng khác
-
Đọc và cập nhật link thông qua HTTP Link header
Link: </riak/list/1>; riaktag="previous", </riak/list/3>; riaktag="next"
-
Link-walking bắt đầu từ một đối tượng dữ liệu đầu vào, lần
theo các link của đối tượng đó để tìm những đối tượng phù
hợp
GET /riak/buckets/keys/[bucket],[tag],[keep]
16/21
Một số ưu nhược điểm của Riak

Ưu điểm:
-
Chống chịu lỗi tốt
-
Tính sẵn sàng và tính scalability cao
-
Hoàn toàn địa phương hóa dữ liệu
-
Độ trễ thấp và thông lượng lớn

-
HTTP + JSON
-
Link-walking
-
CAP có thể tùy chỉnh được
-
Multi-backend
-
Map-Reduce linh hoạt
-
Cung cấp nhiều giao diện lập trình
-
Mã nguồn mở
17/21
Một số ưu nhược điểm của Riak

Nhược điểm
-
Thắt nút cổ chai tại Reduce phase
-
Vấn đề với backend Bitcask
+ Bảng keydir phải được chứa toàn bộ trong bộ nhớ trong
-
Không hỡ trợ những đối tượng dữ liệu lớn (>100MB)
18/21
Một số hướng ứng dụng

Các ứng dụng hoạt động trên nền Web


Ứng dụng thu thập thông tin người dùng
-
Mozilla Test Pilot,…

Lưu dữ liệu người dùng cho mạng xã hội và các trò chơi
trực tuyến
- Yammer,…

Xây dựng các ứng dụng Mobile đáng tin cậy và scalability
19/21
Một số hướng ứng dụng

Caching Layer

Hệ thống lưu trữ file đám mây hoặc kho lưu trữ dữ liệu
đa phương tiện

Lưu dữ liệu người dùng cho mạng xã hội và các trò chơi
trực tuyến

Các hệ thống thương mại điện tử phân tán
20/21

×