// This file is part of OpenTSDB. // Copyright (C) 2015 The OpenTSDB Authors. // // This program is free software: you can redistribute it and/or modify it // under the terms of the GNU Lesser General Public License as published by // the Free Software Foundation, either version 2.1 of the License, or (at your // option) any later version. This program is distributed in the hope that it // will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser // General Public License for more details. You should have received a copy // of the GNU Lesser General Public License along with this program. If not, // see <http://www.gnu.org/licenses/>. package net.opentsdb.query.expression; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import net.opentsdb.core.BaseTsdbTest; import net.opentsdb.core.DataPoints; import net.opentsdb.core.FillPolicy; import net.opentsdb.core.Query; import net.opentsdb.core.TSQuery; import net.opentsdb.core.TSSubQuery; import net.opentsdb.utils.Pair; /** * A class for setting up a number of time series and queries for expression * testing. */ public class BaseTimeSyncedIteratorTest extends BaseTsdbTest { /** Start time across all queries */ protected static final long START_TS = 1388534400; /** The query object compiled after calling {@link #runQueries(ArrayList)} */ protected TSQuery query; /** The results of our queries after calling {@link #runQueries(ArrayList)} */ protected Map<String, Pair<TSSubQuery, DataPoints[]>> results; /** List of iterators */ protected Map<String, ITimeSyncedIterator> iterators; /** * Queries for metrics A and B with a group by all on the D tag */ protected void queryAB_Dstar() throws Exception { final ArrayList<TSSubQuery> subs = new ArrayList<TSSubQuery>(2); TSSubQuery sub = new TSSubQuery(); HashMap<String, String> query_tags = new HashMap<String, String>(1); query_tags.put("D", "*"); sub = new TSSubQuery(); sub.setMetric("A"); sub.setTags(query_tags); sub.setAggregator("sum"); subs.add(sub); sub = new TSSubQuery(); sub.setMetric("B"); query_tags = new HashMap<String, String>(1); query_tags.put("D", "*"); sub.setTags(query_tags); sub.setAggregator("sum"); subs.add(sub); runQueries(subs); } /** * Queries for A and B but without a tag specifier, thus agging em all */ protected void queryAB_AggAll() throws Exception { final ArrayList<TSSubQuery> subs = new ArrayList<TSSubQuery>(2); TSSubQuery sub = new TSSubQuery(); HashMap<String, String> query_tags = new HashMap<String, String>(1); sub = new TSSubQuery(); sub.setMetric("A"); sub.setTags(query_tags); sub.setAggregator("sum"); subs.add(sub); sub = new TSSubQuery(); sub.setMetric("B"); query_tags = new HashMap<String, String>(1); sub.setTags(query_tags); sub.setAggregator("sum"); subs.add(sub); runQueries(subs); } /** * Queries for A only with a filter of tag value "D" for tag key "D" */ protected void queryA_DD() throws Exception { final ArrayList<TSSubQuery> subs = new ArrayList<TSSubQuery>(2); TSSubQuery sub = new TSSubQuery(); final HashMap<String, String> query_tags = new HashMap<String, String>(1); query_tags.put("D", "D"); sub = new TSSubQuery(); sub.setMetric("A"); sub.setTags(query_tags); sub.setAggregator("sum"); subs.add(sub); runQueries(subs); } /** * Executes the queries against MockBase through the regular pipeline and stores * the results in {@linke #results} * @param subs The queries to execute */ protected void runQueries(final ArrayList<TSSubQuery> subs) throws Exception { query = new TSQuery(); query.setStart(Long.toString(START_TS)); query.setQueries(subs); query.validateAndSetQuery(); final Query[] compiled = query.buildQueries(tsdb); results = new HashMap<String, Pair<TSSubQuery, DataPoints[]>>( compiled.length); iterators = new HashMap<String, ITimeSyncedIterator>(compiled.length); int index = 0; for (final Query q : compiled) { final DataPoints[] dps = q.runAsync().join(); results.put(Integer.toString(index), new Pair<TSSubQuery, DataPoints[]>( query.getQueries().get(index), dps)); final ITimeSyncedIterator it = new TimeSyncedIterator(Integer.toString(index), query.getQueries().get(index).getFilterTagKs(), dps); it.setFillPolicy(new NumericFillPolicy(FillPolicy.NOT_A_NUMBER)); iterators.put(Integer.toString(index), it); index++; } } /** * A and B, each with two series. Common D values, different E values */ protected void twoSeriesAggedE() throws Exception { setDataPointStorage(); HashMap<String, String> tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 1, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 2, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 3, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "F"); tsdb.addPoint("A", 1431561600, 1, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 2, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 3, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "E"); tsdb.addPoint("B", 1431561600, 11, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 12, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 13, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "F"); tsdb.addPoint("B", 1431561600, 11, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 12, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 13, tags).joinUninterruptibly(); } /** * A and B, each with two series. Common D, different E values and the B metric * series have an extra Z tag with different values. */ protected void twoSeriesAggedEandExtraTagK() throws Exception { setDataPointStorage(); HashMap<String, String> tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 1, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 2, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 3, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "F"); tsdb.addPoint("A", 1431561600, 1, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 2, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 3, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "E"); tags.put("Z", "A"); tsdb.addPoint("B", 1431561600, 11, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 12, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 13, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "F"); tags.put("Z", "B"); tsdb.addPoint("B", 1431561600, 11, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 12, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 13, tags).joinUninterruptibly(); } /** * A and B where A has two series and B only has one. Series A has two D * values that will be agged. Different D and E values. */ protected void oneAggedTheOtherTagged() throws Exception { setDataPointStorage(); HashMap<String, String> tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 1, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 2, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 3, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "E"); tags.put("E", "F"); tsdb.addPoint("A", 1431561600, 1, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 2, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 3, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "E"); tsdb.addPoint("B", 1431561600, 11, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 12, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 13, tags).joinUninterruptibly(); } /** * A only with three series. Different D values, commong E values. */ protected void threeSameENoB() throws Exception { setDataPointStorage(); HashMap<String, String> tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 1, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 2, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 3, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "F"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 4, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 5, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 6, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "G"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 7, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 8, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 9, tags).joinUninterruptibly(); } /** * A and B where A has two series, B has three. Different D values, common E. */ protected void oneExtraSameE() throws Exception { setDataPointStorage(); HashMap<String, String> tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 1, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 2, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 3, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "F"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 4, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 5, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 6, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "E"); tsdb.addPoint("B", 1431561600, 11, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 12, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 13, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "F"); tags.put("E", "E"); tsdb.addPoint("B", 1431561600, 14, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 15, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 16, tags).joinUninterruptibly(); // all by myself...... tags = new HashMap<String, String>(2); tags.put("D", "G"); tags.put("E", "E"); tsdb.addPoint("B", 1431561600, 17, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 18, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 19, tags).joinUninterruptibly(); } /** * A and B with two series each. Different D values, common E. * A has values at T0 and T1, but then B has values at T2 and T3. Should * throw NaNs after the intersection. */ protected void timeOffset() throws Exception { setDataPointStorage(); HashMap<String, String> tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 1, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 2, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "F"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 4, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 5, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "E"); tsdb.addPoint("B", 1431561720, 13, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561780, 14, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "F"); tags.put("E", "E"); tsdb.addPoint("B", 1431561720, 16, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561780, 17, tags).joinUninterruptibly(); } /** * A and B, each with three series. Different D values, commong E. */ protected void threeSameE() throws Exception { setDataPointStorage(); HashMap<String, String> tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 1, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 2, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 3, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "F"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 4, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 5, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 6, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "G"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 7, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 8, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 9, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "E"); tsdb.addPoint("B", 1431561600, 11, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 12, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 13, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "F"); tags.put("E", "E"); tsdb.addPoint("B", 1431561600, 14, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 15, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 16, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "G"); tags.put("E", "E"); tsdb.addPoint("B", 1431561600, 17, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 18, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 19, tags).joinUninterruptibly(); } /** * A and B, each with three series. Different D values. Series in A are missing * the E tag. Common values in E for B. */ protected void threeAMissingE() throws Exception { setDataPointStorage(); HashMap<String, String> tags = new HashMap<String, String>(2); tags.put("D", "D"); tsdb.addPoint("A", 1431561600, 1, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 2, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 3, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "F"); tsdb.addPoint("A", 1431561600, 4, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 5, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 6, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "G"); tsdb.addPoint("A", 1431561600, 7, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 8, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 9, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "E"); tsdb.addPoint("B", 1431561600, 11, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 12, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 13, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "F"); tags.put("E", "E"); tsdb.addPoint("B", 1431561600, 14, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 15, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 16, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "G"); tags.put("E", "E"); tsdb.addPoint("B", 1431561600, 17, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 18, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 19, tags).joinUninterruptibly(); } /** * A and B, each with three series. Different D and E values */ protected void threeDifE() throws Exception { setDataPointStorage(); HashMap<String, String> tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "A"); tsdb.addPoint("A", 1431561600, 1, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 2, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 3, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "F"); tags.put("E", "B"); tsdb.addPoint("A", 1431561600, 4, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 5, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 6, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "G"); tags.put("E", "C"); tsdb.addPoint("A", 1431561600, 7, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 8, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 9, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "D"); tsdb.addPoint("B", 1431561600, 11, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 12, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 13, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "F"); tags.put("E", "F"); tsdb.addPoint("B", 1431561600, 14, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 15, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 16, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "G"); tags.put("E", "G"); tsdb.addPoint("B", 1431561600, 17, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 18, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 19, tags).joinUninterruptibly(); } /** * A and B, each with 3 series. Different D values, common E. * Each set has one series that isn't in the other. D=G in A and D=Q in B. */ protected void threeDisjointSameE() throws Exception { setDataPointStorage(); HashMap<String, String> tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 1, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 2, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 3, tags).joinUninterruptibly(); // not in set 2 tags = new HashMap<String, String>(2); tags.put("D", "F"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 4, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 5, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 6, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "G"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 7, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 8, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 9, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "E"); tsdb.addPoint("B", 1431561600, 11, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 12, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 13, tags).joinUninterruptibly(); // not in set 1 tags = new HashMap<String, String>(2); tags.put("D", "Q"); tags.put("E", "E"); tsdb.addPoint("B", 1431561600, 14, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 15, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 16, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "G"); tags.put("E", "E"); tsdb.addPoint("B", 1431561600, 17, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 18, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 19, tags).joinUninterruptibly(); } /** * A and B, each with three series. Different D values, common E values. * D=G is the only common series between the sets */ protected void reduceToOne() throws Exception { setDataPointStorage(); HashMap<String, String> tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 1, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 2, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 3, tags).joinUninterruptibly(); // not in set 2 tags = new HashMap<String, String>(2); tags.put("D", "F"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 4, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 5, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 6, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "G"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 7, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 8, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 9, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "P"); tags.put("E", "E"); tsdb.addPoint("B", 1431561600, 11, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 12, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 13, tags).joinUninterruptibly(); // not in set 1 tags = new HashMap<String, String>(2); tags.put("D", "Q"); tags.put("E", "E"); tsdb.addPoint("B", 1431561600, 14, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 15, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 16, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "G"); tags.put("E", "E"); tsdb.addPoint("B", 1431561600, 17, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 18, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 19, tags).joinUninterruptibly(); } /** * A and B, each with three series. Different D values, common E values. * Each series is "missing" a data point so that we can test time sync. */ protected void threeSameEGaps() throws Exception { setDataPointStorage(); HashMap<String, String> tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 1, tags).joinUninterruptibly(); //tsdb.addPoint("A", 1431561660, 2, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 3, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "F"); tags.put("E", "E"); tsdb.addPoint("A", 1431561600, 4, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 5, tags).joinUninterruptibly(); //tsdb.addPoint("A", 1431561720, 6, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "G"); tags.put("E", "E"); //tsdb.addPoint("A", 1431561600, 7, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561660, 8, tags).joinUninterruptibly(); tsdb.addPoint("A", 1431561720, 9, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "D"); tags.put("E", "E"); //tsdb.addPoint("B", 1431561600, 11, tags).joinUninterruptibly(); //tsdb.addPoint("B", 1431561660, 12, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 13, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "F"); tags.put("E", "E"); //tsdb.addPoint("B", 1431561600, 14, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561660, 15, tags).joinUninterruptibly(); //tsdb.addPoint("B", 1431561720, 16, tags).joinUninterruptibly(); tags = new HashMap<String, String>(2); tags.put("D", "G"); tags.put("E", "E"); //tsdb.addPoint("B", 1431561600, 17, tags).joinUninterruptibly(); //tsdb.addPoint("B", 1431561660, 18, tags).joinUninterruptibly(); tsdb.addPoint("B", 1431561720, 19, tags).joinUninterruptibly(); } }