Xây dựng ứng dụng với API của FoundationDB[4]

Một phần của tài liệu (LUẬN văn THẠC sĩ) ứng dụng FoundationDB trong việc nâng cao hiệu năng xử lý truy vấn trực tuyến (Trang 30 - 31)

CHƯƠNG 1 : TỔNG QUAN FOUNDATIONDB

2.1 Xây dựng ứng dụng với API của FoundationDB[4]

2.1.1 Mô hình dữ liệu

Mô hình dữ liệu lõi của FDB là key-value store có trật tự. Cũng được biết đến như một mảng, từ điển có sắp xếp, đây là cấu trúc dữ liệu kết hợp bởi một tập các bộ khóa-giá trị (key-value) trong đó tất cả khóa là duy nhất và có thứ tự. Tất cả khóa và giá trị trong FDB đều là các chuỗi byte. Ngoài việc phục hồi và lưu trữ, CSDL không phụ thuộc vào nội dung của giá trị. Sự kết hợp của mô hình dữ liệu lõi cùng với giao tác đa khóa cho phép ứng dụng có thể xây dựng các mô hình dữ liệu phong phú hơn đồng thời thừa hưởng những đặc tính của FDB.

2.1.2 Quản lý không gian tên

Do sự sắp xếp của các khóa nên một không gian tên (namespace) trong FDB được định nghĩa bởi bất cứ tiền tố nào được thêm vào trước khóa.

2.1.3 Làm việc với các hàm APIs

FDB hỗ trợ các hàm API (Application Programming Interface) cho các ngôn ngữ Python, Ruby, Node.js, Java và C. Ở mức cao mỗi tập APIs đều hỗ trợ giao tác cho phép:

 Thiết đặt một bộ khóa-giá trị.  Lấy ra giá trị nhờ vào khóa.  Lấy ra một dải khóa-giá trị.  Xóa đi một bộ khóa-giá trị.  Xóa đi một dải khóa-giá trị.

2.1.4 Cơ bản về giao tác trong FoundationDB

FDB cung cấp mô hình điều khiển sự đồng thời, tương tranh bằng giao tác cho phép nhiều người dùng cùng lúc đọc và ghi vào CSDL. Tất cả các thao tác đọc ghi các bộ khóa-giá trị đều được thực hiện trong phạm vi một giao tác. Một giao tác là một đơn vị nhỏ của công việc được thực thi tin cậy và về mặt logic thì độc lập với các giao tác khác.

@fdb.transactional

defexample(tr):

# Read two values from the database

a=tr.get('a') b=tr.get('b')

# Write two key-value pairs to the database

tr.set('c',a+b) tr.set('d',a+b)

example(db)

Một phần của tài liệu (LUẬN văn THẠC sĩ) ứng dụng FoundationDB trong việc nâng cao hiệu năng xử lý truy vấn trực tuyến (Trang 30 - 31)