Search in sources :

Example 1 with RaptorSplitManager

use of io.trino.plugin.raptor.legacy.RaptorSplitManager in project trino by trinodb.

the class TestRaptorSplitManager method setup.

@BeforeMethod
public void setup() throws Exception {
    Jdbi dbi = createTestingJdbi();
    dummyHandle = dbi.open();
    createTablesWithRetry(dbi);
    temporary = createTempDirectory(null);
    AssignmentLimiter assignmentLimiter = new AssignmentLimiter(ImmutableSet::of, systemTicker(), new MetadataConfig());
    shardManager = new DatabaseShardManager(dbi, new DaoSupplier<>(dbi, ShardDao.class), ImmutableSet::of, assignmentLimiter, systemTicker(), new Duration(0, MINUTES));
    TestingNodeManager nodeManager = new TestingNodeManager();
    NodeSupplier nodeSupplier = nodeManager::getWorkerNodes;
    String nodeName = UUID.randomUUID().toString();
    nodeManager.addNode(new InternalNode(nodeName, new URI("http://127.0.0.1/"), NodeVersion.UNKNOWN, false));
    CatalogName connectorId = new CatalogName("raptor");
    metadata = new RaptorMetadata(dbi, shardManager);
    metadata.createTable(SESSION, TEST_TABLE, false);
    tableHandle = metadata.getTableHandle(SESSION, TEST_TABLE.getTable());
    List<ShardInfo> shards = ImmutableList.<ShardInfo>builder().add(shardInfo(UUID.randomUUID(), nodeName)).add(shardInfo(UUID.randomUUID(), nodeName)).add(shardInfo(UUID.randomUUID(), nodeName)).add(shardInfo(UUID.randomUUID(), nodeName)).build();
    tableId = ((RaptorTableHandle) tableHandle).getTableId();
    List<ColumnInfo> columns = metadata.getColumnHandles(SESSION, tableHandle).values().stream().map(RaptorColumnHandle.class::cast).map(ColumnInfo::fromHandle).collect(toList());
    long transactionId = shardManager.beginTransaction();
    shardManager.commitShards(transactionId, tableId, columns, shards, Optional.empty(), 0);
    raptorSplitManager = new RaptorSplitManager(connectorId, nodeSupplier, shardManager, false);
}
Also used : DatabaseTesting.createTestingJdbi(io.trino.plugin.raptor.legacy.DatabaseTesting.createTestingJdbi) Jdbi(org.jdbi.v3.core.Jdbi) RaptorColumnHandle(io.trino.plugin.raptor.legacy.RaptorColumnHandle) RaptorMetadata(io.trino.plugin.raptor.legacy.RaptorMetadata) Duration(io.airlift.units.Duration) DaoSupplier(io.trino.plugin.raptor.legacy.util.DaoSupplier) URI(java.net.URI) ImmutableSet(com.google.common.collect.ImmutableSet) TestingNodeManager(io.trino.testing.TestingNodeManager) CatalogName(io.trino.plugin.base.CatalogName) InternalNode(io.trino.metadata.InternalNode) NodeSupplier(io.trino.plugin.raptor.legacy.NodeSupplier) RaptorSplitManager(io.trino.plugin.raptor.legacy.RaptorSplitManager) BeforeMethod(org.testng.annotations.BeforeMethod)

Example 2 with RaptorSplitManager

use of io.trino.plugin.raptor.legacy.RaptorSplitManager in project trino by trinodb.

the class TestRaptorSplitManager method testNoNodes.

@Test(expectedExceptions = TrinoException.class, expectedExceptionsMessageRegExp = "No nodes available to run query")
public void testNoNodes() {
    deleteShardNodes();
    RaptorSplitManager raptorSplitManagerWithBackup = new RaptorSplitManager(new CatalogName("fbraptor"), ImmutableSet::of, shardManager, true);
    ConnectorSplitSource splitSource = getSplits(raptorSplitManagerWithBackup, tableHandle);
    getSplits(splitSource, 1000);
}
Also used : ImmutableSet(com.google.common.collect.ImmutableSet) CatalogName(io.trino.plugin.base.CatalogName) ConnectorSplitSource(io.trino.spi.connector.ConnectorSplitSource) RaptorSplitManager(io.trino.plugin.raptor.legacy.RaptorSplitManager) Test(org.testng.annotations.Test)

Example 3 with RaptorSplitManager

use of io.trino.plugin.raptor.legacy.RaptorSplitManager in project trino by trinodb.

the class TestRaptorSplitManager method testAssignRandomNodeWhenBackupAvailable.

@Test
public void testAssignRandomNodeWhenBackupAvailable() throws URISyntaxException {
    TestingNodeManager nodeManager = new TestingNodeManager();
    CatalogName connectorId = new CatalogName("raptor");
    NodeSupplier nodeSupplier = nodeManager::getWorkerNodes;
    InternalNode node = new InternalNode(UUID.randomUUID().toString(), new URI("http://127.0.0.1/"), NodeVersion.UNKNOWN, false);
    nodeManager.addNode(node);
    RaptorSplitManager raptorSplitManagerWithBackup = new RaptorSplitManager(connectorId, nodeSupplier, shardManager, true);
    deleteShardNodes();
    ConnectorSplitSource partitionSplit = getSplits(raptorSplitManagerWithBackup, tableHandle);
    List<ConnectorSplit> batch = getSplits(partitionSplit, 1);
    assertEquals(getOnlyElement(getOnlyElement(batch).getAddresses()), node.getHostAndPort());
}
Also used : TestingNodeManager(io.trino.testing.TestingNodeManager) CatalogName(io.trino.plugin.base.CatalogName) InternalNode(io.trino.metadata.InternalNode) ConnectorSplitSource(io.trino.spi.connector.ConnectorSplitSource) URI(java.net.URI) ConnectorSplit(io.trino.spi.connector.ConnectorSplit) NodeSupplier(io.trino.plugin.raptor.legacy.NodeSupplier) RaptorSplitManager(io.trino.plugin.raptor.legacy.RaptorSplitManager) Test(org.testng.annotations.Test)

Aggregations

CatalogName (io.trino.plugin.base.CatalogName)3 RaptorSplitManager (io.trino.plugin.raptor.legacy.RaptorSplitManager)3 ImmutableSet (com.google.common.collect.ImmutableSet)2 InternalNode (io.trino.metadata.InternalNode)2 NodeSupplier (io.trino.plugin.raptor.legacy.NodeSupplier)2 ConnectorSplitSource (io.trino.spi.connector.ConnectorSplitSource)2 TestingNodeManager (io.trino.testing.TestingNodeManager)2 URI (java.net.URI)2 Test (org.testng.annotations.Test)2 Duration (io.airlift.units.Duration)1 DatabaseTesting.createTestingJdbi (io.trino.plugin.raptor.legacy.DatabaseTesting.createTestingJdbi)1 RaptorColumnHandle (io.trino.plugin.raptor.legacy.RaptorColumnHandle)1 RaptorMetadata (io.trino.plugin.raptor.legacy.RaptorMetadata)1 DaoSupplier (io.trino.plugin.raptor.legacy.util.DaoSupplier)1 ConnectorSplit (io.trino.spi.connector.ConnectorSplit)1 Jdbi (org.jdbi.v3.core.Jdbi)1 BeforeMethod (org.testng.annotations.BeforeMethod)1