@Override public ChunkCacheKey readObject(final ObjectInput input) throws IOException { final String indexName = input.readUTF(); final String fileName = input.readUTF(); final int chunkId = UnsignedNumeric.readUnsignedInt(input); final int bufferSize = UnsignedNumeric.readUnsignedInt(input); return new ChunkCacheKey(indexName, fileName, chunkId, bufferSize); }
private void setBufferToCurrentChunk() throws IOException { ChunkCacheKey key = new ChunkCacheKey(fileKey.getIndexName(), filename, currentLoadedChunk, chunkSize, affinitySegmentId); buffer = (byte[]) chunksCache.get(key); if (buffer == null) { throw new IOException("Read past EOF: Chunk value could not be found for key " + key); } currentBufferSize = buffer.length; }
private void setBufferToCurrentChunk() throws IOException { ChunkCacheKey key = new ChunkCacheKey(fileKey.getIndexName(), filename, currentLoadedChunk, chunkSize); buffer = (byte[]) chunksCache.get(key); if (buffer == null) { throw new IOException("Read past EOF: Chunk value could not be found for key " + key); } currentBufferSize = buffer.length; }
private void setBufferToCurrentChunk() throws IOException { ChunkCacheKey key = new ChunkCacheKey(fileKey.getIndexName(), filename, currentLoadedChunk, chunkSize, affinitySegmentId); buffer = (byte[]) chunksCache.get(key); if (buffer == null) { throw new IOException("Read past EOF: Chunk value could not be found for key " + key); } currentBufferSize = buffer.length; }
private void setBufferToCurrentChunkIfPossible() { ChunkCacheKey key = new ChunkCacheKey(fileKey.getIndexName(), filename, currentLoadedChunk, chunkSize); buffer = (byte[]) chunksCache.get(key); if (buffer == null) { currentLoadedChunk--; bufferPosition = chunkSize; } else { currentBufferSize = buffer.length; } }
@Override public ChunkCacheKey readObject(final ObjectInput input) throws IOException { final String indexName = input.readUTF(); final String fileName = input.readUTF(); final int chunkId = UnsignedNumeric.readUnsignedInt(input); final int bufferSize = UnsignedNumeric.readUnsignedInt(input); final int affinitySegmentId = UnsignedNumeric.readUnsignedInt(input); return new ChunkCacheKey(indexName, fileName, chunkId, bufferSize, affinitySegmentId); }
@Override public ChunkCacheKey readObject(final ObjectInput input) throws IOException { final String indexName = input.readUTF(); final String fileName = input.readUTF(); final int chunkId = UnsignedNumeric.readUnsignedInt(input); final int bufferSize = UnsignedNumeric.readUnsignedInt(input); final int affinitySegmentId = UnsignedNumeric.readUnsignedInt(input); return new ChunkCacheKey(indexName, fileName, chunkId, bufferSize, affinitySegmentId); }
private void setBufferToCurrentChunkIfPossible() { ChunkCacheKey key = new ChunkCacheKey(fileKey.getIndexName(), filename, currentLoadedChunk, chunkSize, affinitySegmentId); buffer = (byte[]) chunksCache.get(key); if (buffer == null) { currentLoadedChunk--; bufferPosition = chunkSize; } else { currentBufferSize = buffer.length; } }
private void setBufferToCurrentChunkIfPossible() { ChunkCacheKey key = new ChunkCacheKey(fileKey.getIndexName(), filename, currentLoadedChunk, chunkSize, affinitySegmentId); buffer = (byte[]) chunksCache.get(key); if (buffer == null) { currentLoadedChunk--; bufferPosition = chunkSize; } else { currentBufferSize = buffer.length; } }
@Test public void testChunkCacheKeyComparison() { AssertJUnit.assertFalse("The object should not be equals to null.", new ChunkCacheKey("index-A", "fileName", 0, 1024, -1).equals(null)); AssertJUnit.assertFalse("The ChunkCacheKey objects should not be equal due to different file names.", new ChunkCacheKey("index-A", "fileName", 0, 1024, -1).equals(new ChunkCacheKey("index-A", "fileName1", 0, 1024, -1))); AssertJUnit.assertEquals("The ChunkCacheKey objects should be equal.", new ChunkCacheKey("index-A", "fileName", 0, 1024, -1), new ChunkCacheKey("index-A", "fileName", 0, 1024, -1)); }
@Test public void testChunkCacheKeyExternalizer() throws IOException { ChunkCacheKey key = new ChunkCacheKey("myIndex", "filename", 5, 1000, 7); verifyExternalizerForType(key, ChunkCacheKey.Externalizer.class); }
/** * @param bufferToFlush * @param chunkNumber */ private void storeBufferAsChunk(final byte[] bufferToFlush, final int chunkNumber) { ChunkCacheKey key = new ChunkCacheKey(fileKey.getIndexName(), fileKey.getFileName(), chunkNumber, bufferSize, affinitySegmentId); if (trace) log.tracef("Storing segment chunk: %s", key); chunksCacheForStorage.put(key, bufferToFlush); }
/** * @param bufferToFlush * @param chunkNumber */ private void storeBufferAsChunk(final byte[] bufferToFlush, final int chunkNumber) { ChunkCacheKey key = new ChunkCacheKey(fileKey.getIndexName(), fileKey.getFileName(), chunkNumber, bufferSize, affinitySegmentId); if (trace) log.tracef("Storing segment chunk: %s", key); chunksCacheForStorage.put(key, bufferToFlush); }
/** * @param bufferToFlush * @param chunkNumber */ private void storeBufferAsChunk(final byte[] bufferToFlush, final int chunkNumber) { ChunkCacheKey key = new ChunkCacheKey(fileKey.getIndexName(), fileKey.getFileName(), chunkNumber, bufferSize); if (trace) log.tracef("Storing segment chunk: %s", key); chunksCacheForStorage.put(key, bufferToFlush); }
/** * Verifies a file is divided in N chunks */ private void assertHasNChunks(int expectedChunks, Cache cache, String index, String fileName, int bufferSize) { int i=0; for (; i<expectedChunks; i++) { ChunkCacheKey key = new ChunkCacheKey(index, fileName, i, bufferSize, -1); assertTrue("should contain key " + key, cache.containsKey(key)); } ChunkCacheKey key = new ChunkCacheKey(index, fileName, i, bufferSize, -1); AssertJUnit.assertFalse("should NOT contain key " + key, cache.containsKey(key)); }
public SingleChunkIndexInput(final IndexInputContext iic) { super(iic.fileKey.getFileName()); ChunkCacheKey key = new ChunkCacheKey(iic.fileKey.getIndexName(), iic.fileKey.getFileName(), 0, iic.fileMetadata.getBufferSize(), iic.affinitySegmentId); byte[] b = (byte[]) iic.chunksCache.get(key); if (b == null) { buffer = new byte[0]; } else { buffer = b; } bufferPosition = 0; }
public SingleChunkIndexInput(final IndexInputContext iic) { super(iic.fileKey.getFileName()); ChunkCacheKey key = new ChunkCacheKey(iic.fileKey.getIndexName(), iic.fileKey.getFileName(), 0, iic.fileMetadata.getBufferSize(), iic.affinitySegmentId); byte[] b = (byte[]) iic.chunksCache.get(key); if (b == null) { buffer = Util.EMPTY_BYTE_ARRAY; } else { buffer = b; } bufferPosition = 0; }
public SingleChunkIndexInput(final IndexInputContext iic) { super(iic.fileKey.getFileName()); ChunkCacheKey key = new ChunkCacheKey(iic.fileKey.getIndexName(), iic.fileKey.getFileName(), 0, iic.fileMetadata.getBufferSize()); byte[] b = (byte[]) iic.chunksCache.get(key); if (b == null) { buffer = new byte[0]; } else { buffer = b; } bufferPosition = 0; }
public void testLoadAllKeysWithChunkExclusion() throws Exception { TestHelper.createIndex(rootDir, indexName, elementCount, true); LuceneCacheLoader cacheLoader = (LuceneCacheLoader) TestingUtil.getFirstLoader(cacheManager.getCache()); HashSet exclusionSet = new HashSet(); String[] fileNames = TestHelper.getFileNamesFromDir(rootDir, indexName); for(String fileName : fileNames) { exclusionSet.add(new ChunkCacheKey(indexName, fileName, 0, 110, segmentId)); } Set keyList = PersistenceUtil.toKeySet(cacheLoader, null); checkIfExists(keyList, exclusionSet, true, false); keyList = PersistenceUtil.toKeySet(cacheLoader, k -> !exclusionSet.contains(k)); checkIfExists(keyList, exclusionSet, false, true); }
public void testContainsKeyCacheKeyTypes() throws Exception { TestHelper.createIndex(rootDir, indexName, elementCount, true); LuceneCacheLoader cacheLoader = (LuceneCacheLoader) TestingUtil.getFirstLoader(cacheManager.getCache()); assert cacheLoader.contains(new FileListCacheKey(indexName, segmentId)); String[] fileNamesFromIndexDir = TestHelper.getFileNamesFromDir(rootDir, indexName); for(String fileName : fileNamesFromIndexDir) { assert !cacheLoader.contains(new FileReadLockKey(indexName, fileName, segmentId)) : "Failed for " + fileName; assert cacheLoader.contains(new ChunkCacheKey(indexName, fileName, 0, 1024, segmentId)) : "Failed for " + fileName; } assert !cacheLoader.contains(new ChunkCacheKey(indexName, "testFile.txt", 0, 1024, segmentId)); }