1. Trang chủ
  2. » Tất cả

Lập trình hướng đối tượng đề bài nghiên cứu cơ sở dữ liệu coakroachdb và xử lí bằng java

16 5 0

Đ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

TRƯỜNG ĐẠI HỌC PHENIKAA KHOA KHOA HỌC CƠ BẢN BÀI TẬP LỚN KẾT THÚC HỌC PHẦN Lập trình hướng đối tượng Đề bài Nghiên cứu cơ sở dữ liệu CoakroachDB và xử lí bằng java Thành viên nhóm Lại Tiến Đức 2001085[.]

TRƯỜNG ĐẠI HỌC PHENIKAA KHOA KHOA HỌC CƠ BẢN BÀI TẬP LỚN KẾT THÚC HỌC PHẦN Lập trình hướng đối tượng Đề bài: Nghiên cứu sở liệu CoakroachDB xử lí java Thành viên nhóm: Lại Tiến Đức - 20010851 Đỗ Minh Quân - 20010879 Trần Tâm Long - 20010875 Nguyễn Hoàng Anh - 20010840 Giảng viên: Trần Đăng Hoan CoakroachDB ? CockroachDB sở liệu SQL phân tán xây dựng kho khóa-giá trị giao dịch quán mạnh mẽ Nó có quy mơ theo chiều ngang; sống sót sau lỗi đĩa, máy, giá đỡ chí trung tâm liệu với gián đoạn độ trễ tối thiểu khơng có can thiệp thủ công; hỗ trợ giao dịch ACID quán mạnh mẽ ; cung cấp API SQL quen thuộc để cấu trúc, thao tác truy vấn liệu Khi CockroachDB lựa chọn tốt? CockroachDB phù hợp cho ứng dụng yêu cầu liệu đáng tin cậy, sẵn có xác thời gian phản hồi mili giây, quy mơ Nó xây dựng để tự động chép, cân lại phục hồi với cấu hình chi phí hoạt động tối thiểu Các trường hợp sử dụng cụ thể bao gồm: OLTP phân phối chép Triển khai nhiều trung tâm liệu Triển khai đa vùng Di chuyển đám mây Các sáng kiến sở hạ tầng xây dựng cho đám mây Mục tiêu CockroachDB CockroachDB thiết kế để đáp ứng mục tiêu sau: Làm cho sống người dễ dàng Điều có nghĩa chạm tự động hóa cao cho người vận hành đơn giản để giải thích cho nhà phát triển Cung cấp tính quán hàng đầu ngành, triển khai quy mô lớn Điều có nghĩa cho phép giao dịch phân tán, loại bỏ nỗi đau vấn đề tính quán cuối lần đọc cũ Tạo sở liệu bật chấp nhận đọc ghi tất nút mà không tạo xung đột Cho phép triển khai linh hoạt môi trường, không ràng buộc bạn với tảng nhà cung cấp Hỗ trợ công cụ quen thuộc để làm việc với liệu quan hệ (tức SQL) Serializable, Lockless, Distributed: Isolation in CockroachDB - CockroachDB hỗ trợ gói nhiều câu lệnh SQL vào giao dịch tất khơng có Mỗi giao dịch đảm bảo ngữ nghĩa ACID trải dài bảng hàng tùy ý, liệu phân phối Nếu giao dịch thành công, tất đột biến áp dụng với đồng thời ảo Nếu phần giao dịch khơng thành cơng, tồn giao dịch bị hủy bỏ sở liệu giữ nguyên CockroachDB đảm bảo giao dịch chờ xử lý, cách ly khỏi giao dịch đồng thời khác với cách ly hóa - Để có thảo luận chi tiết ngữ nghĩa giao dịch CockroachDB, xem cách CockroachDB thực giao dịch nguyên tử phân tán Serializable, Lockless, Distributed: Isolation CockroachDB - Vài tháng trước, có thảo luận cách giao dịch phân tán CockroachDB thực thi nguyên tử Tuy nhiên, thảo luận khơng đầy đủ; bỏ qua khái niệm đồng thời, nhiều giao dịch hoạt động tập liệu lúc CockroachDB, giống tất hệ thống sở liệu, cố gắng cho phép nhiều đồng thời để tối đa hóa quyền truy cập vào tập liệu - Thật không may, đảm bảo tính ngun tử chúng tơi khơng đủ để giữ cho sở liệu quán giới giao dịch đồng thời Nhắc lại đảm bảo đó: Đối với nhóm thao tác sở liệu, tất thao tác áp dụng khơng có thao tác áp dụng - Điều không giải cách mà giao dịch đồng thời xen kẽ Các thao tác riêng lẻ (đọc ghi) giao dịch khơng xảy đồng thời; có thời gian hoạt động riêng lẻ Trong hệ thống đồng thời, giao dịch cam kết thời gian thực giao dịch thứ hai; giao dịch (T1) cam kết nguyên tử, điều cho phép hoạt động sau giao dịch thứ hai (T2) xem kết T1, hoạt động trước T2 không thấy kết T1 Việc xen kẽ tạo số điểm bất thường khơng mong muốn , cuối phá vỡ tính quán sở liệu - Để bảo vệ khỏi dị thường này, yêu cầu đảm bảo Cách ly : Đối với nhóm giao dịch nguyên tử, đồng thời, cam kết giao dịch không xen kẽ với hoạt động giao dịch khác - Sự lập hồn hảo đạt cách đáng kể thơng qua thực nối tiếp: thực tất giao dịch hệ thống thời điểm, khơng có đồng thời Điều có ý nghĩa hiệu suất khủng khiếp; may mắn thay, khơng cần thiết để đạt lập hồn hảo Nhiều sở liệu đồng thời, bao gồm CockroachDB, thay vào cung cấp khả thực thi hóa , tương đương với thực thi nối tiếp cho phép mức độ giao dịch đồng thời đáng kể - Mức độ cách ly mặc định CockroachDB gọi Ảnh chụp hóa nối tiếp Đó hệ thống điều khiển đồng thời lạc quan, nhiều phiên bản, xếp theo dấu thời gian với thuộc tính sau: + Serializable: Trạng thái sở liệu kết tương đương với việc thực nối tiếp giao dịch thành phần + Recoverable: Một tập hợp giao dịch sở liệu coi khơi phục giao dịch bị hủy bỏ bị hủy bỏ không ảnh hưởng đến trạng thái sở liệu Hệ thống cam kết nguyên tử đảm bảo giao dịch riêng lẻ khơi phục được; hệ thống Cơ lập sử dụng lập lịch nghiêm ngặt để đảm bảo kết hợp giao dịch khơi phục + Lockless: Các hoạt động thực thi mà khơng cần khóa tài ngun Tính đắn thực thi cách hủy bỏ giao dịch vi phạm khả hóa lập lịch nghiêm ngặt + Distributed: Khơng có nhà tiên tri trung tâm, điều phối viên dịch vụ liên quan đến hệ thống Cung cấp thực thi nối tiếp hóa: - CockroachDB sử dụng thứ tự dấu thời gian nhiều phiên để đảm bảo lịch sử cam kết giao dịch hoàn chỉnh hóa Kỹ thuật tài liệu sách giáo khoa ba thập kỷ, xem qua cách thức hoạt động nó: + Đồ thị khả hóa: Để chứng minh tính đắn thứ tự dấu thời gian, xem xét lý thuyết khả hóa , cụ thể khái niệm cốt lõi nó, biểu đồ khả hóa Biểu đồ sử dụng để phân tích lịch sử giao dịch sở liệu xung đột hoạt động Về lý thuyết, xung đột xảy hai giao dịch khác thực thao tác phần liệu (lần lượt), trong thao tác ghi Hoạt động thứ hai cho xung đột với hoạt động Có ba loại xung đột: Read-Write (RW) - Thao tác thứ hai ghi đè lên giá trị đọc thao tác Ghi-Đọc (WR) - Thao tác thứ hai đọc giá trị ghi thao tác Write-Write (WW) - Thao tác thứ hai ghi đè lên giá trị ghi thao tác Đối với lịch sử giao dịch định nào, xung đột sử dụng để tạo biểu đồ hóa, biểu đồ có hướng liên kết tất giao dịch Các giao dịch nút biểu đồ Bất hoạt động xung đột với hoạt động từ giao dịch khác, vẽ cạnh trực tiếp từ hoạt động xung đột sang hoạt động bị xung đột Ví dụ biểu đồ khả hóa cho lịch sử giao dịch đơn giản Và đến tuyên bố quan trọng lý thuyết này: lịch sử đảm bảo hóa (và khi) đồ thị hóa dịng xoay chiều Ví dụ lịch sử giao dịch với biểu đồ hóa theo chu kỳ Lịch sử khơng thể hóa Thứ tự dấu thời gian CockroachDB đảm bảo biểu đồ khả hóa xoay chiều điều dễ dàng chứng minh: Mỗi giao dịch gán dấu thời gian (từ nút mà bắt đầu) bắt đầu Tất hoạt động giao dịch diễn dấu thời gian này, suốt thời gian giao dịch Các hoạt động riêng lẻ xác định cục chúng xung đột với hoạt động khác dấu thời gian giao dịch hoạt động bị xung đột Các hoạt động phép xung đột với dấu thời gian trước đó; giao dịch khơng phép cam kết làm tạo xung đột với dấu thời gian sau Bằng cách không cho phép xung đột ngược lại hướng theo thứ tự dấu thời gian, đồ thị khả hóa theo chu kỳ khơng thể Tuy nhiên, khám phá chi tiết cách CockroachDB thực phát không cho phép xung đột + Xung đột ghi-đọc - Cơ sở liệu MVCC: Đây lúc khía cạnh “đa phiên bản” chế điều khiển phát huy tác dụng Các khóa CockroachDB khơng lưu trữ giá trị nhất, mà lưu trữ nhiều phiên có dấu thời gian giá trị Các lần ghi không ghi đè lên giá trị cũ, mà tạo phiên với dấu thời gian So sánh kho giá trị nhiều phiên với kho giá trị đơn Thao tác đọc khóa trả phiên có dấu thời gian thấp thao tác: Do đó, CockroachDB khơng thể hình thành xung đột WR với giao dịch sau này; thao tác đọc không đọc giá trị có dấu thời gian sau + Xung đột đọc-ghi - Đọc nhớ cache dấu thời gian: Trên thao tác đọc nào, dấu thời gian thao tác đọc ghi lại đệm dấu thời gian nút-cục Bộ nhớ đệm trả dấu thời gian gần mà khóa đọc Tất hoạt động ghi tham khảo đệm dấu thời gian cho khóa mà chúng ghi; dấu thời gian trả lớn dấu thời gian hoạt động, điều cho thấy xung đột RW với dấu thời gian sau Để khơng cho phép điều này, hoạt động (và giao dịch nó) phải hủy bỏ bắt đầu lại với dấu thời gian sau Bộ đệm dấu thời gian đệm theo khoảng thời gian, có nghĩa khóa thực dải khóa Nếu hoạt động đọc thực vị từ hoạt động loạt khóa (chẳng hạn qt), tồn phạm vi khóa quét ghi vào đệm dấu thời gian Điều ngăn chặn xung đột RW khóa ghi khơng xuất trình quét Bộ nhớ cache dấu thời gian cấu trúc liệu LRU nhớ (ít sử dụng gần nhất) có giới hạn kích thước, với dấu thời gian cũ bị loại bỏ đạt đến giới hạn kích thước Để xử lý khóa khơng có nhớ cache, chúng tơi trì "dấu nước thấp", tương đương với dấu thời gian đọc sớm khóa có nhớ cache Nếu thao tác ghi ghi vào khóa khơng có đệm, thay vào đó, "dấu nước thấp" trả + Xung đột Ghi-Ghi - Chỉ ghi phiên khóa: Nếu thao tác ghi cố gắng ghi vào khóa, khóa có phiên có dấu thời gian muộn thao tác đó, việc cho phép thao tác tạo xung đột WW với giao dịch sau Để đảm bảo khả hóa, hoạt động (và giao dịch nó) phải hủy bỏ khởi động lại với dấu thời gian sau Bằng cách chọn thứ tự dựa dấu thời gian từ chối tất xung đột khơng đồng ý với thứ tự đó, Ảnh chụp nhanh hóa nối tiếp CockroachDB đảm bảo lịch trình thay đổi theo thứ tự Có thể phục hồi với lập lịch trình nghiêm ngặt: - Trong quy tắc xung đột trước đủ để đảm bảo lịch sử hóa, mối quan tâm khác nảy sinh hai giao dịch chưa cam kết có xung đột: xung đột quy tắc xếp dấu thời gian cho phép, quy tắc bổ sung yêu cầu để đảm bảo lịch giao dịch khơi phục - Vấn đề giải thích ví dụ: Xem xét hai giao dịch [T1, T2], timestamp (T1)

Ngày đăng: 31/03/2023, 06:17

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w