improve wall filter

This commit is contained in:
wenshao
2013-04-07 00:14:33 +08:00
parent 707fe5214e
commit dfd6699dc4
8 changed files with 337 additions and 47 deletions
@@ -33,6 +33,9 @@ public class WallTableStat {
private volatile long alterCount;
private volatile long dropCount;
private volatile long replaceCount;
private volatile long deleteDataCount;
private volatile long updateDataCount;
private volatile long fetchRowCount;
final static AtomicLongFieldUpdater<WallTableStat> selectCountUpdater = AtomicLongFieldUpdater.newUpdater(WallTableStat.class,
"selectCount");
@@ -55,6 +58,14 @@ public class WallTableStat {
final static AtomicLongFieldUpdater<WallTableStat> replaceCountUpdater = AtomicLongFieldUpdater.newUpdater(WallTableStat.class,
"replaceCount");
final static AtomicLongFieldUpdater<WallTableStat> deleteDataCountUpdater = AtomicLongFieldUpdater.newUpdater(WallTableStat.class,
"deleteDataCount");
final static AtomicLongFieldUpdater<WallTableStat> updateDataCountUpdater = AtomicLongFieldUpdater.newUpdater(WallTableStat.class,
"updateDataCount");
final static AtomicLongFieldUpdater<WallTableStat> fetchRowCountUpdater = AtomicLongFieldUpdater.newUpdater(WallTableStat.class,
"fetchRowCount");
public WallTableStat(){
}
@@ -94,11 +105,35 @@ public class WallTableStat {
public long getDropCount() {
return dropCount;
}
public long getReplaceCount() {
return replaceCount;
}
public long getDeleteDataCount() {
return this.deleteDataCount;
}
public void addDeleteDataCount(long delta) {
deleteDataCountUpdater.addAndGet(this, delta);
}
public long getUpdateDataCount() {
return this.updateDataCount;
}
public void addUpdateDataCount(long delta) {
updateDataCountUpdater.addAndGet(this, delta);
}
public long getFetchRowCount() {
return fetchRowCount;
}
public void addFetchRowCount(long delta) {
fetchRowCountUpdater.addAndGet(this, delta);
}
public void addSqlTableStat(WallSqlTableStat stat) {
{
long val = stat.getSelectCount();
@@ -202,6 +237,15 @@ public class WallTableStat {
if (replaceCount > 0) {
map.put("replaceCount", replaceCount);
}
if (deleteDataCount > 0) {
map.put("deleteDataCount", deleteDataCount);
}
if (fetchRowCount > 0) {
map.put("fetchRowCount", fetchRowCount);
}
if (updateDataCount > 0) {
map.put("updateDataCount", updateDataCount);
}
return map;
}
}