docs: private String getTSUIDForMetric(final String query_string, TSDB tsdb) {
      if (query_string == null || query_string.isEmpty()) {
        throw new BadRequestException("The query string was empty");
      }
      
      // m is of the following forms:
      // metric[{tag=value,...}]
      // where the parts in square brackets `[' .. `]' are optional.
      final HashMap<String, String> tags = new HashMap<String, String>();
      String metric = null;
      try {
        metric = Tags.parseWithMetric(query_string, tags);
      } catch (IllegalArgumentException e) {
        throw new BadRequestException(e);
      }
      
      // sort the UIDs on tagk values
      final ByteMap<byte[]> tag_uids = new ByteMap<byte[]>();
      for (final Entry<String, String> pair : tags.entrySet()) {
        tag_uids.put(tsdb.getUID(UniqueIdType.TAGK, pair.getKey()), 
            tsdb.getUID(UniqueIdType.TAGV, pair.getValue()));
      }
      
      // Byte Buffer to generate TSUID, pre allocated to the size of the TSUID
      final ByteArrayOutputStream buf = new ByteArrayOutputStream(
          TSDB.metrics_width() + tag_uids.size() * 
          (TSDB.tagk_width() + TSDB.tagv_width()));
      try {
        buf.write(tsdb.getUID(UniqueIdType.METRIC, metric));
        for (final Entry<byte[], byte[]> uids: tag_uids.entrySet()) {
          buf.write(uids.getKey());
          buf.write(uids.getValue());
        }
      } catch (IOException e) {
        throw new BadRequestException(e);
      }
      final String tsuid = UniqueId.uidToString(buf.toByteArray());
      
      return tsuid;
    }