2.5.1 Khoảng trống miễn cưỡng trong bộ nờn delta
Như đọ mừ tả trong phần 2.2, thuật toõn tham lam của Tichy đọ đạt được kết quả trong một tập tuỳ ý nỏo đụ của khối di chuyển. Cõch di chuyển của cõc khối xõc định cõch mọ hoõ trong sự thực thị Trong phần 2.3, chỷng ta đọ bỏn về một sự thi hỏnh
dựa trởn khung LZ77. Tuy nhiởn, cõc thuật toõn nỏy cụ thể cho một sự thi hỏnh nghộo nỏn hơn khi gặp phải giới hạn về bộ nhớ trong cõc bộ xử lý nờn vỏ giải nờn. Đầu tiởn, chỷng ta thực hiện phờp nờn delta trong giới hạn về khừng gian vỏ thời gian, điều nỏy sẽ bị ảnh hưởng khi file fold vỏ fnew cụ kợch thước lớn. Một giải phõp đơn giản trong trường hợp nỏy lỏ cụ thể giới hạn sự tớm kiếm đối với cõc tiền tố dỏi nhất trong fold, cõc tiền tố nỏy đứng trước cõc điểm kết thỷc của cõc xóu đọ được mọ hoõ. Tuy nhiởn, cõc kết quả nỏy sẽ khừng đạt được mức ý nghĩa đụ khi cõc xóu con xuất hiện khừng cỳng thứ tự trong cả fold vỏ fnew.
Để giải quyết vấn đề đụ, người ta đưa ra một thuật toõn lỏ thuật toõn chỉnh sửa một bước. Thuật toõn sử dụng một buffer chứa tất cả cõc bản sao của yởu cầu, vỏ thực hiện sự chỉnh sửa trởn cõc yởu cầu nỏy sau khi sự phỳ hợp tốt nhất được tớm thấỵ Cụ 2 loại chỉnh sửa cụ thể lỏm. Chỉnh sửa đuừi (tail correction) được thực hiện sau khi insert 1 bản copy yởu cầu từ một phần chưa mọ hoõ trước đụ của fold. Thuật toõn cố gắng để mở rộng xóu phỳ hợp về phợa sau trong cả fold vỏ fnew . Nếu sự phỳ hợp như vậy được tớm thấy theo hướng giật lỳi, cụ một khả năng cho việc thay thế lệnh copy trước đụ bằng cõch tợch hợp chỷng vỏo lệnh copy hiện thờị Loại chỉnh sửa thứ 2 lỏ chỉnh sửa chung, cụ thể thực hiện khi 1 xóu con phỳ hợp M được tớm thấy trong phần đọ mọ hoõ của fnew. Trong trường hợp nỏy, thuật toõn sẽ cố gắng để xõc định xem đoạn mọ hoõ trước đụ của M cụ thể đọ được nờn rồi hay chưa vỏ vớ thế M cụ thể được mọ hoõ bởi một lệnh copy đơn. Hơn nữa, để giới hạn tiởu tốn khừng gian chứa cõc xóu con, chỷng ta sử dụng một kỹ thuật gọi lỏ kiểm tra điểm. Kỹ thuật nỏy sẽ đảm bảo một xóu con đọ được insert vỏo bảng băm sao cho vỳng vị trợ nhỏ nhưng việc lựa chọn số phải thật cẩn thận. Kết quả của sự mở rộng nỏy lỏ kỹ thuật nờn delta đảm bảo được cả cõc yởu cầu về khừng gian vỏ thời gian, cụ thể lỏm việc với kợch thước file bất kỳ.
2.5.2 Chọn file tham chiếu
Trong một vỏi ứng dụng, sự thi hỏnh của nờn delta phụ thuộc lớn vỏo việc lựa chọn file tham chiếu phỳ hợp. Chẳng hạn, để nờn một tập cõc file liởn quan, chỷng ta cần chọn cho mỗi file một hoặc nhiều file tham chiếu cụ sự giống nhau với nụ; mỗi file tham chiếu tự nụ cũng cụ thể nờn theo cõch nỏỵ Trong trường hợp cụ 1 file tham chiếu cho mỗi file nờn, vấn đề nỏy trở thỏnh tớm một nhõnh tốt hơn trong đồ thị tương ứng trực tiếp, trong đụ, mỗi cạnh (i,j) cụ trọng số bằng kợch thước của delta với i tương ứng với file tham chiếu j. Trong một số tỏi liệu, vấn đề nỏy cụ thể giải quyết theo hướng bớnh phương của thời gian, tuy nhiởn lại mắc phải 2 hạn chế: Đầu tiởn, giải phõp cụ thể chứa một chuỗi cõc tỏi liệu rất dỏi cần phải truy nhập nếu muốn giải
nờn một file cụ thể nỏo đụ. Thứ hai, với một bộ sưu tập lớn, bớnh phương thời gian trở thỏnh khụ chấp nhận, nhất lỏ vấn đề giõ trong việc tợnh trọng số thợch hợp của đồ thị trực tiếp.
Nếu chỷng ta õp độ dỏi cao hơn đối với chuỗi tham chiếu, sau đụ tớm giải phõp tốt hơn thớ sẽ trở thỏnh thuật toõn NP Completẹ Nếu chỷng ta cho phờp mỗi file được nờn sử dụng hơn 1 file tham chiếu, thớ vấn đề nỏy cụ thể được giảm tới 1 nhõnh đồ thị tối ưu, như được chỉ ra trong thuật toõn NP Complete thậm chợ khừng cụ giới hạn độ dỏi của xóụ
Một vợ dụ của chuỗi tham chiếu dỏi lỏ khi giải quyết với cõc phiởn bản khõc nhau của cỳng 1 file, như một hệ thống điều khiển xem xờt lại chẳng hạn. Trong trường hợp nỏy, việc lựa chọn file tham chiếu nhằm cực tiểu hoõ dữ liệu lỏ hiển nhiởn, nhưng sự lựa chọn nỏy cụ thể phải yởu cầu đến những phiởn bản rất cũ vỏ do đụ sẽ khõ đắt. Rất nhiều kỹ thuật đọ được đề xuất để giải quyết vấn đề nỏy bằng cõch tạo ra một số giới hạn cõc short cut tới cõc phiởn bản cũ hơn.
2.5.3 Đồng bộ cõc file từ xa
Trong phần nỏy, chỷng ta tập trung vỏo vấn đề đồng bộ cõc file ở xa, trong trường hợp khi server khừng cụ quyền truy nhập tới file tham chiếụ Những thuật toõn đọ biết đối với vấn đề nỏy cụ khõc biệt so với bộ nờn deltạ Chỷng ta sẽ bỏn về 2 hướng nghiởn cứu chợnh: (1) hướng nghiởn cứu dựa trởn chuỗi dấu vón tay được thực hiện theo thuật toõn rsync tuy nụ khừng đạt được giới hạn tối ưu nỏo, vỏ (2) dựa trởn việc từ mỏu đồ thị, hướng nỏy đạt được sự thi hỏnh tối ưu dưới cõc mừ hớnh hiện thời cho khoảng cõch file, nhưng dường như nụ khừng phỳ hợp trong thực tế. Chỷng ta cũng sẽ bỏn về cõc vấn đề liởn quan trong việc đõnh giõ sự tương đồng của file vỏ cõch điều hoỏ tập cõc bản ghi trong một databasẹ
2.5.3.1 Thuật toõn rsync
Chỷng ta sẽ mừ tả về thuật toõn đồng bộ file được triển khai rộng rọi rsync của Tridgell vỏ MacKerras. Một hướng nghiởn cứu tương tự cũng được thực hiện bởi Pyne[7].
Giả sử ta cụ 1 cuộc giao tiếp giữa 2 bởn thừng qua điện thoại, mỗi bởn cụ 1 bản copy của một cuốn sõch. Bóy giờ, giả sử 2 bản copy cụ thể khõc nhau ở một vỏi chỗ nỏo đụ. Bằng cõch nỏo chỷng ta cụ thể tớm ra 2 cuốn sõch cụ giống nhau hay khừng, vỏ nếu khừng thớ chỷng khõc nhau ở chỗ nỏo vỏ khõc nhau như thế nỏo, mỏ khừng cần đọc hết toỏn bộ cuốn sõch qua điện thoạỉ Cóu trả lời của cóu hỏi đầu tiởn rất đơn giản, bằng cõch dỳng hỏm checksum (MD5 chẳng hạn) vỏ so sõnh checksum của 2 cuốn sõch, như thế nụ sẽ xõc định được 2 cuốn sõch cụ giống nhau hay khừng. Cóu
trả lời cho cóu hỏi thứ 2 thớ khụ hơn một chỷt. Một hướng nghiởn cứu ban đầu lỏ người ta chia cuốn sõch thỏnh 2 nửa, nửa đầu vỏ nửa cuối, sau đụ sẽ thực hiện checksum trởn mỗi nửa, cho tới khi vị trợ khõc nhau được tớm rạ Tuy nhiởn, hướng nghiởn cứu nỏy sẽ bị sai trong một trường hợp hết sức đơn giản, khi một cuốn sõch chứa thởm một số từ vỏo đầụ Do đụ, một hướng nghiởn cứu khõc, mạnh hơn lỏ cần thiết mặc dỳ ý tưởng cơ bản vẫn lỏ sử dụng checksum trởn cõc khốị
Chỷng ta sẽ mừ tả vỏ chọn lọc thuật toõn rsync. Ý tưởng cơ bản lỏ giải quyết vấn đề về sự sắp xếp thẳng hỏng bằng cõch tợnh checksum khối cho file tham chiếu, vỏ so sõnh cõc checksum nỏy với cõc checksum khối tương ứng của file hiện thời, vỏ với checksum của tất cả cõc vị trợ cụ thể của cõc khối trong file hiện thờị Kết quả lỏ, server biết được đoạn nỏo của file hiện thời đọ tồn tại trong file tham chiếu, vỏ phần nỏo mới cần giao tiếp với client. Để đạt được hiệu quả, 2 checksum khõc nhau sẽ được truyền thừng tới server, tuy nhanh nhưng khừng đõng tin cậy, muốn đạt được sự tin cậy hơn thớ cần đắt hơn nhiềụ
1. Tại client:
(a) Phần fold trong cõc khối Bi = fold [ib,(i+1)b-1] của kợch thước b được xõc định sau
(b) Với mỗi khối Bi, tợnh 2 checksum, ui = hu (Bi) vỏ ri = hr (Bi) vỏ truyền chỷng tới server. Ở đóy, hu lỏ hỏm checksum khừng đõng tin cậy nhưng nhanh, vỏ hr thớ đõng tin cậy nhưng đắt.
2. Tại server:
(a) Với mỗi cặp checksum nhận được (ui,ri), thởm một thực thể (ui,ri,i) vỏo cấu trỷc dữ liệu từ điển, sử dụng ui như một giõ trị khoõ.
(b) Thực hiện một bước trong fnew, bắt đầu tại vị trợ j=0, vỏ liởn quan tới cõc bước sau:
(i) Tợnh hỏm checksum khừng đõng tin cậy hu(fnew [j, j+b-1]) trởn khối bắt đầu tại j.
(ii) Kiểm tra từ điển xem cụ khối nỏo cụ checksum khừng tin cậy phỳ hợp khừng
(iii) Nếu tớm thấy, vỏ nếu cụ checksum đõng tin cậy cũng phỳ hợp, truyền một con trỏ tới chỉ số của khối phỳ hợp trong fold tới client, j tiến tới vị trợ b, vỏ tiếp tục.
(iv) Nếu khừng tớm thấy, hoặc nếu checksum tin cậy khừng phỳ hợp, truyền ký tự fnew[j] tới client, tăng j thởm 2 vỏ tiếp tục.
Tại client:
Checksum nhanh vỏ khừng tin cậy được sử dụng để tớm ra sự phỳ hợp, vỏ cõc checksum tin cậy sau đụ được dỳng để xõc nhận sự phỳ hợp đụ. Checksum phỳ hợp được thi hỏnh bằng cõch sử dụng MD4 (128 bit). Checksum khừng tin cậy cụ 32bit, nụ cho phờp chuyển một cõch hiệu quả cõc đường bao khối bởi 1 ký tự, chẳng hạn, checksum cho f[j+1,j+b] cụ thể được tợnh trong thời gian khừng đổi từ f[j,j+b-1].
Rử rỏng, việc lựa chọn một kợch thước khối tốt lỏ tiởu chuẩn để thực hiện thuật toõn. Sự lựa chọn tốt nhất lại phụ thuộc lớn vỏo sự giống nhau giữa 2 file – cõc file cỏng giống nhau thớ chỷng ta cỏng cụ thể chọn kợch thước khối lớn. Hơn nữa, vị trợ của cõc thay đổi trong file thớ cũng rất quan trọng. Nếu một ký tự đơn được thay đổi trong mỗi khối của fold, thớ khừng cụ sự phỳ hợp nỏo sẽ được tớm thấy tại server vỏ rsync sẽ khừng thể hoỏn thỏnh một cõch hiệu quả được; mặt khõc, nếu tất cả cõc thay đổi được phón thỏnh một vỏi vỳng trởn file, rsync sẽ lỏm rất tốt thậm chợ với một kợch thước khối lớn. Tuy nhiởn, rsync khừng cụ sự thi hỏnh tốt với khừng gian khoảng cõch filẹ
Tất nhiởn, thừng thường kợch thước khối thậm chợ cụ thể thay đổi trong một filẹ Trong thực hỏnh, rsync bắt đầu với một kợch thước khối hỏng trăm byte, vỏ sử dụng cõc phờp heuristic để chỉnh sửa sau đụ.
2.5.3.2 Cõc kết quả thực nghiệm của rsync
Bóy giờ, chỷng ta sẽ đưa ra một vỏi kết quả về sự thi hỏnh của rsync so với nờn deltạ Cõc kết quả sử dụng tập dữ liệu gcc vỏ emacs. Chỷng ta tổng kết 5 con số cho rsync: số lượng dữ liệu được gửi từ client tới server (request), số lượng dữ liệu được gửi từ server tới client (reply), số lượng dữ liệu được gửi từ server tới client với tuỳ chọn nờn đọ bật (reply compressed), vỏ tổng số cho cả 2 hướng trong trường hợp khừng nờn (total) vỏ đọ nờn (total compressed).
Gcc Emacs Uncompressed 27288 27326 Gzip 7479 8191 Xdelta 461 2131 Vcdiff 289 1821 Zdelta 250 1465 Rsync request 180 227 Rsyn reply 2445 12528
Rsync total 2626 12756
Rsync total compressed 876 4428
Bảng 2.2: Cõc kết quả nờn cho tập dữ liệu gcc vỏ emacs (KB)
700 500 300 200 100 80
Rsync request 227 301 472 686 1328 1679
Rsync reply 12528 11673 10504 9603 8433 8161 Rsync reply compressed 4201 3939 3580 3283 2842 2711 Rsync total 12756 11974 10976 10290 9762 9810 Rsync total compressed 4429 4241 4053 3970 4170 4360
Bảng 2.3: Cõc kết quả nờn cho emacs với cõc tập dữ liệu khõc nhau (KB) 2.5.3.3 Cõc ứng dụng
Cõc ứng dụng cho đồng bộ file cũng tương tự như đối với thuật toõn nờn deltạ Đồng bộ file thớ phổ biến hơn, trong đụ nụ khừng yởu cầu cõc kiến thức về file tham chiếu; mặt khõc, nờn delta hướng tới thi hỏnh sự đồng bộ một cõch tốt hơn theo khợa cạnh tỷ lệ nờn. Cụ rất nhiều lý do tại sao server cụ thể khừng chứa cõc file tham chiếu, chẳng hạn do khừng gian bộ nhớ, do cõc phiởn bản trước đụ của file tham chiếu đọ được cập nhật lởn cõc phiởn bản mới hơn… Dưới đóy lỏ một vỏi vợ dụ:
- Đồng bộ cho cõc file người dỳng: Cụ một số gụi phần mềm như rsync, Microsoft’s ActiveSync, Puma Technologies’ IntelliSync hay Palm’s HotSync cho phờp đồng bộ giữa desktop, thiết bị mobile hay cõc tỏi khoản cõ nhón cụ thể truy cập web. Trong phần nỏy, cõc file hay cõc bản ghi cụ thể được update bởi rất nhiều phần khõc nhau, vỏ nhọn thời gian cụ thể được dỳng để xõc định phiởn bản gần nhất.
Chỷng ta cần chỷ ý rằng cụ rất nhiều gợi ý cho cõc cừng cụ nỏỵ Với dữ liệu dạng file, chỷng ta cụ thể đồng bộ cõc file từ xa, trõnh được việc phải truyền toỏn bộ filẹ Với dữ liệu tồn tại dưới dạng cõc tập lớn của cõc bản ghi nhỏ, chẳng hạn như danh sõch cõc địa chỉ hay cõc cuộc hẹn trong cõc thiết bị cầm tay, vấn đề lỏ lỏm thế nỏo để phón biệt cõc bản ghi nỏy cụ thay đổi mỏ khừng cần gửi một dấu hiệu riởng hay cõc nhọn thời gian cho mỗi bản ghị Vấn đề nỏy, được mừ hớnh hoõ thỏnh một tập hoỏ giảị Cụ rất nhiều cõc gụi chương trớnh thực hiện truyền toỏn bộ thực thể nếu cụ thay đổi nỏo xảy ra, thường thấy tại cõc tập dữ liệu dựa trởn bản ghi nhỏ, khừng dỳng cho cõc file lớn. Thởm vỏo đụ, cũng cụ những vấn đề về việc định nghĩa về ngữ nghĩa thợch hợp trong hệ thống đồng bộ filẹ
- Lưu trữ từ xa cõc tập dữ liệu khổng lồ: Việc đồng bộ cụ thể được sử dụng để lưu trữ từ xa cõc tập dữ liệu mỏ chỉ cụ thay đổi một chỷt giữa cõc lần cập nhật. Trong trường hợp nỏy, việc giữ cõc phiởn bản cũ tại server cụ giõ đắt lỏm cho kỹ thuật nờn delta trở lởn khừng hiệu quả.
- Truy cập web: Đồng bộ file cũng được dỳng cho việc truyền HTTP giữa cõc client với một server hoặc proxỵ Lợi ợch của nụ lỏ server khừng cần phải giữ dấu vết của cõc phiởn bản cũ được giữ tại client, vỏ cũng khừng cần phải tớm lại cõc phiởn bản ấy từ đĩạ Tuy nhiởn, như chỉ ra trong phần trởn, kỹ thuật đồng bộ file cụ tỷ lệ nờn tồi hơn nờn delta, vỏ vớ thế nụ khừng chỉ đem lại những lợi ợch cho cõc file tương tự nhaụ
- Hệ thống phón tõn ngang hỏng: Đồng bộ cũng được dỳng cho việc cập nhật cõc cấu trỷc dữ liệu phón tõn cao như: routing table, name services, indexes, hay replication tables.
CHƯƠNG 3 - ỨNG DỤNG THUẬT TOạN NẫN DELTA TRONG VIỆC CẬP NHẬT CạC PHẦN MỀM NGHIỆP VỤ TẠI NGằN HáNG CễNG THƯƠNG
VIỆT NAM
3.1 Mừ hớnh hệ thống cừng nghệ thừng tin trong ngón hỏng Cừng Thương Việt Nam
Dưới đóy lỏ mừ hớnh của hệ thống cừng nghệ thừng tin trong ngón hỏng.
Hớnh 3.1: Mừ hớnh hệ thống cừng nghệ thừng tin tại NHCTVN
Toỏn hệ thống ngón hỏng bao gồm rất nhiều chi nhõnh trởn khắp cõc tỉnh thỏnh của cả nước. Mỗi chi nhõnh lại bao gồm nhiều điểm giao dịch, phúng giao dịch. Tại mỗi điểm giao dịch, cụ thể cụ nhiều mõy tợnh Client PC chứa cõc phần mềm nghiệp vụ giỷp cõc giao dịch viởn lỏm việc với khõch hỏng. Tại mỗi chi nhõnh, cụ một mõy chủ Branch Server nhằm quản lý dữ liệu tập trung của toỏn bộ chi nhõnh. Cõc mõy chủ chi nhõnh nỏy lại được quản lý bởi một mõy chủ Server vỳng. Cụ ba mõy chủ Server vỳng lỏ North Server, Miđle Server vỏ South Server tương ứng với ba vỳng bắc, trung, nam. Cõc mõy chủ Server vỳng lại được quản lý bởi một mõy chủ Server của toỏn hệ thống, gọi lỏ HQ Server.
3.2 Quy trớnh cập nhật cõc phần mềm nghiệp vụ trong ngón hỏng Cừng Thương Việt Nam
Khi cụ một nghiệp vụ mới, hoặc khi cần thay đổi cõc tham số cho một vỏi nghiệp vụ đang tồn tại,… cõc phần mềm nghiệp vụ cần được cập nhật tới tất cả cõc mõy tợnh trong toỏn hệ thống. Vậy, bỏi toõn đặt ra lỏ lỏm thế nỏo để cõc phần mềm nỏy được cập nhật nhanh, kịp thời vỏ chợnh xõc?
Thừng thường, cõc thay đổi về phần mềm nghiệp vụ trong ngón hỏng thường bao gồm hai phần: phần thứ nhất cập nhật trong cơ sở dữ liệu (chỉ cập nhật một lần trởn