public List<TRegionReplicaSet> getDataRegionReplicaSetWithTimeFilter(
      final String database, final IDeviceID deviceId, final Filter timeFilter) {
    final TSeriesPartitionSlot seriesPartitionSlot = calculateDeviceGroupId(deviceId);
    if (!dataPartitionMap.containsKey(database)
        || !dataPartitionMap.get(database).containsKey(seriesPartitionSlot)) {
      return Collections.singletonList(NOT_ASSIGNED);
    }
    return dataPartitionMap.get(database).get(seriesPartitionSlot).entrySet().stream()
        .filter(
            entry ->
                TimePartitionUtils.satisfyPartitionStartTime(timeFilter, entry.getKey().startTime))
        .flatMap(entry -> entry.getValue().stream())
        .distinct()
        .collect(toList());
  }
For table model usage.

<p>The database shall start with "root.". Concat this to a user-provided db name if necessary.

<p>The device id shall be [table, seg1, ....]
iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/partition/DataPartition.java