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