Exemplo n.º 1
0
    def test_cassandra_rewrite(self):
        cassandra_host = os.getenv('CASSANDRA_HOST', 'localhost')
        cassandra_port = os.getenv('CASSANDRA_PORT', 9042)
        db = TSDB(STORAGE="cassandra",
                  BUCKET_TYPE="daily",
                  CASSANDRA_HOST=cassandra_host,
                  CASSANDRA_PORT=cassandra_port)
        db.storage._dropTable()
        db.storage._createTable()
        for i in range(0, 300):
            db._insert("cass", [(i * 10 * 60, 1.1)])

        res = db.storage.query("cass", 0, 4 * 24 * 60 * 60)
        self.assertEqual(len(res), 3)
        self.assertEqual(len(res[0]), 144)
        self.assertEqual(len(res[1]), 144)
        self.assertEqual(len(res[2]), 12)

        res = db._query("cass", 0, 4 * 24 * 60 * 60)
        self.assertEqual(len(res), 300)
        self.assertEqual(res[144][0], 24 * 60 * 60)
        self.assertAlmostEqual(res[144][1], 1.1, 4)

        for i in range(0, 300):
            db._insert("cass", [(i * 10 * 60, 2.2)])

        res = db.storage.query("cass", 0, 4 * 24 * 60 * 60)
        self.assertEqual(len(res), 3)
        self.assertEqual(len(res[0]), 144)
        self.assertEqual(len(res[1]), 144)
        self.assertEqual(len(res[2]), 12)

        res = db._query("cass", 0, 4 * 24 * 60 * 60)
        self.assertEqual(len(res), 300)
        self.assertEqual(res[144][0], 24 * 60 * 60)
        self.assertAlmostEqual(res[144][1], 1.1, 4)

        for i in range(0, 300):
            db._insert("cass", [(i * 10 * 60 + 1, 2.2)])

        res = db.storage.query("cass", 0, 4 * 24 * 60 * 60 + 1)
        self.assertEqual(len(res), 3)
        self.assertEqual(len(res[0]), 288)
        self.assertEqual(len(res[1]), 288)
        self.assertEqual(len(res[2]), 24)

        res = db._query("cass", 0, 4 * 24 * 60 * 60 + 1)
        self.assertEqual(len(res), 600)
        self.assertEqual(res[288][0], 24 * 60 * 60)
        self.assertAlmostEqual(res[288][1], 1.1, 4)
        self.assertEqual(res[289][0], 24 * 60 * 60 + 1)
        self.assertAlmostEqual(res[289][1], 2.2, 4)
Exemplo n.º 2
0
    def test_merge(self):
        d = TSDB(BUCKET_TYPE="dynamic", BUCKET_DYNAMIC_TARGET=2, BUCKET_DYNAMIC_MAX=2)
        d._insert("merge", [(1, 2.0), (2, 3.0), (5, 6.0), (6, 7.0),
                            (9, 10.0), (0, 1.0)])
        res = d._query("merge", 0, 10)
        self.assertEqual(len(res), 6)
        d._insert("merge", [(3, 4.0), (4, 5.0), (7, 8.0), (8, 9.0)])
        buckets = d.storage.query("merge", 0, 10)
        self.assertEqual(len(buckets), 5)
        for b in buckets:
            self.assertEqual(len(b), 2)

        res = d._query("merge", 0, 10)
        self.assertEqual(len(res), 10)
        for ts, v in res.all():
            self.assertAlmostEqual(float(ts + 1.0), v)
Exemplo n.º 3
0
    def test_largedataset(self):
        # Generate
        d = []
        for i in range(50000):
            d.append((i, i * 2.5))

        s = []
        while len(d) > 0:
            count = random.randint(3, 30)
            s.append([])
            for _ in range(count):
                if len(d) < 1:
                    break
                el = d.pop(0)
                s[-1].append(el)

        # Make some holes
        s.insert(200, s.pop(100))
        s.insert(200, s.pop(100))
        s.insert(200, s.pop(100))
        s.insert(1000, s.pop(1100))
        s.insert(1200, s.pop(1300))
        s.insert(1400, s.pop(1400))

        # Strange Future Hole
        s.insert(2000, s.pop(1800))

        # Insert
        d = TSDB(BUCKET_TYPE="dynamic", BUCKET_DYNAMIC_TARGET=100)
        for p in s:
            d._insert("large", p)

        buckets = d.storage.query("large", 0, 50000)
        self.assertGreater(len(buckets), 450)
        self.assertLess(len(buckets), 550)

        res = d._query("large", 1, 50000)
        self.assertEqual(len(res), 49999)
        res = d._query("large", 0, 49999)
        self.assertEqual(len(res), 50000)