@Override
  public void serialize(final DataOutputStream stream) throws IOException {
    ReadWriteIOUtils.write(tablets.size(), stream);
    for (Map.Entry<String, List<Tablet>> entry : tablets.entrySet()) {
      final String databaseName = entry.getKey();
      final List<Tablet> tabletList = entry.getValue();
      ReadWriteIOUtils.write(databaseName, stream);
      ReadWriteIOUtils.write(tabletList.size(), stream);
      for (final Tablet tablet : tabletList) {
        tablet.serialize(stream);
      }
    }
    ReadWriteIOUtils.write(nextOffset, stream);
  }
The field to be filled in the next {@link PollTabletsPayload} request.

<ul>
  <li>If nextOffset is 1, it indicates that the current payload is the first payload (its
      tablets are empty) and the fetching should continue.
  <li>If nextOffset is negative (or zero), it indicates all tablets have been fetched, and
      -nextOffset represents the total number of tablets.
</ul>
iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/payload/poll/TabletsPayload.java