Sao l u nhân b n không đ ng b có th theo hai cách tu thích.
Cách th nh t đ c g i là nhân b n không đ ng b theo nút chính. M t b n sao nào đó đ c thi t k làm b n sao chính (primary or master copy). Các b n sao nhân b n
H QU N TR C S D LI U – B n Nháp 30-08-08
http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 148 c a quan h hi n t i ho c là các phân m nh có th đ c t o ra nhi u nút khác – đó là nh ng b n sao ph . Không gi ng nh b n sao chính, các b n sao ph không đ c c p nh t.
C ch chung cho c b n sao chính và các b n sao ph đó là, đ u tiên ng i dùng đ ng ký (register) ho c qu ng bá (publish) m t quan h t i nút chính, và ngay sau đó miêu t (subscribe) đ n m t phân m nh c a m t quan h đã đ c đ ng ký t m t nút ph .
Nh v y, các thay đ i b n sao chính đ c phát tán đ n các b n sao ph . Th ng nó di n ra theo hai b c, g i là ch p l i và áp d ng. Các thay đ i đ c c đ nh b i l nh COMMIT TRAN[SACTION] (COMMIT WORK) b n sao chính và b ng cách nào đó b c ch p l i và sau đó đ c phát tán đ n các b n sao ph b c áp d ng.
Giao tác th c thi các thay đ i quan h đ c sao l u nhân b n ch phong to và th c hi n các thay đ i đó b n sao chính. Và nó th ng đ c c đ nh tr c khi b c áp d ng đ c b t đ u.
B c ch p l i đ c tri n khai theo m t trong hai cách, đ c g i là ch p l i trên c s nh t ký (log-basic capture) và ch p l i theo th t c (procedural capture). Log đ c duy trì cho m c đích khôi ph c d li u đ c s d ng đ t o nên các b n ghi ph c v vi c c p nh t các b n sao ph . V c n b n, khi ph n đuôi c a log đ c ghi lên ph ng ti n l u tr lâu dài, thì t t c các b n ghi liên quan đ n các quan h đ c sao l u nhân b n c ng đ c ghi lên m t b ng thay đ i d li u (CDT – change data table) riêng l . Vì m t giao tác t o ra các b n ghi (log) c p nh t v n có th còn đang đ c th c thi khi các b n ghi đã đ c ghi lên CDT ngay sau đó có th b rollback. Nên suy ra các b n ghi (log) ph i đ c xoá kh i CDT đ ch ch p l i nh ng lu ng s a đ i do các giao tác đã đ c c đ nh. Các lu ng đó có th đ c thu l i nh là m t ph n c a b c ch p l i, mà c ng có th là m t ph n c a b c áp d ng n u các b n ghi commit-log đã đ c cho vào CDT. C th h n, các lu ng s a đ i đã đ c c đ nh đ c b t l y nh là m t ph n c a b c ch p l i, và CDT đó đ c chuy n cho b c áp d ng ch ch a các b n ghi (log) s a đ i do các giao tác đã đ c c đ nh.
Trong cách ch p l i theo th t c, m t th t c t đ ng đ c đ a vào b i HQT CSDL ho c m t trình ng d ng nào đó kh i đ ng quá trình ch p l i, mà c t lõi c a nó th ng là l y m t “ nh ch p nhanh” (snapshot) c a b n sao chính. nh ch p nhanh ch đ n gi n là m t b n sao c a m t quan h m t tr ng thái nào đó trong m t th i đi m nào đó. M t ví d c a th t c th c hi n vi c ch p l i theo th t c đó là các b y s ki n (trigger).
Ch p l i trên c s nh t ký có chi phí th p h n so v i ch p l i theo th t c, v i vì nó đ c đi u khi n b i nh ng thay đ i d li u, mà các k t qu b trì hoãn trong m t kho ng
H QU N TR C S D LI U – B n Nháp 30-08-08
http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 149 th i gian ng n h n gi a th i đi m b n sao chính đ c s a đ i và khi th i đi m mà các thay đ i đó đ c phát tán đ n các b n sao ph . Khi phát tán các s a đ i t b n sao chính, các ràng bu c đ m b o tính nh t quán các liên k t c ng đ c phát tán cùng. B t l i chính c a vi c tri n khai ch p l i trên c s nh t ký là ch các chi ti t v c u trúc c a log không đ c ph bi n r ng rãi, và đôi khi là nh ng bí m t, và là nh ng đ c tr ng hoàn toàn mang tính h th ng. Vì v y, m t nhà cung c p s khó có th tri n khai c ch ch p l i trên c s log đ ch p l i các thay đ i d li u đ c th c thi trên các HQT CSDL c a nhà cung c p khác.
B c áp d ng l y các s a đ i đã đ c thu th p t b c ch p l i có trong CDT ho c b n ch p nhanh và phát tán các thay đ i đó đ n các b n sao ph . i u này có th di n ra liên t c m t cách tu n hoàn theo đ nh k ho c theo các yêu c u g i CDT ho c nh ch p nhanh c a các b n sao ph t các nút ph đ n b n sao chính nút chính. Các yêu c u đó đ c g i đi b i trình ng d ng ng i dùng ho c tu n hoàn theo chu k c a m t timer.
Trong m t s h th ng, các b n sao nhân b n có th không ph i là phân m nh c a m t quan h , mà là khung nhìn (th c) (k t qu th c thi truy v n c a khung nhìn). Và c ch nhân b n đ c duy trì nh là m t khung nhìn m t nút t xa theo cách gia t ng, ngh a là ch tính l i khung nhìn b i m t ph n c a khung nhìn b nh h ng b i các s a đ i đ c ghi l i trong CDT.
Ch p l i trên c s nh t ký cùng v i áp d ng m t cách liên t c gi m thi u kho ng th i gian trì hoãn trong phát tán các thay đ i, và là gi i pháp có chi phí th p nh t đ tri n khai sao l u nhân b n đ ng b . Ch p l i theo th t c và áp d ng theo h ng trình đi u khi n đ c s d ng r ng rãi h n trong các trình ng d ng kho d li u (data warehouse).
Trong kho d li u s co gi n trong x lý các d li u g c và các thay đ i tr c khi chúng đ n v i các b n sao, và các kh n ng làm s ch và l c các d li u thu đ c quan tr ng h n là tính đ c c p nh t c a m t b n sao, đ c cho phép ra b i s co gi n đó.
Cách sao l u nhân b n th hai là sao l u nhân b n ngang hàng (peer-to-peer replication). Nhi u h n m t b n sao, th ng thì không ph i t t c , có th đ c thi t k đ có th tr thành “thay đ i đ c”, gi ng nh là các b n sao chính. phát tán các thay đ i d li u, m t chi n l c tháo g xung đ t đ c s d ng đ đ i phó v i các s thay đ i gây nên xung đ t gi a các nút khác nhau. Có nh ng tình hu ng xung đ t đ c bi t không x y ra trong nhân b n ngang hàng, và khi đó nhân b n ngang hàng đ c dùng nhi u nh t. Ví d , đ tu i m t công nhân có th đ c đ i thành 30 m t nút và 40 các nút khác. V y đ tu i
H QU N TR C S D LI U – B n Nháp 30-08-08
http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 150 nào là đúng? Nh ng xung đ t d li u gi ng nh th th ng x y ra trong nhân b n ngang hàng, nh ng chúng t ng đ i d đ c tháo g . Ví d :
− M i b n sao chính ch đ c cho phép thay đ i d li u m t phân m nh c a m t quan h , th ng là phân m nh theo chi u ngang, và b t c hai phân m nh nào thay đ i d li u đ c t i các b n sao chính khác nhau đ u tách r i nhau (disjoin). Ví d , đ tu i c a các nhân viên đ n t Nh t ch đ c c p nh t t i Hà N i, và t M − TP H Chí Minh, m c dù quan h đó đ c l u tr c t i Hà N i và tp. H Chí Minh.
− Ch m t nút chính đ c trao quy n thay đ i d li u trong m t th i đi m. Ví d , m t nút đ c thi t k là b n backup c a m t nút khác. Các thay đ i nút chính đ c phát tán đ n các nút khác và c p nh t không đ c cho phép t i các nút đó, k c nút backup.
Nh ng n u x y ra x c nút chính, thì nút backup s thay th và m i thay đ i c ng ch đ c cho phép trên nút backup.
VI.3.3 Qu n tr danh m c phân tán
Chúng ta c n ph i n m thông tin các quan h đ c phân m nh và nhân b n nh th nào. C th là, ngoài các l c đ , ch ng th c (authentification) và các thông tin th ng kê, c n ph i bi t các phân m nh c a quan h đ c phân b xuyên su t các nút nh th nào và các b n sao c a các phân m nh đ c l u tr đâu.
VI.3.3.1 t tên cho các đ i t ng
N u m t quan h đ c phân m nh và nhân b n, c n ph i đ m b o kh n ng nh n di n “m t cách đ c nh t” (uniquely) m i b n sao c a m i phân m nh. Vi c t o ra nh ng tên đ c nh t nh v y c ng đòi h i m t s quan tâm nh t đ nh. N u chúng ta d ùng m t “tên máy ch toàn c c” (global name-server) đ quy cho các tên toàn c c (global) đ c nh t, thì tính t qu n c c b (autonomy) đ c dàn x p n tho ; chúng ta mu n (ng i dùng ) m i nút có kh n ng quy các tên cho các đ i t ng c c b không c n liên k t đ n các tên h th ng trên di n r ng.
Cách gi i quy t thông th ng cho v n đ đ t tên là dùng các tên bao hàm nhi u thu c tính (tr ng). Ví d , chúng ta có th có:
− Tên c a m t tr ng có tên c c b đ c gán c c b t i nút mà quan h đ c t o ra. Hai đ i t ng các nút khác nhau có th có chung m t tên c c b , nh ng hai đ i t ng
cùng m t nút đã cho không th có cùng m t tên c c b .
H QU N TR C S D LI U – B n Nháp 30-08-08
http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 151
− M t tr ng c a nút “g c” (birth site field) đ nh danh nút, n i mà quan h đ c t o ra, và n i ch a t t c các thông tin v t t c các phân m nh cà các b n sao c a quan h đó.
Hai tr ng đó đ nh danh m t quan h m t cách đ c nh t. S k t h p đó đ c g i là tên toàn c c c a quan h . đ nh danh m t b n sao c a m t quan h ho c m t phân m nh c a quan h , chúng ta l y tên toàn c c c a quan h và thêm vào m t tr ng t đ nh danh c a b n sao repl-id, và g i đó là tên toàn c c c a b n sao.
VI.3.3.2 C u trúc danh m c phân tán
Các danh m c h th ng trung tâm có th đ c dùng, nh ng nó có th b nguy hi m b i nút ch a danh m c đó. M t cách khác đó là duy trì m t b n sao c a danh m c h th ng toàn c c. Danh m c đó có th miêu t t t c d li u t t c các nút. M c dù cách này không b nguy hi m b i s c trên m t nút riêng l , nó đ m b o tính t l p c a nút, nh ng c ng gi ng nh các gi i quy t đ u tiên, b i vì m i s thay đ i trong danh m c c c b c n ph i ngay l p t c đ c truy n t i sang t t c các nút.
M t trong nh ng d án HQT CSDL PT thành công c a IBM đó là System R*.
Khái ni m danh m c phân tán trong System R* d a trên c s s có m t c a m t tên h th ng đ c nh t c a m i đ i t ng c a CSDL. M t s tho thu n sau đây đ c ch p nh n:
thông tin v s phân b c a b t k đ i t ng nào c a CSDL, ví d nh t ch danh nút hi n t i mà đ i t ng đ c đ t trên đó, đ c l u tr trong danh m c c c b c a nút đó, n i mà đ i t ng đ c đ t lên ngay sau khi nó đ c t o ra (nút sinh − birth site).
Suy ra, đ thu đ c thông tin đ y đ v m t quan h , trong tr ng h p chung c n ph i s d ng danh m c c c b c a nút n i x y ra quá trình biên d ch, và sau đó truy c p t xa đ n danh m c c a nút sinh c a quan h hi n t i, và cu i cùng, s d ng danh m c c a nút hi n t i. Nh v y, đ có đ c thông tin chính xác v b t c quan h nào c a CSDL PT c ng đ u có th c n đ n nhi u nh t hai truy c p t xa đ n các quan h -danh m c.
Th t c này c ng có th đ c t i u hoá. Các b n sao c a các ph n t danh m c c a các nút khác có th đ c l u tr trong danh m c c c b , nh là m t d ng cache. Tính nh t quán c a các ph n t danh m c không đ c đ m b o (h tr ). Thông tin đó đ c s d ng giai đo n đ u tiên c a quá trình biên d ch m t truy v n. Và sau đó, giai đo n th hai, n u thông tin liên quan đ n m t đ i t ng nào đó đ c xác đ nh là không chính xác, thì nó s đ c đi u ch nh cho chính xác trên c s danh m c c c b c a nút mà hi n t i đ i t ng đó đang đ c l u tr . Vi c phát hi n s không chính xác c a b n sao ph n t danh
H QU N TR C S D LI U – B n Nháp 30-08-08
http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 152 m c đ c th c hi n nh vào s có m t s c a phiên b n m i ph n t danh m c. N u s c ì (s ch m tr ) c a thông tin h th ng đ l n thì s t i u hoá đó s có ý ngh a khá cao.
M i m t nút duy trì m t danh m c c c b . Danh m c c c b đó mô t t t c các b n sao c a d li u đ c l u tr trên nút đó. B sung thêm, danh m c trên nút sinh c a quan h ch u trách nhi m v thông tin n i l u tr các quan h , ho c là các phân m nh c a quan h . C th , thông tin mô t chính xác h n c a n i dung m i b n sao nhân b n là m t danh sách các c t cho tr ng h p phân m nh theo chi u d c và đi u ki n select cho tr ng h p phân m nh theo chi u ngang, đ c l u tr danh m c trên nút sinh. M t khi m t b n sao nhân b n đ c t o ra, ho c đ c chuy n xuyên su t các nút, thì thông tin trên nút sinh c n ph i đ c c p nh t. Và nh v y, các b n sao nhân b n c a danh m c c a các nút c ng ph i đ c c p nh t.
VI.3.4 Tính đ c l p c a d li u phân tán
Tính đ c l p c a d li u phân tán đ c hi u là ng i dùng có kh n ng t o ra các truy v n, không c n bi t các quan h đ c phân m nh ho c nhân b n nh th nào. HQT CSDL có trách nhi m tính toán các quan h nh c n thi t, b ng cách xác đ nh các b n sao h p lý c a các phân m nh, n i (join) các phân m nh theo chi u d c, và h p nh t (union) các phân m nh theo chi u ngang.
C th tính ch t này ng ý r ng, khi vi t các truy v n ng i dùng không c n ph i ch chính xác tên đ y đ c a các đ i t ng d li u đ c truy c p. Chúng ta hãy xem ng i dùng có th truy c p đ n các quan h nh th nào khi thi u thông tin các quan h đã đ c phân tán nh th nào. Tên c c b c a m t quan h trong danh m c h th ng th c t là m t s k t h p c a tên ng i dùng và tên c a quan h do ng i dùng đ nh ngh a. Ng i dùng có th đ t tên cho các quan h c a h , không c n quan tâm đ n các quan h đ c t o b i các ng i dùng khác. Khi ng i dùng vi t m t ch ng trình ho c m t câu l nh SQL có s d ng các quan h , h ch c n đ n gi n dùng các tên c a các quan h . HQT CSDL PT s t đ ng thêm tên ng i dùng vào tên quan h đ thu đ c tên c c b , và sau đó thêm t đ nh danh c a nút site-id c a ng i dùng (m c đ nh là nút sinh), đ thu đ c tên toàn c c c a quan h . B ng cách tìm ki m tên toàn c c c a quan h trong danh m c c c b , n u nh có b n sao nhân b n đó, ho c là danh m c trên nút sinh, HQT CSDL có th xác đ nh các b n sao nhân b n c a m t quan h .
Ng i dùng có th t o ra các đ i t ng nhi u nút khác nhau và có th liên k t đ n các quan h đ c t o ta b i các ng i dùng khác theo ý mu n. làm đi u đó, ng i
H QU N TR C S D LI U – B n Nháp 30-08-08
http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 153 dùng có th s d ng các l nh d ng SQL đ t o ra các t đ ng ngh a (synonym) cho các tên toàn c c c a quan h , r i sau đó có th liên k t (ho c truy c p) đ n các quan h b ng synonym. HQT CSDL s duy trì m t b ng các synonym gi ng nh là m t ph n c a danh m c t i m i nút cho m i ng i dùng đã ghi tên nút đó, và dùng b ng đó đ xác đ nh tên toàn c c c a quan h . Chú ý r ng, các ng d ng ng i dùng có th làm vi c không có thay đ i gì khi các b n sao nhân b n c a quan h b hu b , b i vì tên toàn c c c a quan h v n còn t n t i mãi mãi trong h th ng cho đ n khi chính b n thân quan h đó b xoá đi.
Ng i dùng có th th c thi các truy v n trên các b n sao nhân b n, đ c bi t n u các b n sao đó đ c c p nh t theo ph ng pháp đ ng b . Và nh v y, c ch synonym có th đ c thích nghi đ cho phép ng i dùng t o ra các synonym cho các tên toàn c c c a các b n sao nhân b n.
H QU N TR C S D LI U – B n Nháp 30-08-08
http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 154 Ch ng VI.4 X lý các truy v n phân tán
th u hi u các v n đ đ c bàn lu n trong ph n này c n ph i bi t các ki t th c v đ i s quan h . đây chúng ta ch tóm l c nh ng ý chung nh t v quá trình ph c t p này. Các ki n th c đ y đ h n có th tham kh o [HQT CSDL, 2000; ….].
VI.4.1 Các thu t toán n i join VI.4.1.1 Các truy v n nonjoin
Th m chí các thao tác đ n gi n nh quét các quan h , phép ch n, và phép chi u c ng b tác đ ng b i vi c phân m nh và nhân b n.
Ví d , n u m t b ng nào đó đ c phân m nh theo chi u ngang và hai phân m nh đ c l u tr t i hai nút khác nhau cách xa nhau. Tu thu c vào đi u ki n select c a truy v n và các thu c tính c ng nh các công th c có th (avg, sum và ph c t p h n n a) trong ph n select, đ tr l i m t truy v n, n u ch c n d li u t m t phân m nh th ì HQT CSDL s th c thi truy v n trên nút ch a phân m nh đó. N u c n d li u t nút còn l i thì ph c t p h n: − N u trong ph n select ch đ n gi n là m t thu c tính (phép chi u projection) ho c t ng t , thì có th th c hi n m t truy v n nút còn l i và sau đó union k t qu c a hai truy v n; − N u đó là m t hàm ho c m t công th c, ví d tính giá tr trung bình, thì th ng là c n th c thi truy v n duy nh t trên m t quan h là c k t qu c a phép k t h p (union) hai phân m nh c a quan h g c. Trong tr ng h p th hai, tinh vi h n, câu truy v n và đi u ki n dùng đ phân m nh quan h có th đ c phân tích, đ có th th c thi hai ph n truy v n trên hai phân m nh, và m t ph n trên nh ng d li u t hai phân m nh không tham gia vào hai ph n tr c c a truy v n.
N u gi s quan h đ c phân m nh theo chi u d c b ng phép phân tách không m t d li u và các phân m nh đ c l u tr trên các nút khác nhau. Ch c n m t truy v n đ n gi n nh t là phép chi u mà trong ph n select có ch a các thu c tính c a b ng g c, mà không phân m nh nào trong các phân m nh ch a đ các thu c tính đó, thì HQT CSDL c ng c n ph i th c hi n phép n i hai phân m nh đ thu đ c m t quan h và th c thi truy v n trên đó.
Ngoài ra, tu thu c vào kh n ng x lý c a các nút, các thu c tính đã đ c cài đ t và các ch c n ng c a các HQT CSDL và CSDL c c b mà chi phí c a vi c x lý c c b có
H QU N TR C S D LI U – B n Nháp 30-08-08
http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 155 th khác nhau gi a các nút, c ng nh các chi phí và đ tin c y truy n t i thông tin qua m ng khác nhau. Và nh v y, c n ph i ch n cách th c thi cho chi phí th p nh t.
VI.4.1.2 Th c thi phép n i trên HQT CSDL PT
Phép n i trong HQT CSDL PT gi a các nút khát nhau có th r t đ t đ . Chúng ta s xem xét các ph ng án th c thi phép n i đ c s d ng.