Omówienie transakcji w kontekście zestawu JAVAScript SDK

Ukończone

W bazie danych transakcja jest zwykle definiowana jako sekwencja operacji punktów pogrupowanych razem w jedną jednostkę pracy. Oczekuje się, że transakcja zapewnia gwarancje ACID :

  • Niepodzielność gwarantuje, że wszystkie prace wykonywane wewnątrz transakcji są traktowane jako pojedyncza jednostka, w której wszystkie z nich są zatwierdzane lub żadne.
  • Spójność zapewnia, że dane są zawsze w dobrej kondycji wewnętrznej między transakcjami.
  • Izolacja gwarantuje, że żadne dwie transakcje nie zakłócają siebie — na ogół większość systemów komercyjnych zapewnia wiele poziomów izolacji, które mogą być używane na podstawie potrzeb aplikacji.
  • Trwałość gwarantuje, że każda zmiana zatwierdzona w bazie danych będzie zawsze obecna.

W usłudze Azure Cosmos DB for NoSQL procedura składowana wykonuje co najmniej jedną operację jako pojedynczą jednostkę pracy w tym samym zakresie. Procedury składowane są rejestrowane w kontenerach i uruchamiane w zakresie tego konkretnego kontenera.

Uwaga

Procedury składowane są ograniczone do jednej partycji logicznej. Nie można wykonać procedury składowanej, która wykonuje operacje między wartościami klucza partycji logicznej.

Transaction with multiple steps within a single scope

Transakcje są wykonywane po stronie serwera w usłudze Azure Cosmos DB for NoSQL, dlatego muszą być zgodne z tymi samymi ograniczeniami co wiele innych żądań HTTP. Wszystkie operacje w ramach procedury składowanej muszą zostać wykonane w ograniczonym czasie. W szczególności operacje muszą być wykonywane w ramach limitu czasu żądania serwera.

W przypadku długotrwałych list operacji wartość logiczna pomocnika jest zwracana przez dowolną funkcję Języka JavaScript, która wykonuje operację wskazującą, czy ta operacja ma zostać ukończona w czasie trwania limitu czasu żądania. Jeśli wartość logiczna ma wartość true, możesz kontynuować pracę z procedurą składowaną. Gdy wartość logiczna jest fałszywa, procedura składowana musi zostać sfinalizowana tak szybko, jak to możliwe. W tym momencie często zwraca się wskaźnik, aby kolejne wywołania procedury składowanej mogły zaczynać się od wskaźnika zamiast przewijania postępu do początku długotrwałej listy operacji.

Transaction that returns a pointer after indication of a pending timeout