Elastyczne instancjonowanie aplikacji wymaga od developera dodatkowej pracy przy ich projektowaniu i programowaniu, aby poradzić sobie z kwestią współdzielenia zasobów między instancjami i składowania danych w przypadku restartu aplikacji. Dotyczy to zarówno danych sesyjnych przechowywanych w pamięci, jak i systemu lokalnych plików. Jedną z usług, która może rozwiązać część tych problemów bez konieczności wprowadzania znaczących modyfikacji do aplikacji, jest RIAK CS.

RIAK CS (Cloud Storage) jest usługą magazynu obiektowego dla CloudPortal, bazującą na oprogramowaniu RIAK. Może być wykorzystana do mapowania zdefiniowanych w konfiguracji aplikacji folderów, aby zagwarantować składowanie lokalnych plików w jej bazie a nie w pamięci komórki obliczeniowej.

Główne cechy RIAK CS to:

  •    magazyn o wysokiej dostępności, odporny na awarie dzięki wykorzystaniu wielu węzłów,
  •    wsparcie dla dużych obiektów i możliwość wieloczęściowego podładowywania zbiorów,
  •    mechanizm uwierzytelniania i AP kompatybilne z S3,
  •    wsparcie dla separacji podmiotów (multi-tenancy) i raportowanie per-user,
  •    elastyczne statystyki monitorowania i wydajności.

Dzięki kompatybilności APIS RIAK CS z S3 operacje związane z magazynem mogą być wykonywane przy pomocy istniejących bibliotek i narzędzi. API RIAK wspiera operacje RESful GET, PUT i DELETE dla obiektów i porcji danych. Obecnie można znaleźć wiele napisanych klientów we wszystkich popularnych języków programowania. Oficjalnie są usługa jest zgodna z oprogramowaniem klienckim w językach Java, Ruby, Python i Erlang. Przykładami sprawdzonych klientów dla CloudPortal mogą być:

  •    s3curl,
  •    s3cmd,
  •    fog,
  •    Basho java client.

Podczas podładowywania obiektu RIAK CS rozbija go na mniejsze bloki, które są składowane, udostępniane i replikowane na klastrze węzłów RIAK. System replikacji Riak bazuje na technologii Dynamo i teorii CAP. Do replikacji i dystrybucji N kopii każdej wartości pomiędzy węzłami klastra składającego się kilku maszyn fizycznych jest wykorzystywana technika zgodnego mieszania (consistent hashing). Dzięki temu zagwarantowana jest duża skalowalność partycjonowania danych w stosunku do liczby węzłów współpracujących w klastrze.
W przypadku klastra opisywanej usługi każdy węzeł jest równoprawny i może koordynować operacje zapisu/odczytu dla dowolnego węzła.  RIAK kładzie nacisk na dostępność tych operacji i sam ciężar rozwiązywania konfliktów może powierzać klientowi podczas operacji czytania lub można to powierzyć wewnętrznemu podsystemowi antyentropii. W związku z tym, że RIAK kładzie duży nacisk na możliwość zapisu informacji, jest zgodny również z mechanizmami obsługującymi wersjonowanie i gwarantującymi spójność danych.  Do rozwiązywania konfliktów może być użyta funkcjonalność vector clock lub prosty mechanizm oparty o kopie migawkowe.

Dotacje na innowacje. Inwestujemy w waszą przyszłość
Dotacje na innowacje. Inwestujemy w waszą przyszłość