Hi Uwe,

This sounds very interesting, I will try this configuration this afternoon and 
I’ll let you know what happens.

Many thanks for the suggestion! :)

Seb



> On 2 Jan 2023, at 11:48, Uwe Schindler <u...@thetaphi.de> wrote:
> 
> Hi,
> 
> in general you can still use MMapDirectory. There is no requirement to set 
> vm.max_map_count for smaller clusters. The information in Elastics 
> documentation is not mandatory and misleading.
> 
> If you use newest version of Elasticsearch with Java 19 and you use 
> `--enable-preview` in you jvm.properties file, you don't even need to change 
> that setting even with larger clusters.
> 
> Uwe
> 
> Am 02.01.2023 um 11:18 schrieb S S:
>> We are experimenting with Elastic Search deployed in Azure Container 
>> Instances (Debian + OpenJDK). The ES indexes are stored into an Azure file 
>> share mounted via SMB (3.0). The Elastic Search cluster is made up of 4 
>> nodes, each one have a separate file share to store the indices.
>> 
>> This configuration has been influenced by some ACIs limitations, 
>> specifically:
>> 
>> we cannot set the max_map_count value as we do not have access to the 
>> underlying host 
>> (https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html).
>>  Unfortunately, this is required to run an ES cluster, therefore we were 
>> forced to use NIOF
>> ACI’s storage is ephemera, therefore we had to map volumes to persist the 
>> indexes. ACIs only allow volume mappings using Azure File Shares, which only 
>> works with NFS or SMB.
>> 
>> We are experiencing recurring index corruption, specifically a "read past 
>> EOF" exception. I asked on the Elastic Search forum but the answer I got was 
>> a bit generic and not really helpful other than confirming that, from ES 
>> point of view, ES should work on an SMB share as long as it behaves as a 
>> local drive. As the underlying exception relates to an issue with a Lucene 
>> index, I was wondering if you could help out? Specifically, can Lucene work 
>> on SMB? I can only find sparse information on this configuration and, while 
>> NFS seems a no-no, for SMB is not that clear. Below is the exception we are 
>> getting.
>> 
>> java.io.IOException: read past EOF: 
>> NIOFSIndexInput(path="/bitnami/elasticsearch/data/indices/mS2bUbLtSeG0FSAMuKX7JQ/0/index/_ldsn_1.fnm")
>>  buffer: java.nio.HeapByteBuffer[pos=0 lim=1024 cap=1024] chunkLen: 1024 
>> end: 2331: 
>> NIOFSIndexInput(path="/bitnami/elasticsearch/data/indices/mS2bUbLtSeG0FSAMuKX7JQ/0/index/_ldsn_1.fnm")
>>               at 
>> org.apache.lucene.store.NIOFSDirectory$NIOFSIndexInput.readInternal(NIOFSDirectory.java:200)
>>  ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.store.BufferedIndexInput.refill(BufferedIndexInput.java:291)
>>  ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.store.BufferedIndexInput.readByte(BufferedIndexInput.java:55)
>>  ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.store.BufferedChecksumIndexInput.readByte(BufferedChecksumIndexInput.java:39)
>>  ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.codecs.CodecUtil.readBEInt(CodecUtil.java:667) 
>> ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.codecs.CodecUtil.checkHeader(CodecUtil.java:184) 
>> ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.codecs.CodecUtil.checkIndexHeader(CodecUtil.java:253) 
>> ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.codecs.lucene90.Lucene90FieldInfosFormat.read(Lucene90FieldInfosFormat.java:128)
>>  ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.index.SegmentReader.initFieldInfos(SegmentReader.java:205) 
>> ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:156) 
>> ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.index.ReadersAndUpdates.createNewReaderWithLatestLiveDocs(ReadersAndUpdates.java:738)
>>  ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.index.ReadersAndUpdates.swapNewReaderWithLatestLiveDocs(ReadersAndUpdates.java:754)
>>  ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.index.ReadersAndUpdates.writeFieldUpdates(ReadersAndUpdates.java:678)
>>  ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.index.ReaderPool.writeAllDocValuesUpdates(ReaderPool.java:251)
>>  ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.index.IndexWriter.writeReaderPool(IndexWriter.java:3743) 
>> ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.index.IndexWriter.getReader(IndexWriter.java:591) 
>> ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.index.StandardDirectoryReader.doOpenFromWriter(StandardDirectoryReader.java:381)
>>  ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:355)
>>  ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:345)
>>  ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.index.FilterDirectoryReader.doOpenIfChanged(FilterDirectoryReader.java:112)
>>  ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.index.DirectoryReader.openIfChanged(DirectoryReader.java:170)
>>  ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.elasticsearch.index.engine.ElasticsearchReaderManager.refreshIfNeeded(ElasticsearchReaderManager.java:48)
>>  ~[elasticsearch-8.4.1.jar:?]
>>               at 
>> org.elasticsearch.index.engine.ElasticsearchReaderManager.refreshIfNeeded(ElasticsearchReaderManager.java:27)
>>  ~[elasticsearch-8.4.1.jar:?]
>>               at 
>> org.apache.lucene.search.ReferenceManager.doMaybeRefresh(ReferenceManager.java:167)
>>  ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.apache.lucene.search.ReferenceManager.maybeRefreshBlocking(ReferenceManager.java:240)
>>  ~[lucene-core-9.3.0.jar:?]
>>               at 
>> org.elasticsearch.index.engine.InternalEngine$ExternalReaderManager.refreshIfNeeded(InternalEngine.java:355)
>>  ~[elasticsearch-8.4.1.jar:?]
>>               at 
>> org.elasticsearch.index.engine.InternalEngine$ExternalReaderManager.refreshIfNeeded(InternalEngine.java:335)
>>  ~[elasticsearch-8.4.1.jar:?]
>>               at 
>> org.apache.lucene.search.ReferenceManager.doMaybeRefresh(ReferenceManager.java:167)
>>  ~[lucene-core-9.3.0.jar:?]
>> Many thanks.
>> 
>> Seb
> 
> -- 
> Uwe Schindler
> Achterdiek 19, D-28357 Bremen
> https://www.thetaphi.de
> eMail: u...@thetaphi.de
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
> For additional commands, e-mail: java-user-h...@lucene.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to