Class FederationAccessManagerWithPersistedDiskCache
java.lang.Object
se.liu.ida.hefquin.engine.federation.access.impl.FederationAccessManagerWithCache
se.liu.ida.hefquin.engine.federation.access.impl.FederationAccessManagerWithPersistedDiskCache
- All Implemented Interfaces:
StatsProvider
,FederationAccessManager
A FederationAccessManager implementation that incorporates persistent disk
caching of SPARQL cardinality requests.
TODO: The implementation uses a simple serialization/deserialization
strategy, where the file is stored to disk by writing the full map to disk
for each update. This approach is not optimized for this task but is simply
intended as a proof of concept. A future implementation should support
standard cache configuration policys, such as time-based eviction (time to
live), but should leverage an optimized persistence strategy, preferably
leveraging a libary.
Note: Most of the classes/interfaces involved (e.g., DataRetrievalResponse,
CardinalityResponse etc.) do not support serialization.
-
Nested Class Summary
Nested classes/interfaces inherited from class se.liu.ida.hefquin.engine.federation.access.impl.FederationAccessManagerWithCache
FederationAccessManagerWithCache.Key, FederationAccessManagerWithCache.MyDefaultCachePolicies
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final PersistableCardinalityCacheImpl
<CardinalityCacheKey> Fields inherited from class se.liu.ida.hefquin.engine.federation.access.impl.FederationAccessManagerWithCache
cache, cacheHitsBRTPF, cacheHitsBRTPFCardinality, cacheHitsNeo4j, cacheHitsSPARQL, cacheHitsSPARQLCardinality, cacheHitsTPF, cacheHitsTPFCardinality, cacheMap, cacheRequestsBRTPF, cacheRequestsNeo4j, cacheRequestsSPARQL, cacheRequestsTPF, fedAccMan
-
Constructor Summary
ConstructorsConstructorDescriptionCreates aFederationAccessManagerWithPersistedDiskCache
with a default configuration.FederationAccessManagerWithPersistedDiskCache
(FederationAccessManager fedAccMan, int cacheCapacity) FederationAccessManagerWithPersistedDiskCache
(FederationAccessManager fedAccMan, int cacheCapacity, CachePolicies<FederationAccessManagerWithCache.Key, CompletableFuture<? extends DataRetrievalResponse<?>>, ? extends CacheEntry<CompletableFuture<? extends DataRetrievalResponse<?>>>> cachePolicies) -
Method Summary
Modifier and TypeMethodDescriptionvoid
Clears the persisted cardinality cache map.Requests the cardinality of the result of the given request.issueCardinalityRequest
(TPFRequest req, BRTPFServer fm) issueCardinalityRequest
(TPFRequest req, TPFServer fm) Methods inherited from class se.liu.ida.hefquin.engine.federation.access.impl.FederationAccessManagerWithCache
getStats, issueRequest, issueRequest, issueRequest, issueRequest, issueRequest, resetStats
-
Field Details
-
cardinalityCache
-
-
Constructor Details
-
FederationAccessManagerWithPersistedDiskCache
public FederationAccessManagerWithPersistedDiskCache(FederationAccessManager fedAccMan, int cacheCapacity, CachePolicies<FederationAccessManagerWithCache.Key, CompletableFuture<? extends DataRetrievalResponse<?>>, ? extends CacheEntry<CompletableFuture<? extends DataRetrievalResponse<?>>>> cachePolicies) -
FederationAccessManagerWithPersistedDiskCache
public FederationAccessManagerWithPersistedDiskCache(FederationAccessManager fedAccMan, int cacheCapacity) -
FederationAccessManagerWithPersistedDiskCache
Creates aFederationAccessManagerWithPersistedDiskCache
with a default configuration.
-
-
Method Details
-
issueCardinalityRequest
public CompletableFuture<CardinalityResponse> issueCardinalityRequest(SPARQLRequest req, SPARQLEndpoint fm) throws FederationAccessException Description copied from interface:FederationAccessManager
Requests the cardinality of the result of the given request. Assumes that the given request contains aSPARQLGraphPattern
rather than a fullSPARQLQuery
. If it does not, then this method throws anIllegalArgumentException
.- Specified by:
issueCardinalityRequest
in interfaceFederationAccessManager
- Overrides:
issueCardinalityRequest
in classFederationAccessManagerWithCache
- Throws:
FederationAccessException
-
issueCardinalityRequest
public CompletableFuture<CardinalityResponse> issueCardinalityRequest(TPFRequest req, TPFServer fm) throws FederationAccessException - Specified by:
issueCardinalityRequest
in interfaceFederationAccessManager
- Overrides:
issueCardinalityRequest
in classFederationAccessManagerWithCache
- Throws:
FederationAccessException
-
issueCardinalityRequest
public CompletableFuture<CardinalityResponse> issueCardinalityRequest(TPFRequest req, BRTPFServer fm) throws FederationAccessException - Specified by:
issueCardinalityRequest
in interfaceFederationAccessManager
- Overrides:
issueCardinalityRequest
in classFederationAccessManagerWithCache
- Throws:
FederationAccessException
-
issueCardinalityRequest
public CompletableFuture<CardinalityResponse> issueCardinalityRequest(BRTPFRequest req, BRTPFServer fm) throws FederationAccessException - Specified by:
issueCardinalityRequest
in interfaceFederationAccessManager
- Overrides:
issueCardinalityRequest
in classFederationAccessManagerWithCache
- Throws:
FederationAccessException
-
clearCardinalityCache
public void clearCardinalityCache()Clears the persisted cardinality cache map.
-