Megosztás a következőn keresztül:


Ütközéstípusok és feloldási szabályzatok több írási régió használatakor

A KÖVETKEZŐKRE VONATKOZIK: NoSQL MongoDB Cassandra Gremlin Asztal

Ütközések és ütközésfeloldási szabályzatok akkor alkalmazhatók, ha az Azure Cosmos DB-fiók több írási régióval van konfigurálva.

A több írási régióval konfigurált Azure Cosmos DB-fiókok esetében frissítési ütközések léphetnek fel, ha az írók egyszerre frissítik ugyanazt az elemet több régióban. A frissítési ütközések a következő három típusból lehetnek:

  • Ütközések beszúrása: Ezek az ütközések akkor fordulhatnak elő, ha egy alkalmazás egyszerre két vagy több, azonos egyedi indexű elemet szúr be két vagy több régióban. Ez az ütközés például egy azonosító tulajdonsággal fordulhat elő.

  • Ütközések cseréje: Ezek az ütközések akkor fordulhatnak elő, ha egy alkalmazás egyszerre frissíti ugyanazt az elemet két vagy több régióban.

  • Törlési ütközések: Ezek az ütközések akkor fordulhatnak elő, ha egy alkalmazás egyszerre töröl egy elemet az egyik régióban, és frissíti azt egy másik régióban.

Ütközésfeloldási szabályzatok

Az Azure Cosmos DB rugalmas szabályzatalapú mechanizmust kínál az írási ütközések megoldásához. Két ütközésfeloldási szabályzat közül választhat egy Azure Cosmos DB-tárolón:

  • Last Write Wins (LWW): Ez a feloldási szabályzat alapértelmezés szerint egy rendszer által definiált időbélyeg-tulajdonságot használ. Ez az időszinkronizálási óraprotokollon alapul. Ha a NoSQL API-t használja, bármely más egyéni numerikus tulajdonságot (például az időbélyeg saját fogalmát) megadhatja az ütközések feloldásához. Az egyéni numerikus tulajdonságot ütközésfeloldási útvonalnak is nevezzük.

    Ha két vagy több elem ütközik a beszúrási vagy csereműveletek során, az ütközésfeloldási útvonal legmagasabb értékével rendelkező elem lesz a nyertes. A rendszer határozza meg a nyertest, ha több elem azonos numerikus értékkel rendelkezik az ütközésfeloldási útvonalhoz. Minden régió egyetlen nyerteshez fog csatlakozni, és a véglegesített elem azonos verziójával fog végződni. Ha törlési ütközések lépnek fel, a törölt verzió mindig megnyeri az ütközések beszúrását vagy cseréjét. Ez az eredmény az ütközésfeloldási útvonal értékétől függetlenül következik be.

    Feljegyzés

    A Last Write Wins az alapértelmezett ütközésfeloldási szabályzat, amely időbélyeget _ts használ az alábbi API-khoz: SQL, MongoDB, Cassandra, Gremlin és Table. Az egyéni numerikus tulajdonság csak a NoSQL API-hoz érhető el.

    További információ: LWW ütközésfeloldási szabályzatokat használó példák.

  • Egyéni: Ez a feloldási szabályzat alkalmazás által definiált szemantikához készült az ütközések egyeztetéséhez. Ha ezt a szabályzatot az Azure Cosmos DB-tárolón állítja be, egy egyesítéssel tárolt eljárást is regisztrálnia kell. Ezt az eljárást a rendszer automatikusan meghívja, ha ütközéseket észlel egy adatbázis-tranzakció a kiszolgálón. A rendszer pontosan egyszer biztosít garanciát az egyesítési eljárás végrehajtására a kötelezettségvállalási protokoll részeként.

    Ha egyéni feloldási beállítással konfigurálja a tárolót, és nem tud egyesítési eljárást regisztrálni a tárolón, vagy az egyesítési eljárás kivételt eredményez futásidőben, az ütközések az ütközések hírcsatornába lesznek írva. Az alkalmazásnak ezután manuálisan kell feloldania az ütközések hírcsatornájában lévő ütközéseket. További információ: példák az egyéni feloldási szabályzat használatára és az ütközések hírcsatornájának használatára.

    Feljegyzés

    Az egyéni ütközésfeloldási szabályzat csak a NoSQL-fiókok API-hoz érhető el, és csak létrehozáskor állítható be. Nem lehet egyéni feloldási szabályzatot beállítani egy meglévő tárolón.

Következő lépések

Megtudhatja, hogyan konfigurálhatja az ütközésfeloldási szabályzatokat: