コード例 #1
0
        public void DML()
        {
            _session.Execute("CREATE TABLE IF NOT EXISTS test_lb (h1 INT, h2 TEXT, c INT, PRIMARY KEY ((h1, h2)));");
            _session.Cluster.Metadata.RefreshSchema();

            var preMetrics = _cluster.FetchMetrics();
            var ps         = _session.Prepare("INSERT INTO test_lb (h1, h2, c) VALUES (?, ?, ?)");

            for (int i = 1; i <= TotalKeys; ++i)
            {
                _session.Execute(ps.Bind(i, "v" + i, i));
            }

            var deltaMetrics = _cluster.FetchMetrics() - preMetrics;

            Trace.TraceInformation("Local inserts: {0}", deltaMetrics.localWrite);
            Assert.Greater(deltaMetrics.localWrite * 10, TotalKeys * 7);
            preMetrics += deltaMetrics;

            ps = _session.Prepare("UPDATE test_lb SET c = ? WHERE h1 = ? AND h2 = ?");
            for (int i = 1; i <= TotalKeys; ++i)
            {
                _session.Execute(ps.Bind(i * 2, i, "v" + i));
            }

            deltaMetrics = _cluster.FetchMetrics() - preMetrics;
            Trace.TraceInformation("Local updates: {0}", deltaMetrics.localWrite);
            Assert.Greater(deltaMetrics.localWrite * 10, TotalKeys * 7);
            preMetrics += deltaMetrics;

            ps = _session.Prepare("SELECT c FROM test_lb WHERE h1 = ? AND h2 = ?");
            for (int i = 1; i <= TotalKeys; ++i)
            {
                Row row = _session.Execute(ps.Bind(i, "v" + i)).FirstOrDefault();
                Assert.NotNull(row);
                Assert.AreEqual(i * 2, row.GetValue <int>("c"));
            }

            deltaMetrics = _cluster.FetchMetrics() - preMetrics;
            Trace.TraceInformation("Local selects: {0}", deltaMetrics.localRead);
            Assert.Greater(deltaMetrics.localRead * 10, TotalKeys * 7);
            preMetrics += deltaMetrics;

            ps = _session.Prepare("DELETE FROM test_lb WHERE h1 = ? AND h2 = ?");
            for (int i = 1; i <= TotalKeys; ++i)
            {
                _session.Execute(ps.Bind(i, "v" + i));
            }

            deltaMetrics = _cluster.FetchMetrics() - preMetrics;
            Trace.TraceInformation("Local deletes: {0}", deltaMetrics.localWrite);
            Assert.Greater(deltaMetrics.localWrite * 10, TotalKeys * 7);

            _session.Execute("DROP TABLE test_lb");
        }