Some changes to allow the ability to subclass the stats class and
record more extensive, per-table stats.
This commit is contained in:
@@ -388,6 +388,10 @@ public abstract class DepotRepository
|
|||||||
}
|
}
|
||||||
return mods;
|
return mods;
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public void updateStats (Stats stats) {
|
||||||
|
stats.noteModification(pClass);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -639,6 +643,10 @@ public abstract class DepotRepository
|
|||||||
created[0] = true;
|
created[0] = true;
|
||||||
return mods;
|
return mods;
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public void updateStats (Stats stats) {
|
||||||
|
stats.noteModification(pClass);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
return created[0];
|
return created[0];
|
||||||
}
|
}
|
||||||
@@ -706,7 +714,7 @@ public abstract class DepotRepository
|
|||||||
* @throws DatabaseException if any problem is encountered communicating with the database.
|
* @throws DatabaseException if any problem is encountered communicating with the database.
|
||||||
*/
|
*/
|
||||||
public <T extends PersistentRecord> int deleteAll (
|
public <T extends PersistentRecord> int deleteAll (
|
||||||
Class<T> type, final WhereClause where, CacheInvalidator invalidator)
|
final Class<T> type, final WhereClause where, CacheInvalidator invalidator)
|
||||||
throws DatabaseException
|
throws DatabaseException
|
||||||
{
|
{
|
||||||
if (invalidator instanceof ValidatingCacheInvalidator) {
|
if (invalidator instanceof ValidatingCacheInvalidator) {
|
||||||
@@ -723,6 +731,10 @@ public abstract class DepotRepository
|
|||||||
protected int invoke (Connection conn, DatabaseLiaison liaison) throws SQLException {
|
protected int invoke (Connection conn, DatabaseLiaison liaison) throws SQLException {
|
||||||
return builder.prepare(conn).executeUpdate();
|
return builder.prepare(conn).executeUpdate();
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public void updateStats (Stats stats) {
|
||||||
|
stats.noteModification(type);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -827,7 +839,7 @@ public abstract class DepotRepository
|
|||||||
/**
|
/**
|
||||||
* A helper method for the various partial update methods.
|
* A helper method for the various partial update methods.
|
||||||
*/
|
*/
|
||||||
protected int doUpdate (CacheInvalidator invalidator, UpdateClause update)
|
protected int doUpdate (CacheInvalidator invalidator, final UpdateClause update)
|
||||||
{
|
{
|
||||||
final SQLBuilder builder = _ctx.getSQLBuilder(DepotTypes.getDepotTypes(_ctx, update));
|
final SQLBuilder builder = _ctx.getSQLBuilder(DepotTypes.getDepotTypes(_ctx, update));
|
||||||
builder.newQuery(update);
|
builder.newQuery(update);
|
||||||
@@ -836,6 +848,10 @@ public abstract class DepotRepository
|
|||||||
protected int invoke (Connection conn, DatabaseLiaison liaison) throws SQLException {
|
protected int invoke (Connection conn, DatabaseLiaison liaison) throws SQLException {
|
||||||
return builder.prepare(conn).executeUpdate();
|
return builder.prepare(conn).executeUpdate();
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public void updateStats (Stats stats) {
|
||||||
|
stats.noteModification(update.getPersistentClass());
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -120,8 +120,9 @@ public class Stats
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized void noteQuery (int cachedQueries, int uncachedQueries, int explicitQueries,
|
public synchronized void noteQuery (
|
||||||
int cachedRecords, int uncachedRecords)
|
Class<? extends PersistentRecord> type, int cachedQueries, int uncachedQueries,
|
||||||
|
int explicitQueries, int cachedRecords, int uncachedRecords)
|
||||||
{
|
{
|
||||||
_cachedQueries += cachedQueries;
|
_cachedQueries += cachedQueries;
|
||||||
_uncachedQueries += uncachedQueries;
|
_uncachedQueries += uncachedQueries;
|
||||||
@@ -130,6 +131,11 @@ public class Stats
|
|||||||
_uncachedRecords += uncachedRecords;
|
_uncachedRecords += uncachedRecords;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public synchronized void noteModification (Class<? extends PersistentRecord> type)
|
||||||
|
{
|
||||||
|
// nothing by default
|
||||||
|
}
|
||||||
|
|
||||||
protected int _totalOps;
|
protected int _totalOps;
|
||||||
protected long _connectionWaitTime;
|
protected long _connectionWaitTime;
|
||||||
|
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ public class FindAllKeysQuery<T extends PersistentRecord> extends Fetcher<List<K
|
|||||||
// from Fetcher
|
// from Fetcher
|
||||||
public void updateStats (Stats stats)
|
public void updateStats (Stats stats)
|
||||||
{
|
{
|
||||||
stats.noteQuery(0, 1, 0, 0, 0); // one uncached query
|
stats.noteQuery(_marsh.getPersistentClass(), 0, 1, 0, 0, 0); // one uncached query
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean _forUpdate;
|
protected boolean _forUpdate;
|
||||||
|
|||||||
@@ -348,7 +348,7 @@ public abstract class FindAllQuery<T extends PersistentRecord,R>
|
|||||||
// from Fetcher
|
// from Fetcher
|
||||||
public void updateStats (Stats stats)
|
public void updateStats (Stats stats)
|
||||||
{
|
{
|
||||||
stats.noteQuery(_cachedQueries, _uncachedQueries, _explicitQueries,
|
stats.noteQuery(_type, _cachedQueries, _uncachedQueries, _explicitQueries,
|
||||||
_cachedRecords, _uncachedRecords);
|
_cachedRecords, _uncachedRecords);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ public class FindOneQuery<T extends PersistentRecord> extends Fetcher<T>
|
|||||||
// from Operation
|
// from Operation
|
||||||
public void updateStats (Stats stats)
|
public void updateStats (Stats stats)
|
||||||
{
|
{
|
||||||
stats.noteQuery(0, 0, 0, _cachedRecords, 1-_cachedRecords);
|
stats.noteQuery(_marsh.getPersistentClass(), 0, 0, 0, _cachedRecords, 1-_cachedRecords);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected CacheKey getCacheKey ()
|
protected CacheKey getCacheKey ()
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ public abstract class Modifier
|
|||||||
// from interface Operation
|
// from interface Operation
|
||||||
public void updateStats (Stats stats)
|
public void updateStats (Stats stats)
|
||||||
{
|
{
|
||||||
// nothing to update for modifiers
|
// nothing to update by default
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user