@Inject public HeapStore(ShardId shardId, @IndexSettings Settings indexSettings) { super(shardId, indexSettings); this.bufferSize = componentSettings.getAsSize("buffer_size", new SizeValue(100, SizeUnit.KB)); this.cacheSize = componentSettings.getAsSize("cache_size", new SizeValue(20, SizeUnit.MB)); this.warmCache = componentSettings.getAsBoolean("warm_cache", true); this.directory = new HeapDirectory(bufferSize, cacheSize, warmCache); logger.debug( "Using [heap] Store with buffer_size[{}], cache_size[{}], warm_cache[{}]", new Object[] {directory.bufferSize(), directory.cacheSize(), warmCache}); }
public HeapIndexInput(HeapDirectory dir, HeapRamFile file) throws IOException { this.bufferSize = dir.bufferSizeInBytes(); this.file = file; length = file.length(); if (length / dir.bufferSizeInBytes() >= Integer.MAX_VALUE) { throw new IOException("Too large RAMFile! " + length); } // make sure that we switch to the // first needed buffer lazily currentBufferIndex = -1; currentBuffer = null; }