Exemplo n.º 1
0
    public async Task InitializeAsync()
    {
        _harness = await new MiniKuduClusterBuilder().BuildHarnessAsync();

        var options           = _harness.CreateClientBuilder().BuildOptions();
        var securityContext   = new SecurityContext();
        var systemClock       = new SystemClock();
        var connectionFactory = new KuduConnectionFactory(
            options, securityContext, NullLoggerFactory.Instance);

        _testConnectionFactory = new TestConnectionFactory(connectionFactory);

        _client = new KuduClient(
            options,
            securityContext,
            _testConnectionFactory,
            systemClock,
            NullLoggerFactory.Instance);

        var builder = ClientTestUtil.GetBasicSchema()
                      .SetTableName("chaos_test_table")
                      .SetNumReplicas(3)
                      .CreateBasicRangePartition();

        _table = await _client.CreateTableAsync(builder);
    }
 public async Task InitializeAsync()
 {
     _harness = await new MiniKuduClusterBuilder()
                .AddMasterServerFlag("--authz_token_validity_seconds=1")
                .AddTabletServerFlag("--tserver_enforce_access_control=true")
                // Inject invalid tokens such that operations will be forced to go
                // back to the master for an authz token.
                .AddTabletServerFlag("--tserver_inject_invalid_authz_token_ratio=0.5")
                .BuildHarnessAsync();
 }
Exemplo n.º 3
0
    public async Task InitializeAsync()
    {
        _harness = await new MiniKuduClusterBuilder().BuildHarnessAsync();
        _client  = _harness.CreateClient();
        await using var session = _client.NewSession();

        // Create a 4-tablets table for scanning.
        var builder = new TableBuilder(_tableName)
                      .AddColumn("key1", KuduType.String, opt => opt.Key(true))
                      .AddColumn("key2", KuduType.String, opt => opt.Key(true))
                      .AddColumn("val", KuduType.String)
                      .SetRangePartitionColumns("key1", "key2");

        for (int i = 1; i < 4; i++)
        {
            builder.AddSplitRow(splitRow =>
            {
                splitRow.SetString("key1", i.ToString());
                splitRow.SetString("key2", "");
            });
        }

        var table = await _client.CreateTableAsync(builder);

        // The data layout ends up like this:
        // tablet '', '1': no rows
        // tablet '1', '2': '111', '122', '133'
        // tablet '2', '3': '211', '222', '233'
        // tablet '3', '': '311', '322', '333'
        var keys = new[] { "1", "2", "3" };

        foreach (var key1 in keys)
        {
            foreach (var key2 in keys)
            {
                var insert = table.NewInsert();
                insert.SetString(0, key1);
                insert.SetString(1, key2);
                insert.SetString(2, key2);
                await session.EnqueueAsync(insert);

                await session.FlushAsync();
            }
        }

        _beforeWriteTimestamp = _client.LastPropagatedTimestamp;

        // Reset the client in order to clear the propagated timestamp.
        _newClient = _harness.CreateClient();

        // Reopen the table using the new client.
        _table = await _newClient.OpenTableAsync(_tableName);

        _schema = _table.Schema;
    }
Exemplo n.º 4
0
    public async Task InitializeAsync()
    {
        _harness = await new MiniKuduClusterBuilder().BuildHarnessAsync();
        _client  = _harness.CreateClient();

        // Use one tablet because multiple tablets don't work: we could jump
        // from one tablet to another which could change the logical clock.
        var builder = new TableBuilder("HybridTimeTest")
                      .AddColumn("key", KuduType.String, opt => opt.Key(true))
                      .SetRangePartitionColumns("key");

        _table = await _client.CreateTableAsync(builder);
    }
    public async Task InitializeAsync()
    {
        _harness = await new MiniKuduClusterBuilder().BuildHarnessAsync();
        _client  = _harness.CreateClient();

        var builder = ClientTestUtil.GetBasicSchema()
                      .SetTableName("ScannerFaultToleranceTests")
                      .AddHashPartitions(_numTablets, "key");

        _table = await _client.CreateTableAsync(builder);

        var random = new Random();

        _keys = new HashSet <int>();
        while (_keys.Count < _numRows)
        {
            _keys.Add(random.Next());
        }

        var rows = _keys
                   .Select((key, i) =>
        {
            var insert = _table.NewInsert();
            insert.SetInt32(0, key);
            insert.SetInt32(1, i);
            insert.SetInt32(2, i++);
            insert.SetString(3, DataGenerator.RandomString(1024, random));
            insert.SetBool(4, true);

            return(insert);
        })
                   .Chunk(1000);

        foreach (var batch in rows)
        {
            await _client.WriteAsync(batch);
        }
    }
Exemplo n.º 6
0
 public async Task InitializeAsync()
 {
     _harness = await new MiniKuduClusterBuilder().BuildHarnessAsync();
     _client  = _harness.CreateClient();
 }