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 aFederationAccessManagerWithPersistedDiskCachewith 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 TypeMethodDescriptionvoidClears 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, shutdown
-
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 aFederationAccessManagerWithPersistedDiskCachewith a default configuration.
-
-
Method Details
-
issueCardinalityRequest
public CompletableFuture<CardinalityResponse> issueCardinalityRequest(SPARQLRequest req, SPARQLEndpoint fm) throws FederationAccessException Description copied from interface:FederationAccessManagerRequests the cardinality of the result of the given request. Assumes that the given request contains aSPARQLGraphPatternrather than a fullSPARQLQuery. If it does not, then this method throws anIllegalArgumentException.- Specified by:
issueCardinalityRequestin interfaceFederationAccessManager- Overrides:
issueCardinalityRequestin classFederationAccessManagerWithCache- Throws:
FederationAccessException
-
issueCardinalityRequest
public CompletableFuture<CardinalityResponse> issueCardinalityRequest(TPFRequest req, TPFServer fm) throws FederationAccessException - Specified by:
issueCardinalityRequestin interfaceFederationAccessManager- Overrides:
issueCardinalityRequestin classFederationAccessManagerWithCache- Throws:
FederationAccessException
-
issueCardinalityRequest
public CompletableFuture<CardinalityResponse> issueCardinalityRequest(TPFRequest req, BRTPFServer fm) throws FederationAccessException - Specified by:
issueCardinalityRequestin interfaceFederationAccessManager- Overrides:
issueCardinalityRequestin classFederationAccessManagerWithCache- Throws:
FederationAccessException
-
issueCardinalityRequest
public CompletableFuture<CardinalityResponse> issueCardinalityRequest(BRTPFRequest req, BRTPFServer fm) throws FederationAccessException - Specified by:
issueCardinalityRequestin interfaceFederationAccessManager- Overrides:
issueCardinalityRequestin classFederationAccessManagerWithCache- Throws:
FederationAccessException
-
clearCardinalityCache
public void clearCardinalityCache()Clears the persisted cardinality cache map.
-