2009-07-07 8 views

Odpowiedz

8

Należy użyć transakcji, aby komplet zmian został całkowicie przetworzony, aby operacja była kompletna i ważna. Innymi słowy, jeśli tylko część zostanie pomyślnie wykonana, czy spowoduje to, że niepełne lub nieprawidłowe dane będą przechowywane w bazie danych?

Na przykład, jeśli masz wstawkę, a następnie aktualizację, co się stanie, jeśli wstawienie się powiedzie i aktualizacja się nie powiedzie? Jeśli spowodowałoby to niepełne dane (w tym przypadku osierocony rekord), powinieneś zawrzeć te dwie instrukcje w transakcji, aby uzyskać je jako "zestaw".

+2

"użyj, gdy potrzebujesz zestawu zmian, które trzeba przetworzyć" Myślę, że drugie "potrzeby" są niepotrzebne. –

4

Jeśli masz więcej niż jedną instrukcję modyfikującą dane do wykonania, aby ukończyć zadanie, wszystkie powinny być w ramach transakcji.

W ten sposób, jeśli pierwszy z nich się powiedzie, ale którykolwiek z poniższych błędów zawiera błąd, możesz wycofać (cofnąć) wszystko, jak gdyby nigdy nic.

3

Ilekroć nie podoba ci się, jeśli część operacji może się zakończyć, a część nie.

5

Jeśli wykonujesz dwie lub więcej instrukcji, które mają być funkcjonalnie atomowe, powinieneś zawrzeć je w transakcji.

1

Za każdym razem, gdy chcesz zablokować bazę danych i potencjalnie awarię aplikacji produkcyjnej, za każdym razem, gdy chcesz zaśmiecać swoją aplikację ukrytą skalowalnością, koszmary pójść do przodu i utworzyć transakcję. Spraw, aby był duży, wolny i włożył pętlę do środka.

Poważnie, żadna z powyższych odpowiedzi nie potwierdza kompromisu i potencjalnych problemów związanych z intensywnym wykorzystaniem transakcji. Bądź ostrożny i za każdym razem rozważaj ryzyko/nagrodę.

Serwis eBay w ogóle ich nie używa. Jestem pewien, że jest wielu innych.

http://www.infoq.com/interviews/dan-pritchett-ebay-architecture

+0

Zawsze interesowało mnie podejście do zastępowania transakcji innymi technikami. –

0

Ilekroć jakakolwiek operacja podlega acid (atomowości, Spójność, Izolacja, Trwałość) kryteria należy wykorzystywać transakcje

Przeczytaj ten article

Powiązane problemy