Замедляет ли операция очистки InfluxDB? - PullRequest
0 голосов
/ 02 апреля 2019

В настоящее время я пишу тест для сравнения нескольких баз данных временных рядов.Один из тестов состоит в записи данных по одному.Метод, который делает это для InfluxDB, следующий:

@Override
public long insert(String table, long timestamp, String tags, List<Field> fields) {
    Builder b = Point.measurement(table);
    String[] tagsArray = tags.split(",");
    for (String t : tagsArray) {
        b.tag(t.split("=")[0], t.split("=")[1]);
    }
    for (Field f : fields) {
        b.addField(f.str, f.num);
    }
    long beg = System.nanoTime();
    Point pt = b.build();
    influxDB.write(pt);
    influxDB.flush();
    long end = System.nanoTime();
    return end-beg;
}

Как вы можете видеть, я использую метод flush, чтобы заставить InfluxDB записывать данные, в противном случае отправляются только несколько точек (10/1000).в базу данных правильно написано.Мой вопрос: влияет ли флеш на выступления?Если да, как я могу от него избавиться и измерить реальное время, затрачиваемое Influx для записи одной точки данных без потери данных, которые я пытаюсь вставить?Ранее в коде, который я написал influxDB.enableBatch(100, 200, TimeUnit.MILLISECONDS); Прежде чем вы упомянули об этом, я делаю тестовый пакетный импорт другим методом.

...