Skip to main content
European Commission logo print header

Large-scale computation without synchronisation

Article Category

Article available in the following languages:

Wolne od konfliktów replikowalne typy danych dla niesynchronizowanych aplikacji sieciowych

W przeszłości synchronizacja była jedynym sposobem, by uniknąć sytuacji, w której dwa komputery korzystające z tej samej aplikacji sieciowej modyfikowały jednakowe dane w takim samym czasie. Uczestnicy projektu SYNCFREE stwierdzili, że taki system jest nieefektywny i prowadzi do marnotrawienia zasobów. Zaproponowali oni lepsze podejście, wykorzystujące wolne od konfliktów replikowalne typy danych (ang. CRDT).

Gospodarka cyfrowa icon Gospodarka cyfrowa

CRDT są znane od dłuższego czasu. Tego rodzaju struktury danych można powielać w obrębie wielu komputerów w sieci, a aktualizacje odbywają się niezależnie, bez potrzeby synchronizacji. Dzięki łączeniu poszczególnych aktualizacji zapobiega to niezgodnościom. Niemniej krytyczne aplikacje takie jak wirtualne portfele, platformy reklamowe, portale społecznościowe czy gry sieciowe w dalszym ciągu będą polegać na synchronizacji. – Synchronizacja wyklucza szybką odpowiedź i dostępność – mówi Marc Shapiro, informatyk uczestniczący w projektach UPMC-LIP6 oraz Inria, a także koordynator projektu SYNCFREE. – W czasie gdy komputer oczekuje na pozwolenie na aktualizację od drugiego komputera, nie wykonuje żadnych przydatnych operacji, marnuje zasoby i nawet nie odpowiada użytkownikowi. Co gorsza w przypadku awarii sieci oczekiwanie może trwać nieokreślony czas, a aplikacja zostanie zablokowana. Dzięki CRDT oba wspomniane komputery mogą przeprowadzać aktualizacje niezależnie i w tym samym czasie: jeden komputer wysyła je drugiemu, a następnie każdy samodzielnie łączy otrzymaną aktualizację ze swoją własną. – Wymaga to pieczołowitego programowania i nie sprawdza się w przypadku wszystkich typów danych. Niemniej w praktyce rozwiązanie to okazało się bardzo przydatne. Ponadto programy bazujące na CRDT są dostępne mimo przerw między sieciami (ang. Available under Partition, AP). Oznacza to, że każdy komputer może wykonać swe zadanie, nawet jeśli sieć nie działa. Ponieważ jednostka wykorzystująca CRDT nie wysyła zapytania o pozwolenie, zawsze może szybko reagować, co przyczynia się też do zmniejszenia kosztów – wyjaśnia Marc Shapiro. W odróżnieniu od innych podejść do AP, które okazały się bardzo skomplikowane dla twórców oprogramowania, CRDT ma bardzo zrozumiałą semantykę i zawiera szczegóły dotyczące zdalnej komunikacji i łączenia w intuicyjny interfejs. Jednym z wyzwań związanych ze zwiększeniem komercyjnego wykorzystania CRDT był brak aplikacji i systemów w pełni opartych na tej technologii. Doprowadziło to do rozmaitych problemów. Dotyczyły one zwłaszcza tego, jak stworzyć system komunikacji i przechowywania w oparciu o CRDT, jak utrzymać pożądane właściwości przy aktualizacji poszczególnych informacji w systemie AP, jak skutecznie tworzyć aplikacje bazujące na CRDT oraz jak zwiększyć skalę do geograficznie rozproszonych systemów w chmurze złożonych z setek komputerów. Pokonanie tych przeszkód stało się celem projektu SYNCFREE. – Inicjatywa przyniosła pozytywne wyniki we wszystkich wspomnianych obszarach – wyjaśnia Marc Shapiro. – Udało nam się między innymi stworzyć wydajną, open-source'ową bazę danych w chmurze o nazwie Antidote. Jej działanie zademonstrowano na setkach maszyn rozproszonych po całym świecie. Opracowaliśmy nowe, bardziej skalowalne metody przechowywania CRDT oraz przekazywania aktualizacji. Stworzyliśmy rozległe programy, a zwłaszcza narzędzie do analizy systemów rozproszonych o nazwie FMKe (wzorowane na duńskiej sieci opieki zdrowotnej FMK). Zademonstrowaliśmy język programowania rozproszonego zwany LASP. Na koniec opracowaliśmy także metodologię Just-Right Consistency. Pozwala ona zapewnić, że dane przechowywane w tym systemie będą zachowywać się w sposób wymagany przez aplikację. Jeszcze przed rozpoczęciem projektu niektóre z koncepcji były wykorzystywane w przemyśle, w tym przez czterech partnerów przemysłowych projektu SYNCFREE. Wnieśli oni istotny wkład w inicjatywę poprzez określenie wymagań dla aplikacji, przekazanie sugestii dotyczących rozwoju oraz zapewnienie danych pochodzących z użytkowanych aplikacji działających w chmurze. Za przykład posłużyć może wykorzystanie Antidote w jednym z produktów. – Po zakończeniu projektu SYNCFREE rozpoczęliśmy projekt uzupełniający w ramach programu Horyzont 2020. Nasi on nazwę LIGHTKONE i bierze w nim udział większa liczba partnerów przemysłowych. Jego celem jest umożliwienie przełomowych, ogromnych i rozproszonych obliczeń ogólnego zastosowania. Podczas gdy projekt SYNCFREE w bardzo dużej mierze koncentrował się na środowiskach centrów danych, inicjatywa LIGHTKONE ma utrzymać obliczenia możliwie najbliższej użytkowników. Stwarza to ekscytujące wyzwania związane ze wzrostem liczby komputerów: od kilkuset jednostek pracujących w ściśle kontrolowanym otoczeniu do milionów komputerów działających w nieprzewidywalnych środowiskach – mówi Marc Shapiro. – Niezależnie od tego jedno z przedsiębiorstw wykorzystuje LASP w produkcji. Mamy też spore nadzieje na rozpoczęcie użytkowania Antidote. Rozważamy nawet założenie start-upu w celu dalszej komercjalizacji wyników projektu. W międzyczasie większość produktów, z uwzględnieniem Antidote, LASP, FMKe oraz narzędzi Just-Right Consistency jest już dostępna na GitHub na licencji Apache.

Słowa kluczowe

SYNCFREE, Antidote, CRDT, synchronizacja, github, komputer, aplikacja

Znajdź inne artykuły w tej samej dziedzinie zastosowania