2015-03-03 16 views

Odpowiedz

30

Lucene używa wewnętrznego bufora bajtowego, który używa adresów 32-bitowych do adresowania. Z definicji ogranicza to rozmiar dokumentów. A więc 2GB to max teoretycznie.

W ElasticSearch:

Jest max http request size w kodzie ES GitHub, i to jest przeciwko Integer.MAX_VALUE lub 2^31-1. Zasadniczo, 2 GB to maksymalny rozmiar dokumentu dla zbiorczego indeksowania przez HTTP. A także, aby dodać do tego, ES nie przetwarza żądania HTTP, dopóki się nie zakończy.

Dobrych Praktyk:

  • Nie używaj bardzo dużą Java sterty jeśli możesz pomóc: set to tylko tak duży, jak jest to konieczne (najlepiej nie więcej niż połowę RAM urządzenia) do przechowywania ogólny maksymalny rozmiar zestawu roboczego do korzystania z Elasticsearch. Pozostawia to pozostałą (mając nadzieję, że sporą) pamięć RAM dla systemu operacyjnego w celu zarządzania buforowaniem IO.
  • Po stronie klienta należy zawsze używać zbiorczego interfejsu API, który indeksuje wiele dokumentów w jednym żądaniu, i eksperymentować z odpowiednią liczbą dokumentów do wysłania przy każdym żądaniu zbiorczym. Optymalna wielkość zależy od wielu czynników, ale staraj się błądzić w kierunku zbyt mało, a nie zbyt wielu dokumentów. Używaj współbieżnych żądań zbiorczych z wątkami po stronie klienta lub oddzielnymi asynchronicznymi żądaniami.

do dalszych badań odnosi się do takich połączeń:

1) Performance considerations for elasticsearch indexing

2) Document maximum size for bulk indexing over HTTP

+1

Dla maksymalnej wielkości żądanie HTTP, patrz https://github.com/elastic/elasticsearch /blob/148265bd164cd5a614cd020fb480d5974f523d81/docs/reference/modules/http.asciidoc – vvs14

Powiązane problemy