Trong cách dùng khóa chốt, việc đồng bộ hóa giao dịch sử dụng các khóa chốt vật lý hoặc logic trên một phần của CSDL.
Khóa tập quyền: một trong các vị trí của mạng được chỉ định làm vị trí chính, ở đó lưu trữ các bảng khóa cho toàn bộ CSDL và chịu trách nhiệm trao khóa cho các giao dịch
Khóa bản chính thì ngược lại. Một trong các bản sao của mỗi đơn vị khóa được chỉ định làm bản chính, và nó là bản sẽ bị khóa khi giao dịch truy xuất đến đơn vị đó. Nếu CSDL không được nhân bản thì cơ chế khóa bản chính sẽ phân phối trách nhiệm quản lý khóa cho một số vị trí
Khóa phi tập trung: nhiệm vụ quản lý khóa là của tất cả các vị trí trong mạng. Mỗi bộ xếp lịch cục bộ chiụ trách nhiệm về các đơn vị
Trong lớp cơ chế theo timestamp ordering - TO, phải tổ chức thứ tự thực hiện các giao dịch nhằm duy trì được tính nhất quán tương hỗ giữa các vị trí. Việc xếp thứ tự này được duy trì bằng cách gán TO cho cả giao dịch lẫn mục dữ liệu trong CSDL. Có 3 loại thuật toán là loại TO cơ bản, TO đa phiên bản, TO bảo toàn.
Thuật toán điều khiển đồng thời bằng khóa chốt
Ý tưởng chính là đảm bảo dữ liệu dùng chung cho các thao tác tương tranh chỉ được truy xuất mỗi lần một giao dịch. Điều này được thực hiện bằng cách liên kết một khóa (lock) với mỗi đơn vị khóa. Khóa này được giao dịch đặt ra trước khi nó truy xuất và được điều chỉnh lại vào lúc kết thúc sử dụng đơn vị khóa. Một đơn vị khóa không thể truy xuất nếu nó đã bị khóa bởi một giao dịch khác. Một yêu cầu khóa giao dịch chỉ được giao nếu đơn vị đó không bị một giao dịch khác nắm giữ.
Việc đồng bộ hóa các thao tác tương tranh của các giao dịch đòi hỏi phải dùng có hai loại khóa là khóa đọc (rl) và khóa ghi (wl). Một giao dịch Ti muốn đọc một mục dữ liệu được chứa trong đơn vị khóa x sẽ nhận được một khóa đọc trên x, ký hiệu là rli(x). Tương tự với trường hợp ghi. Hai khóa là tương thích với nhau nếu hai giao dịch truy xuất đến cùng một mục dữ liệu có thể nhận được khóa trên mục dữ liệu đó cùng lúc. Ta thấy rằng, chỉ có hai khoá đọc mới có thể tương thích được, do các hoạt động đọc không quan tâm đến thứ tự. Còn lại giữa các khóa đọc ghi, ghi đọc, ghi ghi thì đều không tương thích.
Các DBMS phân tán không chỉ quản lý các khóa mà còn có trách nhiệm xử lý khóa cho các giao dịch. Người sử dụng sẽ không phải xác định khi nào cần khóa dữ liệu, DBMS sẽ lo liệu điều này mỗi khi giao dịch đưa ra yêu cầu đọc hoặc ghi. Trong hệ thống dùng khóa chốt, bộ SC chính là bộ quản lý khóa. Bộ quản lý giao dịch sẽ chuyển cho bộ quản lý khóa các thao tác CSDL đọc ghi, và các thông tin kèm theo. Sau đó, bộ quản lý khóa sẽ kiểm tra xem đơn vị khóa có chứa mục dữ liệu đang bị khóa không. Nếu có, và khóa đó không tương thích với khóa yêu cầu, thì giao dịch sẽ bị hoãn lại. Ngược lại thì khóa sẽ được đặt và thao tác được thực hiện. Sau đó bộ quản lý giao dịch được báo về kết quả thực hiện. Việc kết thúc giao dịch sẽ giải phóng khóa khỏi đơn vị khóa.
Quy tắc khóa hai pha (2PL) được phát triển cho cho trường hợp một giao dịch cần nhiều khóa. Nó yêu cầu một giao dịch không được giải phóng khóa cho đến khi nó đảm bảo rằng không còn yêu cầu thêm khóa nữa. 2PL gồm có hai pha, một pha tăng trưởng nhận các khóa, truy xuất các mục dữ liệu, và một pha
thu hồi, là giai đoạn giải phóng khóa. Điểm khóa là điểm giao dịch đã nhận được hết khóa, nhưng chưa giải phóng khóa nào. Tuy nhiên, do việc hủy bỏ dây chuyền nên sẽ xảy ra trường hợp tại thời điểm giải phóng khóa, giao dịch chưa thực hiện xong yêu cầu với mục dữ liệu. Vì vậy, một thuật toán chặt chẽ hơn là khóa chốt hai pha nghiêm ngặt đặt ra, cho phép có một khoảng thời gian để thực thi giao dich, rồi sau đó mới giải phóng đồng thới các khóa, đảm bảo thời gian vẫn là không đổi so với 2PL thường.
Bắt đầu Điểm khóa Kết thúc Thời gian giao dich Số
khóa
Bắt đầu Điểm khóa Kết thúc Thời gian giao dich Số khóa Nhận khóa Giải phóng khóa
Thời gian sử dụng dữ liệu