Package org.apache.solr.filestore
Class DistribPackageStore
- java.lang.Object
-
- org.apache.solr.filestore.DistribPackageStore
-
- All Implemented Interfaces:
PackageStore
@NotThreadSafe public class DistribPackageStore extends Object implements PackageStore
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.solr.filestore.PackageStore
PackageStore.FileDetails, PackageStore.FileEntry, PackageStore.FileType
-
-
Constructor Summary
Constructors Constructor Description DistribPackageStore(CoreContainer coreContainer)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static PackageStore.FileType
_getFileType(File file)
static void
_persistToFile(Path solrHome, String path, ByteBuffer data, ByteBuffer meta)
Internal APIvoid
delete(String path)
Delete a file cluster-widevoid
deleteLocal(String path)
Delete file from local file systemstatic void
deleteZKFileEntry(org.apache.solr.common.cloud.SolrZkClient client, String path)
boolean
fetch(String path, String from)
Fetch a resource from another node internal APIvoid
get(String path, Consumer<PackageStore.FileEntry> consumer, boolean fetchmissing)
read file content from a given pathMap<String,byte[]>
getKeys()
Get all the keys in the package store.static Path
getPackageStoreDirPath(Path solrHome)
Path
getRealpath(String path)
get the real path on filesystemPackageStore.FileType
getType(String path, boolean fetchMissing)
The type of the resourcestatic boolean
isMetaDataFile(String file)
List<PackageStore.FileDetails>
list(String path, Predicate<String> predicate)
void
put(PackageStore.FileEntry entry)
Store a file into the filestore.void
refresh(String path)
Refresh the files in a path.void
syncToAllNodes(String path)
Sync a local file to all nodes.
-
-
-
Constructor Detail
-
DistribPackageStore
public DistribPackageStore(CoreContainer coreContainer)
-
-
Method Detail
-
getRealpath
public Path getRealpath(String path)
Description copied from interface:PackageStore
get the real path on filesystem- Specified by:
getRealpath
in interfacePackageStore
-
put
public void put(PackageStore.FileEntry entry) throws IOException
Description copied from interface:PackageStore
Store a file into the filestore. This should ensure that it is replicated across all nodes in the cluster- Specified by:
put
in interfacePackageStore
- Throws:
IOException
-
fetch
public boolean fetch(String path, String from)
Description copied from interface:PackageStore
Fetch a resource from another node internal API- Specified by:
fetch
in interfacePackageStore
-
get
public void get(String path, Consumer<PackageStore.FileEntry> consumer, boolean fetchmissing) throws IOException
Description copied from interface:PackageStore
read file content from a given path- Specified by:
get
in interfacePackageStore
- Throws:
IOException
-
syncToAllNodes
public void syncToAllNodes(String path) throws IOException
Description copied from interface:PackageStore
Sync a local file to all nodes. All the nodes are asked to pull the file from this node- Specified by:
syncToAllNodes
in interfacePackageStore
- Throws:
IOException
-
list
public List<PackageStore.FileDetails> list(String path, Predicate<String> predicate)
- Specified by:
list
in interfacePackageStore
-
delete
public void delete(String path)
Description copied from interface:PackageStore
Delete a file cluster-wide- Specified by:
delete
in interfacePackageStore
-
deleteLocal
public void deleteLocal(String path)
Description copied from interface:PackageStore
Delete file from local file system- Specified by:
deleteLocal
in interfacePackageStore
-
refresh
public void refresh(String path)
Description copied from interface:PackageStore
Refresh the files in a path. May be this node does not have all files- Specified by:
refresh
in interfacePackageStore
- Parameters:
path
- the path to be refreshed.
-
getType
public PackageStore.FileType getType(String path, boolean fetchMissing)
Description copied from interface:PackageStore
The type of the resource- Specified by:
getType
in interfacePackageStore
-
_getFileType
public static PackageStore.FileType _getFileType(File file)
-
isMetaDataFile
public static boolean isMetaDataFile(String file)
-
_persistToFile
public static void _persistToFile(Path solrHome, String path, ByteBuffer data, ByteBuffer meta) throws IOException
Internal API- Throws:
IOException
-
getKeys
public Map<String,byte[]> getKeys() throws IOException
Description copied from interface:PackageStore
Get all the keys in the package store. The data is a .DER file content- Specified by:
getKeys
in interfacePackageStore
- Throws:
IOException
-
deleteZKFileEntry
public static void deleteZKFileEntry(org.apache.solr.common.cloud.SolrZkClient client, String path)
-
-