use of com.actiontech.dble.net.mysql.RowDataPacket in project dble by actiontech.
the class UnSortedResultDiskBuffer method addRows.
@Override
public int addRows(List<RowDataPacket> rows) {
if (logger.isDebugEnabled()) {
logger.debug("addRows start:" + TimeUtil.currentTimeMillis());
}
for (RowDataPacket row : rows) {
byte[] b = row.toBytes();
writeBuffer = writeToBuffer(b, writeBuffer);
}
writeBuffer.flip();
file.write(writeBuffer);
writeBuffer.clear();
mainTape.end = file.getFilePointer();
rowCount += rows.size();
if (logger.isDebugEnabled()) {
logger.debug("write rows to disk end:" + TimeUtil.currentTimeMillis());
}
return rowCount;
}
use of com.actiontech.dble.net.mysql.RowDataPacket in project dble by actiontech.
the class ShowBackendStat method getRow.
private static RowDataPacket getRow(BackendStat info, String charset) {
RowDataPacket row = new RowDataPacket(FIELD_COUNT);
row.add(StringUtil.encode(info.getHost(), charset));
row.add(LongUtil.toBytes(info.getPort()));
row.add(LongUtil.toBytes(info.getActive()));
row.add(LongUtil.toBytes(info.getTotal()));
return row;
}
use of com.actiontech.dble.net.mysql.RowDataPacket in project dble by actiontech.
the class ShowBinlogStatus method writeResponse.
private static void writeResponse(ManagerConnection c) {
if (errMsg == null) {
ByteBuffer buffer = c.allocate();
buffer = HEADER.write(buffer, c, true);
for (FieldPacket field : FIELDS_PACKET) {
buffer = field.write(buffer, c, true);
}
buffer = EOF.write(buffer, c, true);
byte packetId = EOF.getPacketId();
for (RowDataPacket row : rows) {
row.setPacketId(++packetId);
buffer = row.write(buffer, c, true);
}
rows.clear();
EOFPacket lastEof = new EOFPacket();
lastEof.setPacketId(++packetId);
buffer = lastEof.write(buffer, c, true);
c.write(buffer);
} else {
c.writeErrMessage(ErrorCode.ER_UNKNOWN_ERROR, errMsg);
errMsg = null;
}
}
use of com.actiontech.dble.net.mysql.RowDataPacket in project dble by actiontech.
the class ShowCache method getRow.
private static RowDataPacket getRow(String poolName, CacheStatic cacheStatic, String charset) {
RowDataPacket row = new RowDataPacket(FIELD_COUNT);
row.add(StringUtil.encode(poolName, charset));
// max size
row.add(LongUtil.toBytes(cacheStatic.getMaxSize()));
row.add(LongUtil.toBytes(cacheStatic.getItemSize()));
row.add(LongUtil.toBytes(cacheStatic.getAccessTimes()));
row.add(LongUtil.toBytes(cacheStatic.getHitTimes()));
row.add(LongUtil.toBytes(cacheStatic.getPutTimes()));
row.add(StringUtil.encode(FormatUtil.formatDate(cacheStatic.getLastAccessTime()), charset));
row.add(StringUtil.encode(FormatUtil.formatDate(cacheStatic.getLastPutTime()), charset));
return row;
}
use of com.actiontech.dble.net.mysql.RowDataPacket in project dble by actiontech.
the class ShowCache method execute.
public static void execute(ManagerConnection c) {
ByteBuffer buffer = c.allocate();
// write header
buffer = HEADER.write(buffer, c, true);
// write fields
for (FieldPacket field : FIELDS) {
buffer = field.write(buffer, c, true);
}
// write eof
buffer = EOF.write(buffer, c, true);
// write rows
byte packetId = EOF.getPacketId();
CacheService cacheService = DbleServer.getInstance().getCacheService();
for (Map.Entry<String, CachePool> entry : cacheService.getAllCachePools().entrySet()) {
String cacheName = entry.getKey();
CachePool cachePool = entry.getValue();
if (cachePool != null) {
if (cachePool instanceof LayerCachePool) {
for (Map.Entry<String, CacheStatic> staticsEntry : ((LayerCachePool) cachePool).getAllCacheStatic().entrySet()) {
RowDataPacket row = getRow(cacheName + '.' + staticsEntry.getKey(), staticsEntry.getValue(), c.getCharset().getResults());
row.setPacketId(++packetId);
buffer = row.write(buffer, c, true);
}
} else {
RowDataPacket row = getRow(cacheName, cachePool.getCacheStatic(), c.getCharset().getResults());
row.setPacketId(++packetId);
buffer = row.write(buffer, c, true);
}
}
}
// write last eof
EOFPacket lastEof = new EOFPacket();
lastEof.setPacketId(++packetId);
buffer = lastEof.write(buffer, c, true);
// write buffer
c.write(buffer);
}
Aggregations