2010-01-29 34 views
5

Mam problem, gdy muszę złożyć Mapę, której ostateczny rozmiar jest w GB (trwający ponad 64 GB) i nie mogę założyć, że użytkownik programu będzie miał tego rodzaju potworna maszyna kręci się wokół. Dobrym rozwiązaniem byłoby rozpowszechnienie tej mapy na wielu komputerach, aby uzyskać znacznie mniejszy ślad pamięci na instancję.Automatyczne odkładanie mapy Java na wiele węzłów

Czy ktoś wie o bibliotece/zestawie narzędzi, które mogą wykonać to odtrącanie? Nie dbam o replikację ani transakcje; właśnie rozprzestrzenia to wymaganie pamięci wokół.

Odpowiedz

2

Sugeruję zacząć hazelcast:

http://www.hazelcast.com/

Jest open source, i moim zdaniem jest to bardzo łatwy pracować, więc jest to najlepsze ramy dla szybkiego prototypowania .

O ile mi wiadomo, działa szybciej niż komercyjne alternatywy, więc nie martwiłbym się także o wydajność.
(nie formalnie odwzorować to sam)

+1

To jest śmiałe roszczenie – Kevin

+0

hej, Kevin, masz rację, dlatego szybko dodałem do tego uwaga: – Yoni

+0

Dam hazelcastowi spojrzenie na okrzyki! – andeyatz

3

terakota może być przydatna rzucić okiem tutaj

http://www.terracotta.org/

Jego skupione JVM będzie zależała od tego, jak często aktualizować mapę Myślę o tym, jak dobrze to działa.

+0

Jeśli budujesz produkt komercyjny, licencja typu open source na terakotę może być uciążliwa głównie z powodu klauzuli przypisania – Kevin

+0

Licencjonowanie nie stanowi problemu, ponieważ projekt jest open-source; Terakota wydawała się nieco OTT plus bardziej martwi mnie to, jak Terracotta może dzielić dane. eHcache wygląda jednak na to, że może to zrobić. – andeyatz

2

Czy to musi być open source? Jeśli nie, może to zrobić Oracle Coherence.

+0

Zgadzam się, to dokładnie (i więcej) tego, czego szuka ... Może to jednak trochę przesada. –

1

Możesz być w stanie rozwiązać problemu przy użyciu bazy danych zamiast coś http://hsqldb.org/ może zapewnić funkcjonalność trzeba z możliwością zapisu danych na dysku zamiast utrzymywać całość w pamięci.

Zdecydowanie cofnę się o krok i zadam sobie pytanie, czy mapa jest właściwą strukturą danych dla GB danych.

+0

HSQLDB jest zbyt wolny Niestety i dane są ładnie uporządkowane na pary klucz-wartość. Problem wynika z konieczności bardzo szybkiego wyszukiwania bez możliwości przewidywania kolejności wyszukiwania. Z tego powodu rozwiązania oparte na hashu wydają się lepsze niż testowanie RDBMS – andeyatz

Powiązane problemy