Class FileBlobStore
java.lang.Object
org.apache.jackrabbit.oak.spi.blob.AbstractBlobStore
org.apache.jackrabbit.oak.spi.blob.FileBlobStore
- All Implemented Interfaces:
AutoCloseable,Cache.Backend<AbstractBlobStore.BlockId,,AbstractBlobStore.Data> BlobStore,GarbageCollectableBlobStore
A file blob store.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.jackrabbit.oak.spi.blob.AbstractBlobStore
AbstractBlobStore.BlockId, AbstractBlobStore.Data -
Field Summary
Fields inherited from class org.apache.jackrabbit.oak.spi.blob.AbstractBlobStore
BLOCK_SIZE_LIMIT, HASH_ALGORITHM, inUse, TYPE_DATA, TYPE_HASH -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidClear the cache.longcountDeleteChunks(List<String> chunkIds, long maxLastModifiedTime) Deletes the blobs with the given ids.getAllChunkIds(long maxLastModifiedTime) Gets all the identifiers.protected booleanprotected voidprotected byte[]Load the block from the storage backend.voidStart the mark phase.protected voidstoreBlock(byte[] digest, int level, byte[] data) Store a block of data.intsweep()Remove all unused blocks.Write a blob from a temporary file.Methods inherited from class org.apache.jackrabbit.oak.spi.blob.AbstractBlobStore
clearInUse, close, deleteChunks, getBlobId, getBlobLength, getBlockSize, getBlockSizeMin, getInputStream, getOrCreateReferenceKey, getReference, getStatsCollector, load, mark, markInUse, readBlob, resolveChunks, setBlockSize, setBlockSizeMin, setReferenceKey, setReferenceKeyEncoded, setReferenceKeyPlainText, setStatsCollector, usesBlobId, writeBlob, writeBlob
-
Constructor Details
-
FileBlobStore
-
-
Method Details
-
writeBlob
Description copied from interface:GarbageCollectableBlobStoreWrite a blob from a temporary file. The temporary file is removed afterwards. A file based blob stores might simply rename the file, so that no additional writes are necessary.- Specified by:
writeBlobin interfaceGarbageCollectableBlobStore- Overrides:
writeBlobin classAbstractBlobStore- Parameters:
tempFilePath- the temporary file name- Returns:
- the blob id
- Throws:
IOException
-
storeBlock
Description copied from class:AbstractBlobStoreStore a block of data.- Specified by:
storeBlockin classAbstractBlobStore- Parameters:
digest- the content hash (32 bytes)level- the indirection level (0 is for user data, 1 is a list of digests that point to user data, 2 is a list of digests that point to digests, and so on). This parameter is for informational use only, and it is not required to store it unless that's easy to achievedata- the data to be stored (the number of bytes is at most the block size)- Throws:
IOException
-
readBlockFromBackend
Description copied from class:AbstractBlobStoreLoad the block from the storage backend. Returns null if the block was not found.- Specified by:
readBlockFromBackendin classAbstractBlobStore- Parameters:
id- the block id- Returns:
- the block data, or null
- Throws:
IOException
-
startMark
Description copied from interface:GarbageCollectableBlobStoreStart the mark phase.- Specified by:
startMarkin interfaceGarbageCollectableBlobStore- Specified by:
startMarkin classAbstractBlobStore- Throws:
IOException
-
isMarkEnabled
protected boolean isMarkEnabled()- Specified by:
isMarkEnabledin classAbstractBlobStore
-
mark
- Specified by:
markin classAbstractBlobStore- Throws:
IOException
-
sweep
Description copied from interface:GarbageCollectableBlobStoreRemove all unused blocks.- Specified by:
sweepin interfaceGarbageCollectableBlobStore- Specified by:
sweepin classAbstractBlobStore- Returns:
- the number of removed blocks
- Throws:
IOException
-
countDeleteChunks
Description copied from interface:GarbageCollectableBlobStoreDeletes the blobs with the given ids.- Parameters:
chunkIds- the chunk idsmaxLastModifiedTime- the max last modified time to consider for retrieval, with the special value '0' meaning no filtering by time- Returns:
- long the count of successful deletions
- Throws:
Exception- the exception
-
getAllChunkIds
Description copied from interface:GarbageCollectableBlobStoreGets all the identifiers.- Parameters:
maxLastModifiedTime- the max last modified time to consider for retrieval, with the special value '0' meaning no filtering by time- Returns:
- the identifiers
- Throws:
Exception- the exception
-
clearCache
public void clearCache()Description copied from interface:GarbageCollectableBlobStoreClear the cache.
-