<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>directory &#8211; Solr.pl</title>
	<atom:link href="https://solr.pl/tag/directory/feed/" rel="self" type="application/rss+xml" />
	<link>https://solr.pl</link>
	<description>All things to be found - Blog related to Apache Solr &#38; Lucene projects - https://solr.apache.org</description>
	<lastBuildDate>Sat, 14 Nov 2020 11:51:30 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>Solr 8: ByteBuffersDirectory &#8211; szybkie spojrzenie</title>
		<link>https://solr.pl/2019/04/15/solr-8-bytebuffersdirectory-szybkie-spojrzenie/</link>
					<comments>https://solr.pl/2019/04/15/solr-8-bytebuffersdirectory-szybkie-spojrzenie/#respond</comments>
		
		<dc:creator><![CDATA[Rafał Kuć]]></dc:creator>
		<pubDate>Mon, 15 Apr 2019 10:50:59 +0000</pubDate>
				<category><![CDATA[Solr]]></category>
		<category><![CDATA[directory]]></category>
		<category><![CDATA[solr]]></category>
		<guid isPermaLink="false">http://sematext.solr.pl/?p=782</guid>

					<description><![CDATA[Jedną z nowości wprowadzonych w niedawno opublikowanym Solr 8.0 jest nowa implementacja interfejsu Directory mająca zastąpić mało skalowalne RAMDirectory. Ta nowa implementacja to ByteBuffersDirectory dedykowana małym, krótko żyjącym danym. Przyjrzyjmy się zatem potencjalnym zastosowaniom, ograniczeniom i wykorzystaniu w Solr. Konfiguracja]]></description>
										<content:encoded><![CDATA[
<p>Jedną z nowości wprowadzonych w <a href="https://solr.pl/2019/03/14/lucene-i-solr-8-0/">niedawno opublikowanym Solr 8.0</a> jest nowa implementacja interfejsu <em>Directory</em> mająca zastąpić mało skalowalne <em>RAMDirectory</em>. Ta nowa implementacja to <em>ByteBuffersDirectory</em> dedykowana małym, krótko żyjącym danym. Przyjrzyjmy się zatem potencjalnym zastosowaniom, ograniczeniom i wykorzystaniu w Solr. </p>



<span id="more-782"></span>



<h2 class="wp-block-heading">Konfiguracja</h2>



<p>Po pierwsze &#8211; konfiguracja. W tym wypadku sprawa jest całkiem prosta. W pliku <em>solrconfig.xml</em> musimy skonfigurować odpowiednią implementację <em>Directory</em>. Wygląda to mniej, więcej tak:</p>



<pre class="wp-block-code">&lt;directoryFactory name="DirectoryFactory" class="solr.ByteBuffersDirectoryFactory" /&gt;</pre>



<p>Należy pamiętać o jednej rzeczy. W przypadku <em>ByteBuffersDirectory</em> jedyną możliwą implementacją <em>lockType</em> jest <em>simple</em>. Inne nie są wspierane.</p>



<h2 class="wp-block-heading">Możliwe wykorzystanie</h2>



<p>Nowa implementacja <em>Directory</em> wprowadzona wraz z Solr 8.0 w przyszłości może zastąpić <em>RAMDirectory</em> obecne w Lucene i Solr już od długiego czasu, aczkolwiek nie polecane ze względu na swoje bolączki i potencjalnie występujące problemy. </p>



<p>Teoretyczne wykorzystanie tego typu implementacji <em>Directory</em> sprowadza się do małych, krótko żyjących indeksów Lucene, które trzymane tylko i wyłącznie w pamięci powodują brak zapisu/odczytu z dysku, a tym samym brak wykorzystania I/O i potencjalnie szybsze operacje indeksowania i wyszukiwania. </p>



<p>Przykładem takich rozwiązań mogą być dane wymagające ciągłych aktualizacji, na przykład stany magazynowe, dane które potrzebne są tylko i wyłączenie raz, itp. </p>



<p>Należy jednak pamiętać, iż podobnie do <em>RAMDirectory</em>, tak samo <em>ByteBuffersDirectory</em> nie zapisuje danych na dysku. Oznacza to konieczność ponownej indeksacji danych na przykład po ponownych uruchomieniu Solr. </p>



<h2 class="wp-block-heading">Zalety</h2>



<p>Podstawowa zaleta to ta, iż dane zaindeksowane do kolekcji/rdzenia, który oparty jest o <em>ByteBuffersDirectory</em>, nie będą wykorzystywać zasobów dyskowych. Oznacza to bardzo szybki zapis i odczyt danych, co może skutkować wzrostem wydajności indeksowania i zmniejszeniem czasu odpowiedzi na zapytania. Należy jednak pamiętać, iż podobne zachowanie możliwe jest w przypadku zastosowania implementacji <em>Directory</em> opartych o dostęp do danych za pomocą <em>mmap</em>, takich jak <em>MMapDirectory</em>, która to współdzieli cache I/O systemu operacyjnego. Dodatkowo <em>ByteBuffersDirectory</em> w pełni wspiera wielowątkowość, co jest znaczącą poprawą w stosunku do <em>RAMDirectory</em>.</p>



<h2 class="wp-block-heading">Wady</h2>



<p>Jeżeli mówimy o wadach, to warto wspomnieć o trzech rzeczach. Po pierwsze brak trwałości danych, a co za tym idzie konieczność ich odtwarzania po każdym restarcie. Oczywiście, jest to założenie tej implementacji, ale warto o tym pamiętać. Druga rzecz to śmieci w pamięci. Nawet krótko żyjące kolekcje będą tworzyć dane na stosie, a tym samym garbage collector będzie musiał je posprzątać. Ostatnia &#8211; jesteśmy ograniczeni fizyczną pojemnością pamięci, a dokładniej wielkością pamięci przydzielonej dla wirtualnej maszyny Java i dobrymi praktykami odnośnie wykorzystania pamięci, należy o tym pamiętać. </p>
]]></content:encoded>
					
					<wfw:commentRss>https://solr.pl/2019/04/15/solr-8-bytebuffersdirectory-szybkie-spojrzenie/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
