Đề tài: Tìm hiểu Hệ quản trị
CSDL Phân Tán và hệ QTCSDLPT
Apache Cassandra
Nhóm 11:
Nguyễn Quang Dương
Phạm Ngọc Hải
Hệ QTCSDL Phân tán
Mô hình Tính toán (Dữ liệu) Song Song
Shared Memmory, Disk, Nothing …
Resource Shared
Mô hình Dữ liệu Phân tán:
Tách biệt địa lí, hợp nhất chậm
Độc lập ở từng node,site
Giao dịch cục bộ, Giao dịch toàn thể
Hệ QTCSDL Phân tán
Đâu là Hệ QTCSDL Phân tán?
Mạng + Phân tán DL?
Hệ QTCSDL Phân tán
Hệ phần mềm quản lí CSDL phân tán:
Liên quan logic
Giao diện chung
Trong suốt (Transparency) với người sử
dụng
Kiến trúc Hệ QTCSDL Phân
tán
Client – Server (Khách chủ)
Xử lí tập trung
Chỉ có các Request – Response
Server càng mạnh, xử lí càng nhanh
Peer to Peer (Ngang hàng)
Node: tương đương nhau
Tổ chức dữ liệu có thể khác nhau
Quản lí
Mô hình NoSQL
Non Relational – Not Only
Distributed Storage
Eventually Consistency: ko cần tức thì
Vertical Scalable: nội tại
Horizontal Scalable: mạng
Mục đích: ACID
High Scalability: ko giới hạn mở rộng
High Availability: chấp nhận lỗi
Apache Cassandra
Là mô hình NoSQL – Big Data
Column Oriented
Key-valued với Row key là khóa hàng
duy nhất
Tunable Consistency
Kiến trúc P2P
CQL (giống SQL)
Apache Cassandra
Inbox Search
2008 Open Source Project
2009, top-level Project 2010
Apache Cassandra
Wiki – phần Prominet User
Apache Cassandra
DataModel:
Keyspace
Column Family
(Row key)
(Super) Column
Data
(value – timestamp)
Apache Cassandra
Gossip (per second)
Cluster (partitioner)
Token
Random Partition
Ordered Partition
Seed Node
Apache Cassandra
Replication
Simple
Network Topology
Apache Cassandra
Client Request
Coordinator node
Write
Read
Timestamp
Apache Cassandra
Data Manager:
Write:
Commit log
Memtable
SSTable
Read
SSTable collect
Key cache
Apache Cassandra
Data Manager
Delete
Tombstone
Compaction process
Write hinted handoff
Hint (Location + Data)
Coordinator node : unReadable
Apache Cassandra
Consistency
Tunable: phụ thuộc client app
Mức nhất quán
Mô tả
ANY
Ghi ít nhất vào 1 node. Nếu tất cả các node down thì phải ghi được hinted handoff với mặc định dữ liệu
không đọc được cho đến khi ghi được vào node đúng
ONE
Commit log, memtable và 1 node sao lưu
QUORUM
Commit log, memtable và các node sao lưu được quy định (nhỏ hơn hoặc bằng hơn số node sao lưu tối
đa)
LOCAL_QUORUM
Commit log, memtable và các node sao lưu được quy định trong cùng một Data Center
EACH_QUORUM
Commit log, memtable và các node sao lưu được quy định ở tất cả các Data Center
ALL
Commit log, memtable và tất cả các node sao lưu
Apache Cassandra
Problem Detect:
Sử dụng Gossip
Tính toán ngưỡng cho từng node
Consistency Repair
Read Repair
Hint handoff
Anti-Entropy:
Dữ liệu ít được truy nhập
Nodetool Repair
Apache
Write fast and high availability
Ứng dụng cần đến ghi nhiều hơn đọc
Fault Tolerance: No single point of Failure
Scalability: mở rộng bằng thêm Node vào
Cluster, không hạn chế
Tunable Consistency
Cloud Architecture adapted
Thiết kế cho Hệ thống lớn
Demo
Twissandra.com
Demo
Demo
Về phần Demo cho bài tập của nhóm mình thì có các mục chính sau:
1. Cài đặt cái Apache Cassandra
2. Cài đặt thử 1 ứng dụng kiểu Demo lên trên nó.
3. Cài đặt 1 trình quản lý + monitor cái Apache Cassandra đó.
Phần 1: Cài đặt trên nền CentOS 6.2
Phần 2: Đây là 1 ứng dụng kiểu sample về Tài chính, cụ thể là về Thị trường
chứng khoán.(Portfolio Demo).
- Mỗi Portfolio chứa danh sách của các cổ phiếu, số lượng cổ phiếu đã mua, và
giá tại thời điểm mua đó.
- Mỗi Portfolio sẽ có một thống kê dạng % về tỉ lệ được or mất so với giá cổ
phiếu ở thời điểm mua.
- Dữ liệu (database) của nó tên là : PortfolioDemo. Trong Cassandra thì nó gọi
là Cassandra keyspace (Cũng tương tự như 1 database trong CSDL quan hệ ).
- Để khởi tạo dữ liệu cho ứng này thì nó có 1 tool gọi là : pricer utility.
- Hình Demo sau khi setup xong.
Phần 3: Đây là phần về Monitor cái Cassandra, một application do Apache
Cassandra xây dựng
Demo Cassandra Ops Center
Demo Cassandra Ops Center
Demo Cassandra Ops Center