|
DODS 6.5 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.enhydra.dods.cache.ConfigurationAdministration
org.enhydra.dods.cache.DOCache
org.enhydra.dods.cache.TransactionQueryCache
org.enhydra.dods.cache.TransactionCacheImpl
This class contains data and mechanisms needed for caching data objects (or DataStruct objects) and queries and provides cache configuration and administration.
Field Summary | |
protected DODSHashMap |
cache
HashMap for storing data objects. |
protected CacheAdministration[] |
cacheAdministration
Attribute cacheAdministration is array of three objects of the class CacheAdministration. |
protected double |
cachePercentage
|
protected DODSCache |
complexQCache
LRU cache for storing complex queries. |
protected boolean |
fullCachingOn
This attribute is true if the cache is full, otherwise false. |
protected java.lang.String |
initialQueryCache
Initial query statement. |
protected boolean |
multi
This attribute contains information if multi databases are used. |
protected int |
oldComplexMaxCacheSize
Old max complex cache size. |
protected int |
oldSimpleMaxCacheSize
Old max simple cache size. |
protected double |
reserveFactor
This attribute is used in query caching. |
protected DODSCache |
simpleQCache
LRU cache for storing simple queries. |
protected Statistics |
statistics
Table and cache statictics. |
protected TableConfiguration |
tableConf
TableConfiguration attribute handles configuration settings about table of this cache. |
Constructor Summary | |
TransactionCacheImpl()
Constructor(). |
|
TransactionCacheImpl(int maxSQSize,
int maxCQSize)
Constructor(int, int). |
Method Summary | |
QueryCacheItem |
addComplexQuery(QueryCacheItem queryItem)
Adds complex query to complex query cache. |
GenericDO |
addDO(GenericDO newDO)
Adds DO (data object) to the cache. |
QueryCacheItem |
addSimpleQuery(QueryCacheItem queryItem)
Adds simple query to simple query cache. |
void |
checkFull()
Returns information if data object (or DataStruct object) cache if "full". |
GenericDO |
deleteDO(GenericDO DO)
Deletes DO from the cache. |
void |
emptyEntries(java.lang.Class tableClass)
Dumps data structs for all instances of tableClass in transaction cache. |
void |
emptyEntries(java.util.Vector vec,
boolean incrementVersion)
|
CacheAdministration |
getCacheAdministration(int cacheType)
Returns CacheAdministration for data object (or DataStruct object) cache, simple, or complex query cache. |
java.util.Map |
getCacheContent()
Returns cache (data or DataStruct) content. |
double |
getCachePercentage()
Read cache configuration from application's configuration file. |
java.lang.String |
getCacheType()
Returns data object (or DataStruct object) cache type. |
QueryCacheItem |
getComplexQueryCacheItem(java.lang.String dbName,
java.lang.String query)
Returns QueryCacheItem object for specified database and complex query, if exists, otherwise null. |
QueryResult |
getComplexQueryResults(java.lang.String dbName,
java.lang.String query)
Returns query results from complex query cache. |
QueryResult |
getComplexQueryResults(java.lang.String dbName,
java.lang.String query,
int limit,
int maxdb)
Returns query results from complex query cache. |
QueryResult |
getComplexQueryResults(java.lang.String dbName,
java.lang.String query,
int limit,
int maxdb,
boolean unique)
Returns query results from complex query cache. |
GenericDO |
getDOByHandle(java.lang.String handle)
Returns data object whose String representation of OID is parameter handle. |
int |
getInitialCacheFetchSize()
|
int |
getInitialDSCacheSize()
|
java.lang.String |
getInitialQueryCache()
Returns initialQueryCache. |
int |
getLevelOfCaching()
Returns caching level. |
QueryResult |
getQueryResults(java.lang.String dbName,
java.lang.String query)
Returns query results from simple or complex query cache. |
double |
getReserveFactor()
Returns reserveFactor. |
QueryCacheItem |
getSimpleQueryCacheItem(java.lang.String dbName,
java.lang.String query)
Returns QueryCacheItem object for specified database and simple query, if exists, otherwise null. |
QueryResult |
getSimpleQueryResults(java.lang.String dbName,
java.lang.String query)
Returns query results from simple query cache. |
QueryResult |
getSimpleQueryResults(java.lang.String dbName,
java.lang.String query,
int limit,
int maxdb)
Returns query results from simple query cache. |
QueryResult |
getSimpleQueryResults(java.lang.String dbName,
java.lang.String query,
int limit,
int maxdb,
boolean unique)
Returns query results from simple query cache. |
Statistics |
getStatistics()
Returns statistics of used table and caches. |
TableConfiguration |
getTableConfiguration()
Returns object TableConfiguration. |
protected void |
init()
Creates array of three CacheAdministration objects. |
boolean |
isDisabled()
Returns information whether caching is disabled. |
boolean |
isFull()
Returns information if data object (or DataStruct object) cache if "full". |
boolean |
isMulti()
Returns information if multi databases are supported. |
DOCache |
newInstance()
Creates TransactionCacheImpl instance. |
QueryCacheItem |
newQueryCacheItemInstance(java.lang.String dbName)
Creates new QueryCacheItem instance. |
void |
readConfiguration(com.lutris.util.Config tableConfig,
com.lutris.util.Config cacheConfig,
java.lang.String dbName)
Reads table and cache configuration from application's configuration file. |
void |
refreshStatistics()
Refreshes statistics. |
QueryCacheItem |
removeComplexQuery(QueryCacheItem queryItem)
Removes complex query from complex query cache. |
GenericDO |
removeDO(GenericDO DO)
Removes DO (data object) from the cache. |
GenericDO |
removeDO(java.lang.String handle)
Removes DO (data object) from the cache. |
void |
removeEntries(java.lang.Class tableClass)
|
void |
removeEntries(java.util.Vector vec)
|
QueryCacheItem |
removeSimpleQuery(QueryCacheItem queryItem)
Removes simple query from simple query cache. |
protected void |
setCachePercentage(double percent)
|
void |
setInitialCacheFetchSize(int i)
|
void |
setInitialDSCacheSize(int i)
|
protected void |
setInitialQueryCache(java.lang.String initQ)
Sets initialQueryCache attribute. |
protected void |
setReserveFactor(double res)
Sets reserveFactor. |
boolean |
toReconfigure()
Checks wheather cache reconfiguration needs to be done. |
java.lang.String |
toString()
Shows content of this class. |
GenericDO |
updateDO(GenericDO DO)
Updates cached DO, or inserts DO in the cache if it didn't exist in the cache. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected DODSHashMap cache
protected DODSCache simpleQCache
protected DODSCache complexQCache
protected CacheAdministration[] cacheAdministration
protected TableConfiguration tableConf
protected java.lang.String initialQueryCache
protected boolean fullCachingOn
protected boolean multi
protected Statistics statistics
protected int oldSimpleMaxCacheSize
protected int oldComplexMaxCacheSize
protected double reserveFactor
num
is number of needed
results, then it is used
num
+ DEFAULT_RESERVE_FACTOR * num
of
objects for estimating what is quicker: go to database for all object that
are not in the cache, or run again query on database.
This value is given in percents, as number between 0 and 1
(0.25 means 25%).
For example, if DEFAULT_RESERVE_FACTOR is 0.5, and wanted number of
results is 50, the estimation will be done on 75 (50 + 0.5 * 50) objects.
The value of CacheConstants.DEFAULT_RESERVE_FACTOR is 0.5.
protected double cachePercentage
Constructor Detail |
public TransactionCacheImpl(int maxSQSize, int maxCQSize) throws CacheObjectException
maxSQSize
- maximal data (or DataStruct) object cache size.maxCQSize
- maximal data (or DataStruct) object cache size.public TransactionCacheImpl() throws CacheObjectException
Method Detail |
public CacheAdministration getCacheAdministration(int cacheType)
getCacheAdministration
in class ConfigurationAdministration
cacheType
- 0 - for data object (or DataStruct object),
1 for simple query and 2 for complex query cache.public java.lang.String getInitialQueryCache()
getInitialQueryCache
in class ConfigurationAdministration
protected void setInitialQueryCache(java.lang.String initQ)
setInitialQueryCache
in class ConfigurationAdministration
initQ
- New value of initialQueryCache attribute.public Statistics getStatistics()
getStatistics
in class ConfigurationAdministration
public void refreshStatistics()
refreshStatistics
in class ConfigurationAdministration
public void checkFull()
checkFull
in class ConfigurationAdministration
public boolean isFull()
isFull
in class ConfigurationAdministration
public java.lang.String getCacheType()
getCacheType
in class ConfigurationAdministration
public int getLevelOfCaching()
getLevelOfCaching
in class ConfigurationAdministration
public TableConfiguration getTableConfiguration()
getTableConfiguration
in class ConfigurationAdministration
public double getReserveFactor()
num
is number
of needed results, then it is used
num
+ DEFAULT_RESERVE_FACTOR * num
of objects for estimating what is quicker: go to database for all object
that are not in the cache, or run again query on database.
This value is given in percents, as number between 0 and 1
(0.25 means 25%).
For example, if DEFAULT_RESERVE_FACTOR is 0.5, and wanted number of
results is 50, the estimation will be done on 75 (50 + 0.5 * 50) objects.
getReserveFactor
in class ConfigurationAdministration
protected void setReserveFactor(double res)
num
is number
of needed results, then it is used
num
+ DEFAULT_RESERVE_FACTOR * num
of objects for estimating what is quicker: go to database for all object
that are not in the cache, or run again query on database.
This value is given in percents, as number between 0 and 1
(0.25 means 25%).
For example, if DEFAULT_RESERVE_FACTOR is 0.5, and wanted number of
results is 50, the estimation will be done on 75 (50 + 0.5 * 50) objects.
setReserveFactor
in class ConfigurationAdministration
res
- New reserveFactor.protected void setCachePercentage(double percent)
setCachePercentage
in class ConfigurationAdministration
public double getCachePercentage()
ConfigurationAdministration
getCachePercentage
in class ConfigurationAdministration
public boolean isDisabled()
isDisabled
in class ConfigurationAdministration
public void readConfiguration(com.lutris.util.Config tableConfig, com.lutris.util.Config cacheConfig, java.lang.String dbName) throws CacheObjectException
readConfiguration
in class ConfigurationAdministration
tableConfig
- configuration for table of this cache.cacheConfig
- configuration for this cache.
CacheObjectException
public DOCache newInstance() throws CacheObjectException
newInstance
in class DOCache
CacheObjectException
protected void init()
public java.util.Map getCacheContent()
getCacheContent
in class DOCache
Map
of data (or DataStruct) objects.public boolean isMulti()
isMulti
in class DOCache
public boolean toReconfigure()
toReconfigure
in class DOCache
public GenericDO addDO(GenericDO newDO)
addDO
in class DOCache
newDO
- Data object that will be added to the cache.
public GenericDO removeDO(GenericDO DO)
removeDO
in class DOCache
DO
- Data object that will be removed from the cache.
public GenericDO removeDO(java.lang.String handle)
removeDO
in class DOCache
handle
- Cache handle of DO (data object) that will be removed from
the cache. The form of cache handle is:
"public GenericDO updateDO(GenericDO DO)
updateDO
in class DOCache
DO
- Data object that will be updated (or inserted if didn't
exist in the cache).
public GenericDO deleteDO(GenericDO DO)
deleteDO
in class DOCache
DO
- Data object that will be deleted from the cache.
public GenericDO getDOByHandle(java.lang.String handle)
getDOByHandle
in class DOCache
handle
- String representation of OID of object that is being
searched in the cache.
public QueryCacheItem newQueryCacheItemInstance(java.lang.String dbName)
newQueryCacheItemInstance
in class TransactionQueryCache
dbName
- Database name.
public QueryCacheItem getSimpleQueryCacheItem(java.lang.String dbName, java.lang.String query)
getSimpleQueryCacheItem
in class TransactionQueryCache
dbName
- Database name.query
- Query in form of String.
public QueryCacheItem getComplexQueryCacheItem(java.lang.String dbName, java.lang.String query)
getComplexQueryCacheItem
in class TransactionQueryCache
dbName
- Database name.query
- Query in form of String.
public QueryCacheItem addSimpleQuery(QueryCacheItem queryItem)
addSimpleQuery
in class TransactionQueryCache
queryItem
- Query that will be added to simple query cache.
public QueryCacheItem removeSimpleQuery(QueryCacheItem queryItem)
removeSimpleQuery
in class TransactionQueryCache
queryItem
- Query that will be removed from simple query cache.
public QueryCacheItem addComplexQuery(QueryCacheItem queryItem)
addComplexQuery
in class TransactionQueryCache
queryItem
- Query that will be added to complex query cache.
public QueryCacheItem removeComplexQuery(QueryCacheItem queryItem)
removeComplexQuery
in class TransactionQueryCache
queryItem
- Query that will be removed from complex query cache.
public QueryResult getSimpleQueryResults(java.lang.String dbName, java.lang.String query)
getSimpleQueryResults
in class TransactionQueryCache
dbName
- Database name.query
- Query for which are results searched in simple query cache.
public QueryResult getSimpleQueryResults(java.lang.String dbName, java.lang.String query, int limit, int maxdb)
getSimpleQueryResults
in class TransactionQueryCache
dbName
- Database name.query
- Query for which are results searched in simple query cache.limit
- Specified number of results (database limit and read skip).maxdb
- Number of rows retrieved from database (or cache).
public QueryResult getSimpleQueryResults(java.lang.String dbName, java.lang.String query, int limit, int maxdb, boolean unique)
getSimpleQueryResults
in class TransactionQueryCache
dbName
- Database name.query
- Query for which are results searched in simple query cache.limit
- Specified number of results (database limit and read skip).maxdb
- Number of rows retrieved from database (or cache).unique
- If true, only unique results are returned.
public QueryResult getComplexQueryResults(java.lang.String dbName, java.lang.String query)
getComplexQueryResults
in class TransactionQueryCache
dbName
- Database name.query
- Query for which are results searched in complex query cache.
public QueryResult getComplexQueryResults(java.lang.String dbName, java.lang.String query, int limit, int maxdb)
getComplexQueryResults
in class TransactionQueryCache
dbName
- Database name.query
- Query for which are results searched in complex query cache.limit
- Specified number of results (database limit and read skip).maxdb
- Number of rows retrieved from database (or cache).
public QueryResult getComplexQueryResults(java.lang.String dbName, java.lang.String query, int limit, int maxdb, boolean unique)
getComplexQueryResults
in class TransactionQueryCache
dbName
- Database name.query
- Query for which are results searched in complex query cache.limit
- Specified number of results (database limit and read skip).maxdb
- Number of rows retrieved from database (or cache).unique
- If true, only unique results are returned.
public QueryResult getQueryResults(java.lang.String dbName, java.lang.String query)
getQueryResults
in class TransactionQueryCache
dbName
- Database name.query
- Query for which are results searched in simple and complex
query cache.
public java.lang.String toString()
public void removeEntries(java.util.Vector vec)
removeEntries
in class TransactionQueryCache
public void removeEntries(java.lang.Class tableClass)
removeEntries
in class TransactionQueryCache
tableClass
- -public void emptyEntries(java.util.Vector vec, boolean incrementVersion)
emptyEntries
in class TransactionQueryCache
public void emptyEntries(java.lang.Class tableClass)
emptyEntries
in class TransactionQueryCache
tableClass
- - Class object whose instances will be emptiedpublic int getInitialCacheFetchSize()
getInitialCacheFetchSize
in class ConfigurationAdministration
public int getInitialDSCacheSize()
getInitialDSCacheSize
in class ConfigurationAdministration
public void setInitialCacheFetchSize(int i)
setInitialCacheFetchSize
in class ConfigurationAdministration
i
- public void setInitialDSCacheSize(int i)
setInitialDSCacheSize
in class ConfigurationAdministration
i
-
|
DODS 6.5 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |