Skip to content

Commit fc35494

Browse files
committed
Try current raw tablet format first
1 parent bd8cbee commit fc35494

1 file changed

Lines changed: 12 additions & 6 deletions

File tree

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/payload/evolvable/request/PipeTransferTabletRawReq.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,11 @@ private void deserializeTPipeTransferRawReq(
159159
final ByteBuffer buffer, final TabletStringInternPool tabletStringInternPool) {
160160
final int startPosition = buffer.position();
161161
try {
162+
// Current V1 raw tablet requests can be converted to InsertTabletStatement directly. Keep
163+
// this as the first attempt to avoid the overhead of constructing an intermediate Tablet.
162164
final InsertTabletStatement insertTabletStatement =
163-
TabletStatementConverter.deserializeLegacyStatementFromTabletFormat(
164-
buffer, tabletStringInternPool);
165+
TabletStatementConverter.deserializeStatementFromTabletFormat(
166+
buffer, false, tabletStringInternPool);
165167
isAligned = insertTabletStatement.isAligned();
166168
statement = insertTabletStatement;
167169
return;
@@ -170,16 +172,20 @@ private void deserializeTPipeTransferRawReq(
170172
}
171173

172174
try {
175+
// Some old senders serialize Tablet without column categories. Retry with the legacy reader
176+
// before falling back to the full Tablet deserialization path.
173177
final InsertTabletStatement insertTabletStatement =
174-
TabletStatementConverter.deserializeStatementFromTabletFormat(
175-
buffer, false, tabletStringInternPool);
178+
TabletStatementConverter.deserializeLegacyStatementFromTabletFormat(
179+
buffer, tabletStringInternPool);
176180
isAligned = insertTabletStatement.isAligned();
177181
statement = insertTabletStatement;
182+
return;
178183
} catch (final Exception e) {
179184
buffer.position(startPosition);
180-
tablet = PipeTabletUtils.internTablet(Tablet.deserialize(buffer), tabletStringInternPool);
181-
isAligned = ReadWriteIOUtils.readBool(buffer);
182185
}
186+
187+
tablet = PipeTabletUtils.internTablet(Tablet.deserialize(buffer), tabletStringInternPool);
188+
isAligned = ReadWriteIOUtils.readBool(buffer);
183189
}
184190

185191
/////////////////////////////// Air Gap ///////////////////////////////

0 commit comments

Comments
 (0)