in iotdb-collector/collector-core/src/main/java/org/apache/iotdb/collector/utils/PipeMemoryWeightUtil.java [99:136]
public static Pair<Integer, Integer> calculateTabletRowCountAndMemory(BatchData batchData) {
int totalSizeInBytes = 0;
int schemaCount = 0;
// timestamp
totalSizeInBytes += 8L;
// values
final TSDataType type = batchData.getDataType();
if (type != null) {
if (type == TSDataType.VECTOR && batchData.getVector() != null) {
schemaCount = batchData.getVector().length;
for (int i = 0; i < schemaCount; ++i) {
final TsPrimitiveType primitiveType = batchData.getVector()[i];
if (primitiveType == null || primitiveType.getDataType() == null) {
continue;
}
if (primitiveType.getDataType().isBinary()) {
final Binary binary = primitiveType.getBinary();
totalSizeInBytes += binary == null ? 0 : binary.getLength();
} else {
totalSizeInBytes += primitiveType.getDataType().getDataTypeSize();
}
}
} else {
schemaCount = 1;
if (type.isBinary()) {
final Binary binary = batchData.getBinary();
totalSizeInBytes += binary == null ? 0 : binary.getLength();
} else {
totalSizeInBytes += type.getDataTypeSize();
}
}
}
return calculateTabletRowCountAndMemoryBySize(totalSizeInBytes, schemaCount);
}