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

Báo cáo môn học hệ phân bố tuần 6 giao tác và nhân bản tìm hiểu một số dịch vụ hệ thống phổ biến

18 2 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

Thông tin cơ bản

Tiêu đề Giao tác và Nhân bản Tìm hiểu Một Số Dịch Vụ Hệ Thống Phổ Biến
Người hướng dẫn PTS. Nguyễn Văn A
Trường học Đại học Bách Khoa Hà Nội
Chuyên ngành Hệ phân bố
Thể loại Báo cáo môn học
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 18
Dung lượng 193,98 KB

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

Nội dung

1 Giao tác là gì Một giao tác (transaction) là một hành động hay một chuỗi các hành động truy cập vào CSDL hoặc làm thay đổi nội dung CSDL, giao tác được đưa ra bởi một người sử dụng hay một chương tr[.]

Trang 1

1 Giao tác là gì

Một giao tác (transaction) là một hành động hay một chuỗi các

hành động truy cập vào CSDL hoặc làm thay đổi nội dung CSDL,

giao tác được đưa ra bởi một người sử dụng hay một chương trình

ứng dụng

2 Các tính chất của giao tác

• Tính nguyên tố (Atomicity): toàn bộ các thao tác trong cùng một giao

tác đều được thực hiện hoặc không một thao tác nào trong chúng được thực hiện Một giao tác là một đơn vị công việc không thể phân chia

• Tính nhất quán (Consistency): một giao tác phải chuyển CSDL từ một

trạng thái nhất quán này sang một trạng thái nhất quán khác

• Tính cô lập (Isolation): Các giao tác phải được thực hiện một cách độc

lập với nhau Nói một cách khác những tác động của giao tác này sẽ không thể thấy được đối với những giao tác khác, khi giao tác này chưa thực hiện xong hoàn toàn

• Tính bền vững (Durability): những thay đổi của CSDL do tác động

của một giao tác thành công là bền vững, không bị mất đi

3 Hoạt động của giao dịch phân tán

Một giao dịch phân tán là một giao dịch cơ sở dữ liệu trong đó hai hoặc nhiều host mạng có liên quan Thông thường, máy chủ cung cấp tài nguyên giao dịch , trong khi người quản lý giao dịch chịu trách nhiệm tạo

và quản lý một giao dịch toàn cầu bao gồm tất cả các hoạt động dựa trên các tài nguyên đó Giao dịch phân tán, giống như bất kỳ giao dịch nào khác , phải có tất cả bốn thuộc tính ACID (tính nguyên tử, tính nhất quán, tính cách ly, độ bền) , trong đó tính nguyên tử đảm bảo kết quả tất cả hoặc không có gì cho đơn vị công việc (gói hoạt động) Open Group, một liên minh nhà cung cấp, đã đề xuất Mô hình xử lý giao dịch phân tán mở (DTP) X / Mở (X / Open XA), trở thành tiêu chuẩn thực tế cho hành vi của các thành phần mô hình giao dịch Cơ sở dữ liệu là tài nguyên giao dịch phổ biến và thông thường, các giao dịch trải dài trên một vài cơ sở

dữ liệu như vậy Trong trường hợp này, một giao dịch phân tán có thể được coi là một giao dịch cơ sở dữ liệu phải được đồng bộ hóa (hoặc cung cấp các thuộc tính ACID ) giữa nhiều cơ sở dữ liệu tham gia được phân phối giữa các vị trí thực tế khác nhau Các cô lập tài sản (I ACID) đặt ra một thách thức đặc biệt đối với các giao dịch cơ sở dữ liệu đa, kể từ khi (toàn cầu) serializability tài sản có thể bị vi phạm, ngay cả khi mỗi cơ

sở dữ liệu cung cấp cho nó (xem thêm serializability toàn cầu ) Trong thực tế, hầu hết các hệ thống cơ sở dữ liệu thương mại sử dụngkhóa hai pha nghiêm ngặt mạnh mẽ (SS2PL) để kiểm soát đồng thời , đảm bảo khả năng tuần tự hóa toàn cầu, nếu tất cả các cơ sở dữ liệu tham gia sử dụng

Trang 2

nó (xem thêm thứ tự cam kết cho đa cơ sở) Một thuật toán phổ biến để đảm bảo hoàn thành đúng một giao dịch phân tán là cam kết hai giai đoạn (2PC) Thuật toán này thường được áp dụng cho các bản cập nhật có thể cam kết trong một khoảng thời gian ngắn, từ vài mili giây đến vài phút Ngoài ra còn có các giao dịch phân tán tồn tại lâu dài, ví dụ như giao dịch đặt chuyến đi, bao gồm đặt vé máy bay, thuê ô tô và khách sạn Vì việc đặt chuyến bay có thể mất đến một ngày để nhận được xác nhận, cam kết hai giai đoạn không áp dụng ở đây, nó sẽ khóa tài nguyên trong thời gian dài Trong trường hợp này, các kỹ thuật phức tạp hơn liên quan đến nhiều cấp độ hoàn tác được sử dụng Cách bạn có thể hoàn tác đặt phòng khách sạn bằng cách gọi đến bàn và hủy đặt phòng, một hệ thống có thể được thiết kế để hoàn tác một số thao tác nhất định (trừ khi chúng hoàn tất không thể thay đổi)

4 Các giao dịch cần thiết và không cần thiết

Các giao dịch phân tán là cần thiết khi bạn cần cập nhật nhanh chóng các dữ liệu liên quan được trải rộng trên nhiều cơ sở dữ liệu Ví dụ: nếu bạn có nhiều hệ thống theo dõi thông tin khách hàng và bạn cần thực hiện cập nhật chung (như cập nhật địa chỉ gửi thư) trên tất cả các bản ghi, thì một giao dịch phân tán sẽ đảm bảo rằng tất cả các bản ghi đều được cập nhật Và nếu xảy ra lỗi, dữ liệu sẽ được đặt lại về trạng thái ban đầu và việc gửi lại giao dịch tùy thuộc vào ứng dụng gốc

Trong một số môi trường, các giao dịch phân tán là không cần thiết

và thay vào đó, các hoạt động kiểm tra bổ sung được thực hiện để đảm bảo tính toàn vẹn của dữ liệu khi tốc độ của giao dịch không phải là vấn

đề Việc chuyển tiền qua các ngân hàng là một ví dụ điển hình Mỗi ngân hàng tham gia chuyển tiền đều theo dõi trạng thái của giao dịch, và khi phát hiện lỗi, trạng thái một phần sẽ được sửa chữa Quá trình này hoạt động tốt mà không có các giao dịch phân tán vì quá trình chuyển không phải diễn ra trong (gần) thời gian thực Các giao dịch phân tán thường rất quan trọng trong các tình huống mà việc cập nhật hoàn chỉnh phải được thực hiện ngay lập tức

II Nhân bản và thống nhất hệ thống

1 lý do tạo bản sao

- Tăng hiệu xuất

- Tăng độ tin cậy

2 Nhất quán dữ liệu

- Bảo đảm tất cả dữ liệu giống nhau tại mọi site ở bất kì thời điểm

- Tất cả giao dịch thực hiện tại một site duy nhất

Trang 3

Có 2 loại :

Nhất quán lập tức (Immediate Transactional Consistency hay Tight

Consistency):

Ở kiểu này, tất cả các site được bảo đảm là luôn thấy cùng giá trị dữ liệu tại cùng một thời điểm Cách duy nhất để đạt được nhất quán giao dịch (transactional consistency) trong môi trường cập nhật phân tán (distributed update environment) là sử dụng 2-phase commit protocol giữa tất cả site tham gia (participating site) Mỗi site phải commit đồng thời mọi thay đổi hoặc không site nào commit những thay đổi Giải pháp này rõ ràng không khả thi khi số lượng site quá lớn

Nhất quán ngầm (Latent Transactional Consistency hay Loose

Consistency) :

Có một sự nhất quán ngầm giữa các site tham gia do có một sự trì hoãn trong việc phản ánh các giá trị dữ liệu đến các site tham gia và vào lúc này các site không bảo đảm có cùng giá trị dữ liệu Việc sửa đổi các giá trị dữ liệu có thể bị trì hoãn đủ lâu để tất cả các site cùng cập nhật, sau đó tất cả các site sẽ có cùng giá trị dữ liệu Ngoài ra các giá trị dữ liệu này cũng phải giống với những giá trị đạt được khi thực hiện các công việc tại một site.Sự khác nhau duy nhất giữa nhất quán giao dịch lập tức và nhất quán giao dịch ngầm là dữ liệu có nhất quán tại cùng một lúc hay không

2 Các mô hình sao lưu hướng dữ liệu

● Đây là kiểu mô hình sao lưu được sử dụng rộng rãi nhất

● Trong kiểu mô hình này, bất kì người sử dụng nào truy cập vào kho

dữ liệu cũng sẽ nhìn thấy các thao tác được sắp xếp theo mô hình

● Điều này trái ngược với các mô hình sao lưu hướng client (mình sẽ nói sau) nơi client được yêu cầu một mô hình sao lưu cụ thể và các client khác nhau sẽ nhìn thấy các thao tác theo những trật tự khác nhau

● Kho dữ liệu có thể được đọc hay ghi bởi bất cứ tiến trình nào trong một hệ phân tán

● Tuy nhiên dữ liệu ghi vào một bản sao cục bộ phải đảm bảo cũng được truyền tới tất cả các bản sao ở xa

● Vì nguyên nhân này mà các mô hình thống nhất đã ra đời, mục đích là để giúp ta có thể hiểu rõ về các cơ chế khác nhau được sử dụng để thực hiện phần việc này

● Một mô hình thống nhất có thể được coi là một bản hợp đồng giữa một kho dữ liệu của hệ phân tán với các các tiến trình của nó Nếu các tiến trình đồng ý với các điều khoản của hợp đồng thì kho dữ liệu sẽ hoạt động đúng như tiến trình mong muốn

2.1 Mô hình thống nhất liên tục

Trang 4

Mô hình này hoạt động dựa trên việc xác định xem việc ko thống nhất nào là có thể chấp nhận được dựa vào việc xác định các thông tin sau:

● Độ lệch bằng số giữa các bản sao

● Độ lệch theo trạng thái giữa các bản sao

● Độ lệch trong thứ tự các lần cập nhật

Như vậy trong hệ thống sẽ quy định một độ lệch giữa các bản sao

Nếu một phiên bản được cập nhật mà độ lệch chưa đạt tới giá trị quy định thì giữa bản sao đó và các bản sao khác vẫn được coi là thống nhất và ko phải thực hiện cập nhật

Độ lệch bằng số giữa các bản sao:

o Thường sử dụng với các chương trình có dữ liệu là số

o Có 2 dạng của độ lệch này là: độ lệch tương đối và độ lệch tuyệt đối

o Có thể xác định số này là số lượng bản cập nhật cho 1 bản sao nào đó

Độ lệch về trạng thái giữa các bản sao:

o Liên quan đến thời gian cuối cùng 1 bản sao đã được cập nhật

o Với 1 số ứng dụng thì nó có thể chấp nhận dữ liệu cũ , miễn

là ko quá cũ

o Ví dụ: trong dự báo thời tiết , máy chủ liên tục nhận được các thông tin về thời tiết nhưng chỉ đồng bộ 30’/lần …

Độ lệch trong thứ tự cập nhật:

o Thứ tự cập nhật được phép khác nhau ở các bản sao khác nhau khi sự khác nhau vẫn trong giới hạn

o Khi nhận được yêu cầu cập nhật thì bản sao tạm thời cập nhật và chờ sự đồng ý của các bản sao khác về quá trình cập nhật

o Như vậy cần có thêm 1 bản sao phụ để nếu không nhận được

sự đồng ý cập nhật của các bản sao khác thì quay lại bản cũ

o Có thể sau nhiều lần cập nhật tạm thời thì bản sao mới được cập nhật lâu dài

=> Tóm lại , các bản sao có thể vẫn được sử dụng nếu sự khác nhau vẫn nằm trong giới hạn được chấp thuận Nói một cách khác

là khi 1 bản sao được cập nhật thì nó sẽ chờ để được xác nhận

Trang 5

trước khi cập nhật lên tất cả các bản sao khác => thứ tự cập nhật rắc rối Cách làm này cần lưu trữ thêm 1 bản để có thể quay lại nếu bản cập nhật không được chấp thuận

2.2 Mô hình thống nhất theo thứ tự thao tác

● Truy cập tương tranh đến các tài nguyên chia sẻ

● Tài nguyên chia sẻ là dữ liệu được sao lưu

● Mạnh hơn mô hình liên tục

● Khi thực hiện cập nhật, thứ tự cập nhật được thống nhất giữa các bảo sao

2.2.1 Thống nhất chặt

Là mô hình thỏa mãn điều kiện sau:

● Thao tác đọc bất kỳ trên mục dữ liệu x đều trả về một giá trị tương ứng với kết quả của thao tác ghi gần nhất trên x đó

● Sử dụng khái niệm thời gian tuyệt đối

● Thời gian tuyệt đối này là tổng thể cho cả hệ thống để xác định đúng khái niệm "gần nhất" => Điều này là khó khả thi với hệ phân tán

● Các kí hiệu:

o Wi(x)a: thao tác ghi được thực hiện bởi tiến trình P(i) lên mục dữ liệu x với giá trị a

o Ri(x)b: thao tác đọc được thực hiện bởi tiến trình P(i) lên mục dữ liệu x cho kết quả b

o Giá trị khởi tạo của các dữ liệu là NIL (x = null)

Do việc lan truyền cục bộ của P1 chưa tới P2 nên P2 đọc dữ liệu x vẫn là giá trị null ban đầu => Mô hình này là không khả thi

2.2.2.Thống nhất tuần tự

● Là mô hình lỏng lẻo hơn, yếu hơn mô hình thống nhất chặt

● Các tiến trình đều có một chuỗi thao tác cục bộ

● Nó thỏa mãn các yêu cầu sau:

Trang 6

o Kết quả của sự thực hiện bất kỳ là như nhau nếu thao tác đọc

và ghi do các tiến trình thực hiện trên kho dữ liệu một cách tuần tự và các thao tác của mỗi tiến trình xuất hiện trong chuỗi thao tác này chỉ ra bởi chương trình của nó

o Khi các tiến trình chạy đồng thời trên các máy khác nhau thì cho phép sự đan xen của các thao tác nhưng tất cả các tiến trình đều phải nhận biết được sự đan xen của các thao tác đó

là như nhau

● Tất cả các tiến trình đều nhìn thấy một thứ tự của các thao tác ghi

● (a) Mô hình nhất quán tuần tự

● (b) Không là mô hình nhất quán tuần tự

2.2.3 Thống nhất tuyến tính

● Là mô hình yếu hơn mô hình thống nhất chặt nhưng mạnh hơn mô hình thống nhất tuần tự

● Mô hình này thỏa mãn điều kiện sau:

o Kết quả của bất kì sự thực hiện nào là như nhau nếu các thao tác (đọc và ghi) của tất cả các tiến trình lên dữ liệu được thực hiện môt cách tuần tự và các thao tác của mỗi tiến trình xuất hiện trong chuỗi thao tác này phải theo thứ tự đã được chỉ ra trong chương trình của nó

2.2.4 Thống nhất nhân quả

● Đây là mô hình lỏng lẻo hơn mô hình thống nhất tuần tự

● Mô hình này phân biệt các sự kiện có quan hệ nhân quả và các sự kiện không có quan hệ nhân quả

● Nếu sự kiện b được gây ra hoặc bị tác động bởi một sự kiện a xảy

ra sớm hơn thì tính nhân quả đòi hỏi mọi thực thể khác phải "nhìn" thấy a trước rồi mới thấy b sau

● Các thao tác ghi đồng thời có thể được nhận biết theo thứ tự khác nhau trên những máy khác nhau

Trang 7

● Hai thao tác ghi được coi là có quan hệ nhân qủa với nhau nếu việc thực hiện một thao tác có khả năng gây ảnh hưởng đến dữ liệu được ghi bởi thao tác kia

● Mô hình thống nhất nhân quả thỏa mãn các điều kiện sau:

o Một thao tác đọc có quan hệ nhân quả với thao tác ghi cung cấp dữ liệu cho nó

o Một thao tác ghi có quan hệ nhân quả với một thao tác đọc xảy ra trước nó trong cùng một tiến trình

● Nếu các thao tác không có quan hệ nhân quả với nhau thì chúng được coi là xảy ra đồng thời

● Các thao tác đọc đồng thời có thể được thực hiện theo bất kì trật tự nào miễn là chúng tuân theo trình tự của chương trình

2.2.5 Thống nhất FIFO

● Thống nhất FIFO còn được gọi là nhất quán PRAM

● Đây là mô hình yếu nhất vì mô hình này bỏ qua giới hạn về trật tự của bất kì thao tác đồng thời nào

● Mô hình thỏa mãn điều kiện:

o Các thao tác ghi bởi một tiến trình đơn phải được tất cả các tiến trình khác nhìn thấy theo cùng một trật tự mà chúng đề ra

o Nhưng thao tác ghi bởi nhiều tiến trình khác nhau có thể được thấy theo những trật tự khác nhau bởi các tiến trình khác nhau

2.2.6 Thống nhất yếu

Trang 8

● Mô hình này không tập trung vào các thao tác trên dữ liệu mà chúng quan tâm đến trật tự các nhóm lệnh bằng việc sử dụng các biến được đồng bộ

● Mô hình có ba đặc tính sau:

o Việc truy cập đến một biến đồng bộ hóa được kết hợp với kho dữ liệu là một thống nhất tuần tự

o Không có thao tác nào lên các biến đồng bộ hóa được phép thực hiện cho đến khi tất cả các thao tác ghi trước đó được hoàn thành ở mọi nơi

o Không có thao tác đọc hay ghi dữ liệu lên các mục dữ liệu nào được phép thực hiện cho đến khi tất cả các thao tác trước đó lên các biến đồng bộ hóa được thực hiện

● (a) Mô hình nhất quán yếu

● (b) Không là mô hình nhất quán yếu

2.2.7 Thống nhất đi ra (Release consistency)

● Sử dụng thêm hai lệnh:

o Lệnh acquired: để báo muốn vào vùng tới hạn (critial

region)

o Lệnh release: để báo giải phóng vùng tới hạn.

● Hai lệnh này cũng có hai cách thực thi khác nhau như: bằng một biến hoặc bằng một lệnh đặc biệt

● Hai thao tác này chỉ thực hiện với các dữ liệu dùng chung chứ không áp dụng cho tất cả các dữ liệu

● Điều kiện thỏa mãn:

o Trước khi thực hiện một thao tác đọc hay ghi lên dữ liệu chia

sẻ thì tất cả các thao tác acquire do tiến trình này thực hiện trước đó phải hoàn tất

o Trước khi một thao tác release được phép thực hiện thì tất cả các thao tác đọc và ghi do tiến trình này thực hiện trước đó phải được hoàn tất

Trang 9

o Truy cập vào các biến đồng bộ hóa là nhất quán FIFO

(Không yêu cầu nhất quán tuần tự)

2.2.7 Thống nhất đi vào (Entry consistency)

● Giống mô hình thống nhất đi ra, mô hình thống nhất đi vào cũng sử

dụng hai lệnh acquired và release khi muốn sử dụng vào vùng tới

hạn

● Tuy nhiên các lệnh này thao tác trên từng mục dữ liệu của vùng dữ liệu chia sẻ Tiến trình nào muốn sử dụng mục dữ liệu thì phải đợi cho tất cả các tiến trình khác giải phóng mục dữ liệu đó

● Để ghi lên một mục dữ liệu, client phải có được biến đồng bộ hoá của mục đó trong chế độ dành riêng Điều đó có nghĩa là không client nào khác có thể sử dụng biến đó Khi client cập nhật xong mục dữ liệu, thì nó giải phóng biến đó

● Khi client muốn đọc một mục dữ liệu nào đó, nó phải có được biến đồng bộ hóa kết hợp ở chế độ không dành riêng

● Nhiều client có thể giữ một biến đồng bộ hóa ở chế độ không dành riêng

● Khi thực hiện một thao tác acquire, client lấy về phiên bản mới nhất của mục dữ liệu từ tiến trình cuối cùng thực hiện thao tác acquire trên biến đó

● Điều kiện sau:

o Một thao tác acquire để truy cập vào một biến đồng bộ hóa không được phép thực hiện trong một tiến trình cho đến khi tất cả các cập nhật lên mục dữ liệu trong tiến trình đó được thực hiện

o Trước khi một truy cập trong chế độ dành riêng của một tiến trình tới một biến đồng bộ hóa được phép thực hiện thì không tiến trình nào khác còn được giữ các biến đồng bộ hóa, trong chế độ không dành riêng thì không cần yêu cầu như vậy

o Sau khi một truy cập trong chế độ dành riêng lên một biến đồng bộ hóa được thực hiện thì bất kì sự truy cập của tiến trình nào khác trong chế độ không dành riêng lên biến đó cũng không được thực hiện cho đến khi chủ nhân của biến đồng bộ thực hiện xong việc truy cập của mình

Trang 10

III Các dịch vụ hệ thống

1 Hadoop là gì?

Hadoop là một Apache framework mã nguồn mở cho phép phát triển các

ứng dụng phân tán (distributed processing) để lưu trữ và quản lý các tập

dữ liệu lớn Hadoop hiện thực mô hình MapReduce, mô hình mà ứng dụng sẽ được chia nhỏ ra thành nhiều phân đoạn khác nhau được chạy song song trên nhiều node khác nhau Hadoop được viết bằng Java tuy nhiên vẫn hỗ trợ C++, Python, Perl bằng cơ chế streaming

Hadoop giải quyết vấn đề gì?

● Xử lý và làm việc khối lượng dữ liệu khổng lồ tính bằng

Petabyte

● Xử lý trong môi trường phân tán, dữ liệu lưu trữ ở nhiều phần cứng khác nhau, yêu cầu xử lý đồng bộ

● Các lỗi xuất hiện thường xuyên

● Băng thông giữa các phần cứng vật lý chứa dữ liệu phân tán có giới hạn

Kiến trúc Hadoop là gì?

Một cụm Hadoop nhỏ gồm 1 master node và nhiều worker/slave node Toàn bộ cụm chứa 2 lớp, một lớp MapReduce Layer và lớp kia là HDFS Layer Mỗi lớp có các thành phần liên quan riêng Master node gồm JobTracker, TaskTracker, NameNode, và DataNode Slave/worker node gồm DataNode, và TaskTracker Cũng có thể slave/worker node chỉ là dữ liệu hoặc node để tính toán

2.Hadoop Distributed File System (HDFS)

Đây là hệ thống file phân tán cung cấp truy cập thông lượng cao cho ứng

dụng khai thác dữ liệu Hadoop Distributed File System (HDFS) là hệ

thống tập tin ảo Khi chúng ta di chuyển 1 tập tin trên HDFS, nó tự động chia thành nhiều mảnh nhỏ Các đoạn nhỏ của tập tin sẽ được nhân rộng

và lưu trữ trên nhiều máy chủ khác để tăng sức chịu lỗi và tính sẵn sàng cao

Ngày đăng: 24/02/2023, 13:23

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w