Elosztott adatstruktúrák

A Dinamikus keretrendszer olyan elosztott adatstruktúrákat (DDS-eket) biztosít a fejlesztőknek, amelyek automatikusan biztosítják, hogy minden csatlakoztatott ügyfél hozzáférhessen ugyanahhoz az állapothoz. A DDSes által biztosított API-k úgy vannak kialakítva, hogy ismerősek legyenek azoknak a programozóknak, akik korábban gyakran használt adatstruktúrákat.

Megjegyzés:

Ez a cikk feltételezi, hogy ismeri az elosztott adatstruktúrák fluidframework.com való bevezetését.

Az elosztott adatstruktúra úgy viselkedik, mint egy helyi adatstruktúra. A kód adatokat adhat hozzá, adatokat távolíthat el, frissíthet stb. A DDS azonban nem helyi objektum. A DDS-t más ügyfelek is módosíthatják, amelyek a DDS ugyanazon szülőtárolóját teszik elérhetővé. Mivel a felhasználók egyszerre módosíthatják ugyanazt a DDS-t, meg kell fontolnia, hogy melyik DDS-t használja az adatok modellezéséhez.

Megjegyzés:

Az "egyidejűség" jelentése

Két vagy több ügyfélről azt mondják, hogy egyszerre kell módosítást végeznie, ha mindegyik módosítást hajt végre, mielőtt megkapták volna a többiek módosításait a kiszolgálóról.

A forgatókönyvnek megfelelő adatstruktúra kiválasztása javíthatja az alkalmazás teljesítményét és kódstruktúráját.

A DDS-k három jellemzővel különböznek egymástól:

  • Alapszintű adatstruktúra: Például kulcs-érték pár, sorozat vagy üzenetsor.
  • Ügyfél-autonómia: Az optimista DDS lehetővé teszi, hogy bármely ügyfél egyoldalúan módosítson egy értéket, és az új értéket továbbadja az összes többi ügyfélnek. A konszenzusos DDS azonban csak akkor engedélyezi a módosítást, ha azt más ügyfelek is elfogadják egy konszenzusos folyamattal.
  • Egyesítési szabályzat: Az ügyfelek ütközését meghatározó szabályzat.

Az alábbiakban felsoroljuk az adatstruktúrát, és ismertetjük, hogy mikor lehetnek a leg hasznosak.

Kulcs-érték párok adatai

Ezek a DDS-ek kulcs-érték adatok tárolására szolgálnak. Optimisták, és egy utolsó író-győzelem egyesítési szabályzatot használnak. Bár a párok értéke összetett objektum lehet, egy adott pár értéke nem szerkeszthető közvetlenül; a teljes értéket egy új értékre kell cserélni, amely a kívánt módosításokat tartalmazza, egész egészben.

  • Megosztotttérkép: alapszintű kulcs-érték adatstruktúra.

Kulcs-érték forgatókönyvek

A kulcs-érték adatstruktúrák számos forgatókönyv esetében a leggyakoribbak.

  • Felhasználói beállítások adatai.
  • A felmérés aktuális állapota.
  • Egy nézet konfigurációja.

A kulcsértékű DDS-k gyakori problémái és ajánlott eljárásai

  • Ha egy számlálót megosztott térképen tárol, az nem várt módon fog viselkedni. Használja helyette a SharedCountert.
  • A tömbök, listák vagy naplók kulcs-érték bejegyzésben való tárolása váratlan viselkedéshez vezethet, mivel a felhasználók nem módosíthatják közösen egy bejegyzés egyes részeit. Próbálja meg a tömböt vagy listaadatokat egy SharedSequence vagy SharedInk fájlban tárolva.
  • Ha sok adatot tárol egy kulcs-érték bejegyzésben, az teljesítménybeli vagy egyesítési problémákat okozhat. Minden frissítés frissíti a teljes értéket ahelyett, hogy két frissítést egyesítenének. Próbálja meg felosztani az adatokat több kulcsra.

Sorozatok

Ezek a DDS-ek szekvenciális adatok tárolására szolgálnak. Optimisták. A szekvenciaadat-struktúrák akkor hasznosak, ha adatokat kell hozzáadnia vagy eltávolítania egy adott indexben egy listában vagy tömbben. A kulcs-érték adatstruktúrákkal ellentétben a szekvenciák sorrendje szekvenciális, és több felhasználó egyidejű beszúrásait is képes kezelni.

  • SharedNumberSequence: számok sorozata.
  • SharedObjectSequence: egyszerű objektumok sorozata.

Sorozatforgatókönyvek

  • Listák
  • Idővonalak

Gyakori problémák és ajánlott eljárások a DDS-k sorrendjének beállításához

  • Csak a nem módosítható adatokat tárolja elemként egy sorozatban. Az elem értékének módosításának egyetlen módja az, ha először eltávolítja azt a sorozatból, majd beszúr egy új értéket arra a helyre, ahol a régi érték volt. Mivel azonban más ügyfelek is beszúrhatnak és eltávolíthatnak, nincs megbízható módja annak, hogy az új érték a kívánt helyre kerüljön.

Sztringek

A SharedString DDS strukturálatlan szöveges adatokhoz használható, amelyek közösen szerkeszthetők. Optimista.

  • SharedString -- az együttműködési szöveg kezelésére szolgáló adatstruktúra.

Sztringforgatókönyvek

  • Szövegszerkesztők

Kapcsolódó információk

A DDS-ekről és azok használatáról a fluidframework.com következő szakaszaiban talál további információt: