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:
- Elosztott adatstruktúrák bemutatása.
- Az elosztott adatstruktúrák típusai.