Điều khiển đồng bộ và giao dịch
Điều khiển các giao dịch được phát triển cho vấn đề quản lý dữ liệu nhưng chúng ta có thể áp dụng cho việc quản lí hệ thống file phân tán. Trong phần này chúng ta thảo luận xem các giao dịch có thể thực hiện như thế nào trong hệ phân tán đặc biệt là trong hệ ...
Điều khiển các giao dịch được phát triển cho vấn đề quản lý dữ liệu nhưng chúng ta có thể áp dụng cho việc quản lí hệ thống file phân tán. Trong phần này chúng ta thảo luận xem các giao dịch có thể thực hiện như thế nào trong hệ phân tán đặc biệt là trong hệ thống file phân tán.
Hình 6.6 mô tả cấu trúc đơn giản của hệ xử lí giao dịch phân tán. Khách tại mỗi vị trí phân tán đưa ra yêu cầu dịch vụ giao dịch đối với hệ xử lí giao dịch cục bộ (TPS), hệ này gồm ba thành phần chính: quản lí giao dịch (TM), lập lịch (SCH), quản lí đối tượng (OM). Một giao dịch có thể thao tác trực tiếp trên những dữ liệu ở xa. Những thao tác này được thực hiện như những giao dịch phụ và được gửi tới những TPS ở xa. Việc quản lí những giao dịch liên quan tới nhứng TM khác xem như đó là sự thực hiện của cả giao dịch địa phương và cả những giao dịch phụ ở xa. Nhiệm vụ của quản lí kế hoạch là thao tác lập kế hoạch trên đối tượng để tránh xung đột. Việc quản lí đối tượng đảm bảo tính nhất quán cho việc nhân bản, lưu giữ và cung cấp giao diện cho hệ thống file. Chúng ta sử dụng cấu trúc đơn giản về dịch vụ giao dịch phân tán để địa chỉ hoá 3 yêu cầu cơ bản:
- Thực hiện tập các thao tác trong mỗi giao dịch là toàn bộ hoặc không.
- Thực hiện giao dịch xen kẽ thực hiện giao dịch khác là không bị chia cắt,
- Cập nhật đối tượng nhân bản là nguyên tử.
Giao thức thực hiện tất cả hoặc không và che giấu giao dịch phân tán thường phức tạp. Chúng ta có thể sử dụng hình 6.6 để minh hoạ như sự tiếp cận giải quyết. Việc tổng kết các chức năng này thể hiện qua 4 thực thể (xử lí khách, quản lí giao dịch, lập kế hoạch, quản lí đối tượng) và sự ảnh hưởng lẫn nhau giữa chúng.
Hệ thống xử lí giao dịch:
Xử lí đối với khách: một quá trình xử lí chỉ ra sự bắt đầu giao dịch bằng cách thông báo bắt đầu giao dịch tới Bộ quản lí giao dịch địa phương (TM). Khi nhận được yêu cầu trên TM sinh ra một giao dịch id và không gian làm việc cho khách với thao tác đọc ghi thường xuyên. Sự kết thúc giao dịch từ một khách tới TM chỉ ra khách đã sẵn sàng uỷ thác giao dịch và đang đợi TM để trở lại trạng thái uỷ thác ban đầu tại tất cả các TM có liên quan đến giao dịch này được xem như là việc uỷ thác hoặc dừng đã thành công. Giao thức được dùng chi tiết và cố định với quản lí giao dịch, kế hoạc và quản lý dữ liệu hoàn toàn dễ dàng với người dùng
Quản lý giao dịch (MT): MT tạo ra một giao dịch id và không gian làm việc thực hiện giao dịch khởi đầu của lient theo đó mỗi lần truy cập đòi hỏi một đối tượng dữ liệu đồng thời tạo ra số hiệu giao dịch id, gửi tới bộ quản lý kế hoạch. Kết quả truy cập trong không gian làm việc chỉ được nhận thấy bởi lient. Đây là pha thực hiện của giao dịch tại TM. Quản lí giao dịch biết được những giao dịch địa phương và những giao dịch phụ ở phía xa.
Truy cập từ TM được chấp nhận hoặc phản đối bởi bộ lập lịch (SCH).
Nếu chấp nhận sẽ thay đổi trạng thái của không gian làm việc và nội dung của lient để duy trì thuộc tính tất cả hoặc không phải có sự phản hồi tới TM để dừng thao tác bằng cách gửi đi một tín hiệu dừng với lient và tất cả bộ quản lý giao dịch khác có liên quan đến giao dịch đó nếu như không có tín hiệu dừng sẽ thực hiện hết giao dịch có nghĩa là tất cả quản lý giao dịch bao gồm có pha thực hiện, đọc, ghi và pha uỷ thác để quyết định xem giao dịch nào sẽ được uỷ thác và dùng. Điều này được thực hiện bởi giao thức uỷ thác 2 pha. Nếu như thành công thì việc cập nhật sẽ được thực hiện tại các OM và trạng thái được uỷ thác gửi tới lient, nếu không quản lý giao dịch sẽ dừng.
Lập lịch (SCH): SCH chọn ra giao thức điều khiển đồng bộ để đảm bảo cho sự thực hiện đồng bộ của các giao dịch tại các vị trí phân tán. Có 3 cách thức chính: ngăn ngừa, tránh, lỗi. Với cách thức ngăn ngừa tất cả các yêu cầu truy cập đối với một giao dịch có thể gây nên xung đột sẽ ngăn ngừa. Trách nhiệm TM là thay đổi giao dịch của trạng thái lient sang trạng thái ngừng, đặc biệt khoá được dùng cho cách thức này. Việc tránh thì bộ kế hoạch sẽ kiểm tra mỗi thao tác truy cập riêng rẽ xem thao tác nào sẽ được thực hiện. Cách thức phổ biến được dùng là tem thời gian. Bộ kế hoạch sẽ đưa ra quyết định dựa trên thứ tự của tem thời gian. Cách thức lỗi thì xung đột hoàn toàn không được quan tâm đến trong suốt quá trình thực hiện.
Quản lý đối tượng (OM): OM chịu trách nhiệm với các dịch vụ file về thao tác thực sự trên các dữ liệu, cung cấp quản lí bộ nhớ hiệu quả bằng giao thức phản hồi lỗi. Nếu đối tượng dữ liệu được nhân bản thì OM sẽ quản lí sự nhân bản bằng cách sử dụng giao thức quản lí.
Khái niệm giao dịch rất có ích đối với dữ liệu phức tạp trong hệ thống phân tán đa người dùng. Thuộc tính ACID đảm bảo rằng không có sự đối nghịch được gây nên bởi giao dịch khác hoặc lỗi hệ thống.
Mỗi giao dịch trong hệ thống dữ liệu bao gồm tuần tự các thao tác đọc ghi. Để tránh tình trạng hư hỏng dữ liệu phải khoá trước khi đọc, ghi. Hơn nữa thì thao tác đọc đồng bộ và thao tác ghi duy nhất phải đảm bảo khác biệt thì một khoá dungf chung được dùng cho đọc đồng thời và khoá duy nhất được dùng cho ghi. Tất cả các khoá phải được mở sau mỗi thao tác và trước khi kết thúc một thao tác. Nếu khoá không được dùng thao tác ghi có thể chỉ được thực hiện không dứt khoát.
Tất cả các thao tác trong tập hợp các giao dịch được sắp xếp thành lịch để thực hiện. Một lịch được gọi là liên tiếp nếu kết quả thực hiện diễn ra tuần tự theo lịch.
Giả sử có ba giao dịch : t0, t1, t2 đã được thực hiện, t1 và t2 là hai giao dịch khác cùng thực hiện.
t0: bt write A=100; write B=20; et
t1: bt read A; read B; 1: write sum in C; 2: write diff in D et
t2: bt read A; read B; 3: write sum in C; 4: write diff in D et
Có 3 giao dịch chia xẻ đối tượng dữ liệu định vị ở những vị trí khác nhau như ở hình 6.6. Thao tác (1,3) và 2,4) đều ghi dẫn tới xung đột trên C,D; các thao tác khác không có xung đột. Có khả năng chèn vào thao tác 4.
Nếu t1, t2 thực hiện liên tiếp thì để hoàn thành (C,D) sẽ là (80,120) hoặc (120,80). Với Wi trên đối tượng tại C,D là thao tác ghi. Việc cập nhật sẽ được ghi nhớ và được ghi tại mỗi vị trí.
Bảng 6.1. Lập lịh xếp chèn
Lịch | Xếp chèn | Đăng nhập tại C | Đăng nhập tại D | HàmResult (C,D) | 2PL | Tem thời gian |
1 | 1,2,3,4 | W1 = 120W2 = 80 | W1 = 80W2 = 120 | (80,120)nhất quán | khả thi | khả thi |
2 | 3,4,1,2 | W1 = 80W2 = 120 | W1 = 120W2 = 80 | (120, 80)nhất quán | khả thi | t1 bỏ dở và bắt đầu lại |
3 | 1,3,2,4 | W1 = 120W2 = 80 | W1 = 80W2 = 120 | (80,120)nhất quán | khôngkhả thi | khả thi |
4 | 3,1,4,2 | W1 = 80W2 = 120 | W1 = 120W2 = 80 | (80, 80)nhất quán | khôngkhả thi | t1 bỏ dở và làm lại |
5 | 1,3,4,2 | W1 = 120W2 = 80 | W1 = 120W2 = 80 | (80, 80)không nhất quán | khôngkhả thi | bỏ dở nhiều |
6 | 3,1,2,4 | W1 = 80W2 = 120 | W1 = 80W2 = 120 | (120,120)không nhất quán | khôngkhả thi | t1 bỏ dở và bắt đầu lại |
Có một số phương pháp chung đối với vấn đề điều khiển đồng bộ nhờ vậy có thể những mâu thuẫn được ngăn ngừa hoặc tránh được hoặc tính tương thích có thể có lỗi. Trong phần này chúng ta thảo luận phương thức khoá 2 pha, tem thời gian và điều khiển đồng bộ tối ưu, đó là một số phương pháp.
Khoá 2 pha
- Sử dụng phương thức khoá có nghĩa các đối tượng bị chia xẻ đạt được tính trong suốt phải được khoá khi chúng có thể được truy cập và phải được tự do trước khi kết thúc thời gian truy cập. Khoá 2 pha thêm đòi hỏi một khoá mới không thể được yêu cầu sau khi lần mở đầu tiên của khoá. Một quá trình được chia thành 2 pha: một là khoá đối tượng và một pha mở. Một trường hợp của phương thức khoá 2 pha là khoá tất cả các đối tượng dữ liệu ở thời điểm bắt đaàu của quá trình và mở khóa ở thời điểm kết thúc của quá trình. Chuỗi những quá trình lặp lại bởi chỉ có những quá trình nào thuận lợi mới tham gia thực hiện. Phương pháp được dùng đối với những dữ liệu đơn giản mà không phải cho tất cả vì nó không đáp ưngs được về vấn đề chia xẻ dữ liệu cũng như đồng bộ. Một bước cải tiến là mở khoá ngay trong những điều kiện có thể. Tuy nhiên cách thức vẫn được làm là mở khoá ngay tại thời điểm giao thời. Khoá 2 pha được thực hiện như chuỗi quá trình có thể được xem xét ở trên. Nếu quá trình t1 đòi hỏi đối tượng C để cho thao tác 1 đối tượng sẽ không được mở chỉ sau khi 2 đã hoàn thành. Khi đó có thể thao tác 3 tại thời điểm t2 xuất hiện giữa thao tác 1 và 2. Tương tự thời điểm t2 chứa khoá của đối tượng C đầu tiên thao tác 1 trong thời điểm t1 không thể được thực hiện giữa thao tác 3 và 4. Để cập nhật đối tượng D cũng tương tự như đối với C. Điều này có nghĩa danh mục 3,4,5 và 6 trong bảng 6.1 là không khả thi nếu t1 và t2 thực hiện theo phương thức 2PL. Danh mục kết quả được giới hạn đối với danh mục 1 và2. Vì vậy khoá 2 pha không đem lại tính đồng bộ cho xử lí chuối quá trình.
Khoá đối tượng này và đợi đối tượng khác là bế tắc trong bất kì hệ thống nào. Nếu thao tác 3 và 4 là được duy trì tại thời điểm t2 có thể tại thời điểm t1 có thể đang thao tác với đối tượng C và đợi D trong thời điểm t2 đang thao tác với D và đợi C. Kết quả là bế tắc đợi và lưu vòng tròn.
Dường như TM sẽ có những cách thức mở khoá ngay sau khi có thể. Ngay khi biết rằng khoá cuối cùng đã được mở và dữ liệu không thể được truy cập lần nữa. Tuy nhiên có nhiều những khó khăn đối với phương thức này. Trước hết chúng ta có thể gặp phải sự dừng chương trình vòng tròn. Cứ cho rằng thời điểm t1 xử lý với dữ liệu C và mở khoá đối với C, bước tiếp thời điểm t2 đọc giá trị trên C. Nếu thời điểm t1 dừng thì t2 cũng phải dừng bởi vì t2 đã đọc dữ liệu. Sự dừng t2 dừng t3 và các thời điểm khác. t2 có thể uỷ thác chỉ khi t1 uỷ thác, và t2 đã độc lập với t1. Sự độc lập về quyền uỷ thác phải được xem xét tức là sự uỷ thác của t2 phải đợi cho đến khi t1 thực hiện điều đó rồi.
Vấn đề trên có thể đuợc giải quyết bằng việc sử dụng khoá 2 pha nghiêm ngặt. Một giai đoạn chỉ có thể được mở tại điểm uỷ thác hoặc tại thời điểm dừng. Với hệ thống khoá 2 pha khó có thể thực hiện do không nghiêm ngặt vì TM không biết khi nào thì khoá cuối cùng mở. Khoá 2 pha nghiêm ngặt chưa thật sự đem lại sự thực hiện một cách đồng bộ hoàn hảo song đã đơn giản hơn trong thực hiện.
Tem thời gian
Trình tự các thao tác ma khoá 2 pha đem lại đối với những đối tượng dữ liệu chia xẻ là từ khoá đầu tiên. Hiển nhiên chúng ta đã xem xét nhiều ứng dụng của tem thời gian đối với thứ tự sự kiện. Có những xung đột giữa các thời điểm cũng nảy sinh với các tem thời gian. Chúng ta giả sử rằng t0, t1, t2 ở ví dụ trước đại diện cho 3 thời điểm với t0<t1<t2 khi một thao tác xử lí trên đối tượng dữ liệu chia xẻ là được thực hiện, đối tượng ghi thời gian thực hiện. Cho rằng sau đó thì những quá trình khác cũng thao tác trên dữ liệu. Nếu quá trình có thời gian lớn hơn thì ta để cho quá trình đó thực hiện. Nếu QT có thời gian nhỏ hơn chúng ta phải dừng vì nếu không nó sẽ vượt quá thời gian. QT bị dừng sẽ bắt đầu lại thực hiện với thời gian lớn hơn.
Để thao tác một có tranh chấp tới QT xử lý có nghĩa thao tác được phép đợt đến lượt. QT với tem thời gian lớn hơn sẽ đợi nhỏ hơn và QT với tem thời gian nhỏ hơn dừng và thực hiện khi chúng tiến đến QT có thời gian lớn hơn. Sự bế tắc được cởi bỏ bởi sự thực hiện của các QT dựa trên sự tăng dần của các tem thời gian bao hàm khả năng xảy ra tình trạng lưu và đợi. Sử dụng phương thức tem thời gian danh mục 1 và 3 trong bảng 6.1 là khả thi. Đối với danh mục 2,4 và 6 QT t1 là quá trình chậm để thao tác trên C. QT t1 bị dừng trước khi nó truy cập đến D. Với tem thời gian lớn hơn cũng sẽ được thực hiện tương tự như 1 và 3.
Với danh mục 5 thì phức tạp hơn. Thao tác 1,3 và 4 thực hiện không có vấn đề gì nhưng với 2 thao tác trên D trong QT t1 xem xét dựa trên tem thời gian lớn hơn được ghi bởi QT t2 thao tác trên D. Để dừng QT t1 chúng ta cũng phải vô hiệu hoá thao tác của nó trên C. Chẳng hạn đối tượng C xem như được thực hiện với t1 rồi t2 của thao tác 3 gây ra không hiệu quả đối với t2. Tuy nhiên, nếu thao tác s3 là đọc dữ liệu t2 sẽ đọc dữ liệu mà không ảnh hưởng tới nó. Do vậy t2 cũng sẽ bị dừng, Để tránh sự mất đi đặc tính độc lập, thao tác đọc và ghi phải được độc lập với nhau và thao tác ghi chỉ có thể chậm hơn trước thời điểm uỷ thác để đảm bảo tính độc lập. Thao tác ghi được duy trì bởi danh mục SCH.
Để thực hiện giao thức với thao tác ghi chậm mỗi đối tượng được gắn kết với một tem thời gian logic chỉ cho thấy rằng thời gian do dự được rút ngắn dần theo thứ tự giảm dần và Tmin là thời gian nhỏ nhất. Không cần thiết cho thời gian đọc do dự nhưng mỗi đối tượng phải được lưu giữ theo mỗi QT đọc coót để khi có một sự uỷ thác thời điểm sớm nhất có thể được ghi như là RD mới.
Hình 6.7 cho thấy diễn biến tuần tự diễn ra. Giao thức uỷ thác 2 pha thứ tự theo gói thời gian chỉ với WR và Tmin được mô tả các QT đọc, ghi, dừng và uỷ thác
Đọc: Thao tác đọc này không ảnh hưởng tới thao tác đọc khác. Vì vậy thời gian của nó được so sánh với WR và Tmin. Thao tác bị dừng để duy trì cho thứ tự gói thời gian tăng dần nếu thời gian của nó nhỏ hơn Wr. Nó cho phép xử lí với thời gian lớn hơn WR nhưng nhỏ hơn Tmin. QT đọc được khởi tạo lại trong không gian làm việc của TM và quay về máy Khách. Một đối tượng có thể thực hiện thao tác ghi lưỡng lự khi thao tác đọc thực hiện (thời gian của thao tác đọc lơn hơn Tmin). Thao tác đọc được nhận thấy trong danh sách và đợi cho đến khi thao tác ghi uỷ thác cho nó.
Ghi: một thao tác ghi ảnh hưởng tới cả đọc và ghi. Vì vậy nó chỉ được phép do dự khi gói thời gian lớn hơn cả RD và WR. Thao tác do dự này được lưu vào trong danh sách do dự. Điều hành các QT được xem là thành công hay thất bại của các thao tác ghi trước.
Dừng: Việc dừng thao tác đọc không ảnh hưởng tới QT khác OM được xem như là đợi đọc. Nếu việc ghi dừng để ghi vào danh sách do dự. Nếu đến đỉnh của danh sách thì thao tác đọc được thực hiện.
Uỷ thác: Sự uỷ thác chỉ được xem xét chỉ sau khi sự thành công của sự uỷ thác trong TM. Sự uỷ thác cho một QT đợi để đọc có thể không bao giờ xảy ra vì QT bị kết khối. Đối với quá trình uỷ thác chỉ liên quan đến thao tác đọc OM ghi thời gian thực hiện của RD như là RD mới. Nếu QT uỷ thác đã thực hiện một thao tác ghi SCH dừng tất cả các thao tác (cả đợi đọc và ghi) đầu của QT được uỷ thác kéo dài quá trình cập nhật và loại bỏ khỏi danh sách ngừng trệ. Việc này cho phép thao tác đọc đang đợi tiến hành. Cập nhật thường xuyên gọi là sự điều khiển định danh nếu bản sao của những đối tượng tồn tại.
Điểm chú ý cuối cùng của bài toán điều khiển đồng bộ theo phương thức gói thời gian là về về tính phức tạp vì có nhiều QT chạy ở cùng một thời điểm. Giao thức uỷ thác sử dụng ví dụ này như là dẫn chững có thể dẫn đến bế tắc khi TM không thể tiếp nhận hầu hết những điều kiện cần thiết từ TM khác. Gói thời gian có thể được dùng để giải quyết những vấn đề liên quan đến uỷ thác.
Điều khiển đồng thời tối ưu
Điều khiển đồng thời (ĐKĐT) dùng khoá là không tối ưu do xuất hiện những chuỗi những sự kiện. Điều khiển theo tem thời gian thì có phần tối ưu và cho phép các QT thực hiện dễ dàng. Có xuất hiện kết khối vì vậy một số đòi hỏi phải được đáp ứng. Chúng có thể cải tiến để cho phép toàn bộ QT được hoàn thành và làm cho những QT này trở nên có hiệu quả trước khi có những ảnh hưởng lâu dài. Giả thiết rằng khoảng rỗi chứa những phiên bản của dữ liệu chia xẻ có sẵn ở mỗi QT. Vì phương thức này cho thấy xung đột ít xuất hiện có thể không xuất hiện nên nó được gọi là điều khiển đồng bộ tối ưu.
Với 2PL và tem thời gian tác hoạt được chia thành 2 giai đoạn là pha thực hiện và pha uỷ thác. Hệ thống xử lí các QT bắt buộc hoặc giải quyết tính tương thích trong giai đoạn thực hiện và làm cho chúng thành nhân tố cơ bản trong giai đoạn sau. Đối với điều kiện bài toán đồng bộ tối ưu sẽ không có tính nhất quán cho đến khi kết thúc QT. Tại thời điểm TM bắt đầu pha hợp thức. Một QT được hợp thức toàn bộ giữa thời điểm TM bằng việc dùng giao thức uỷ thác 3 pha. Sau khi hoàn thành thì TM chuyển sang pha cập nhật để thực hiện một số htay đổi tỏng bộ nhớ. Vì điều đó không có nghĩa đối với những QT đã được hoàn thành chúng ta giả sử rằng với mỗi tiến tình đã được hợp thức nó phải đảm bảo đã được uỷ thác. Điều này có nghĩa tất cả mọi sự uỷ thác đều phải thực hiện sau thời điểm hợp thức. Vì vậy pha cập nhật phải là cơ bản. Giao thức điều khiển tối ưu có 3 pha: thực hiện, hợp thức và tiếp cận. Mỗi QT ti được gắn với gói thời gian Tsi ở thời điểm bắt đầu của QT và gói thời gian Tvi ở thời điểm của pha hợp thức. Mọi đối tượng Oj ghi thời điểm đọc cuối cùng và thao tác ghi như TDJ và WRj được gọi là số hiệu phiên của Oj. Tập hợp dữ liệu được đọc bởi QT t1 trong pha thực hiện được thiết lập bởi Ri. Dữ liệu được thiết lập do ghi và Wi. Chuỗi các QT là TV của pha hợp thức.
Pha thực hiện: Bắt đầu TM khi nhận được tín hiệu bắt đầu từ máy Khách. Một không gian được tạo ra cho mỗi QT. Chúng ta giả thiết rằng được quản lí bởi TM hơn là phân tán ra các vị trí khác. Phiên bản của dữ liệu với số hiệu của nó được đọc vào vùng không gian đó nơi diễn ra thao tác cập nhật tương tự như đối với dùng phiên của file. Việc ngừng được đưa ra bằng việc xoá bỏ đi QT cũng như vùng không gian. Vì xuất hiện dấu hiệu yêu cầu được uỷ thác nên QT kết thúc. Và chuyển sang pha hợp nhất.
Pha hợp nhất: Các QT phải được nhất quán giữa QT được yêu cầu với những QT được phân tán khác đang được thực hiện tại những vị trí TPS tạo tành chuỗi. Để hợp nhất hiệu quả Tm sử dụng giao thức hợp nhất 2 pha với nó như là sự liên kết. Các thông số Ri, WI và Tvi cho QT t1 để yêu cầu TM hợp nhất. QT bao gồm các bước sau.
-Tính nhất quán của Ti được phản hồi nếu Tvi<TVk tất cả đều phải thực hiện liên tục với TV.
- Ti được chấp nhận nếu nó không vượt quá bất kì Tk nào. Ti liên quan đến Tk.
- Pha thực hiện của Ti phủ lên pha cập nhật của Tk và Tk hoàn thành pha cập nhật trước Tvi. Sự hợp thức của Ti được chấp nhận nếu Ri giao với Wk=rỗng.
- Pha thực hiện của Ti phủ lên sự hợp nhất và pha cập nhật của Tk và hoàn thành sự thực thi của nó trước Tsi. Sự hợp nhất của Ti được chấp nhận nếu Ri giao Wi=rỗng và Wi giao Wk=rỗng.
Các trường hợp trên được minh hoa ở hình 6.8. Vì Tvi phải >TVk và Tk phải xong trước Tk. Nếu cả 2 đều không thoả mãn những xung đột chỉ được kiểm tra đồng bộ với Wk của Tk. Trường hợp 3 nói rằng Tk sẽ hoàn thành. Nếu giao của thao tác đọc là Ti và ghi là Tk không xảy ra Ti có thể đã đọc một số dữ liệu đang được cập nhật bởi Tk. Xung đột phải xảy ra trong trường hợp 4 vì Tk có thể đã thành công. Thêm vào đó giao của thao tác ghi Ti và Tk phải không có. Vì vậy thời điểm cập nhật của Tk có thể ảnh hưởng tới thời điểm cập nhật của Ti. Giai đoạn hợp nhất phải được sẵn sàng cho sự uỷ thác của bộ lưu trữ.
Hợp nhất liên quan đến sự tính toán. Đối với sự thực hiện đơn giản hơn ta giả sử rằng mỗi quá trình chỉ có một sự hợp nhất. Nếu có đòi hỏi có sự quản lí trong tiến hành hợp nhất đáp lại là trạng thái bận tới TM. Đòi hỏi của Tm không thực hiện nữa đã và sẽ tiếp tục lại. Sẽ xuất hiện số hiệu cho đối tượng dữ liệuu chia xẻ nhưng ở xa. Nó được so sánh với Tvi. Với WR phải nhỏ hơn Tvi của ti. Các QT phải đợi đến pha cập nhật cùng với hợp nhất của mỗi thời điểm Tm và khoảng không gian là thích hợp.
Pha cập nhật: Pha hợp nhất đối với bài toán điều khiển đồng bộ tối ưu tương tự như thời điểm ghi lại của phương thức gói thời gian. Pha cập nhật cũng tương tự như pha uỷ thác nhưng có một số điểm khác nhau chính sau. Thời điểm ghi thăm dò có thể dừng trong khi sự hợp nhất không thể không diễn ra. Cập nhật phải được uỷ thác trong thời gian TV cho QT của nó. Hoặc là không đáng được hoặc là không cần thiết để hoàn thành QT hợp thức cho đến khi xong giai đoạn cập nhật. Vì QT đã xong và việc quản lí khong gian nhớ có thể thực hiện được để những phiên bản dùng cho về sau. Vấn đề có thể được giảm bớt giả thiết rằng quản lí việc cập nhật có thể được tiến hành liên tục theo chuỗi bởi TM.
Giao thức điều khiển đồng bộ tối ưu đòi hỏi qá hợp thức và uỷ thác cho mọi QT là phức tạp. Dường như không tính đơn giản của nó.