ElasticWarehouse (wcześniej EffiStorage) jest rozproszonym repozytorium plików z możliwością efektywnego ich wyszukiwania. System pozwala przechowywać dowolne typy plików przy czym typ pliku determinuje możliwe sposoby wyszukiwania. Na przykład, w  przypadku dokumentów tekstowych, prezentacji czy Microsoft Word możliwe jest efektywne wyszukiwanie po ich treści, a dla zdjęć wyszukiwanie po geolokalizacji czy wymiarach. Aktualnie pracujemy nad wyszukiwaniem z rozpoznawaniem twarzy.

Architektura

ElasticWarehouse może być zainstalowany praktycznie na dowolnej ilości oraz typie komputerów w sieci (także w środowisku wirtualnym). Każdy z komputerów wchodzi wówczas w skład klastra usługi ElasticWarehouse oraz będzie przechowywał cześć plików dostępnych w klastrze. Dzięki rozproszonemu repozytorium efektywność wyszukiwania bądź dostępu do plików jest najbardziej efektywna, gdyż w procesie bierze równolegle zawsze kilka maszyn a nie tylko jedna. Dodatkowo ElasticWarehouse jest odporny na awarie w postaci utraty  jednego z komputerów wchodzącego w skład klastra. Dzieje się tak dzięki mechanizmowi repliki, czyli przechowywania kopii tego samego pliku zawsze na dwóch lub większej ilości maszyn (nigdy tych samych). Tak wiec awaria jednego z serwów nie dość że nie powoduje przerwy w działaniu systemu, to również pozwala na automatycznie odbudowanie bazy plików po podłączeniu nowego serwera dzięki danym zgromadzonym na pozostałych maszynach wchodzących w skład klastra.

Rysunek poniżej ilustruje klaster złożony z czterech serwerów, gdzie na każdym z nich został zainstalowany ElasticWarehouse. Jak widać każda instancja komunikuje się ze wszystkimi pozostałymi zapewniając ciągłość pracy systemu. Dostęp do ElasticWarehouse odbywa się poprzez protokół HTTP/HTTPS, a dzięki odpowiednim rozszerzeniom exploratora Windows zarządzanie plikami może być realizowane w standardowy sposób jak do regularnego systemu plików (pozwala to na łatwą migrację dowolnej aplikacji – zamiast zapisywać dane w lokalnym systemie plików, aplikacja może wykorzystywać ElasticWarehouse).

ElasticWarehouse współpracuje również z Hadoop poprzez Hbase. W konfiguracji opartej na Hadoop ElasticWarehouse przechowuje wyłącznie meta-opisy niezbędne do wyszukiwania, a oryginalny plik przechowywany jest w rozproszonym systemie plików hdfs. Dzięki temu znacząco zostaje podniesiona zostaje wydajność dużych klastrów  (w sensie wielkości lub obciążenia ilością requestów) . Małe i średnie klastry do kilkunastu TB oraz mniej niż 10 requetsów/s zasadniczo nie wymagają integracji z Hbase/Hadoop.

ElasticWarehouse nie wymaga zakupu bądź instalacji na drogim sprzęcie. Zdecydowanie lepsze wyniki uzyskuje się instalując ElasticWarehouse na większej ilości małych maszyn niż jednym drogim serwerze.

Najważniejsze cechy ElasticWarehouse

  • skalowalność,
  • mechanizm wersjonowania plików,
  • repliki oraz mechanizm automatycznego backupu
  • dostęp do plików poprzez HTTP/HTTPS
  • fault tolerance,
  • brak konieczności zakupu drogiego sprzętu,
  • full text search, geo search, meta search

Zamów produkt ElasticWarehouse