Search in sources :

Example 1 with SchemaManager

use of com.alibaba.graphscope.groot.coordinator.SchemaManager in project GraphScope by alibaba.

the class NotifyFrontendListenerTest method testListener.

@Test
void testListener() {
    FrontendSnapshotClient frontendSnapshotClient = mock(FrontendSnapshotClient.class);
    SchemaManager schemaManager = mock(SchemaManager.class);
    GraphDef graphDef = GraphDef.newBuilder().setVersion(3L).build();
    when(schemaManager.getGraphDef()).thenReturn(graphDef);
    doAnswer(invocationOnMock -> {
        long snapshotId = invocationOnMock.getArgument(0);
        CompletionCallback<Long> callback = invocationOnMock.getArgument(2);
        callback.onCompleted(snapshotId - 1);
        return null;
    }).when(frontendSnapshotClient).advanceQuerySnapshot(anyLong(), any(), any());
    NotifyFrontendListener listener = new NotifyFrontendListener(0, frontendSnapshotClient, schemaManager);
    listener.snapshotAdvanced(10L, 10L);
    verify(frontendSnapshotClient).advanceQuerySnapshot(eq(10L), eq(graphDef), any());
    listener.snapshotAdvanced(20L, 10L);
    verify(frontendSnapshotClient).advanceQuerySnapshot(eq(20L), isNull(), any());
}
Also used : NotifyFrontendListener(com.alibaba.graphscope.groot.coordinator.NotifyFrontendListener) SchemaManager(com.alibaba.graphscope.groot.coordinator.SchemaManager) FrontendSnapshotClient(com.alibaba.graphscope.groot.coordinator.FrontendSnapshotClient) GraphDef(com.alibaba.maxgraph.sdkcommon.schema.GraphDef) Test(org.junit.jupiter.api.Test)

Example 2 with SchemaManager

use of com.alibaba.graphscope.groot.coordinator.SchemaManager in project GraphScope by alibaba.

the class SchemaManagerTest method testSchemaManager.

@Test
void testSchemaManager() throws IOException, InterruptedException {
    SnapshotManager mockSnapshotManager = mock(SnapshotManager.class);
    doAnswer(invocationOnMock -> {
        SnapshotListener listener = invocationOnMock.getArgument(1);
        listener.onSnapshotAvailable();
        return null;
    }).when(mockSnapshotManager).addSnapshotListener(anyLong(), any());
    when(mockSnapshotManager.increaseWriteSnapshotId()).thenReturn(1L);
    when(mockSnapshotManager.getCurrentWriteSnapshotId()).thenReturn(1L);
    DdlExecutors ddlExecutors = new DdlExecutors();
    DdlWriter mockDdlWriter = mock(DdlWriter.class);
    when(mockDdlWriter.writeOperations(anyString(), any())).thenReturn(new BatchId(1L));
    MetaService mockMetaService = mock(MetaService.class);
    GraphDefFetcher mockGraphDefFetcher = mock(GraphDefFetcher.class);
    GraphDef initialGraphDef = GraphDef.newBuilder().build();
    when(mockGraphDefFetcher.fetchGraphDef()).thenReturn(initialGraphDef);
    SchemaManager schemaManager = new SchemaManager(mockSnapshotManager, ddlExecutors, mockDdlWriter, mockMetaService, mockGraphDefFetcher);
    schemaManager.start();
    assertEquals(initialGraphDef, schemaManager.getGraphDef());
    PropertyValue defaultValue = new PropertyValue(DataType.INT, ByteBuffer.allocate(Integer.BYTES).putInt(1).array());
    PropertyDef propertyDef = new PropertyDef(1, 1, "p1", DataType.INT, defaultValue, true, "property_1");
    TypeDef typeDef = TypeDef.newBuilder().setLabel("vertex1").addPropertyDef(propertyDef).setTypeEnum(TypeEnum.VERTEX).build();
    DdlRequestBatch ddlRequestBatch = DdlRequestBatch.newBuilder().addDdlRequest(new CreateVertexTypeRequest(typeDef)).build();
    CountDownLatch latch = new CountDownLatch(1);
    schemaManager.submitBatchDdl("requestId", "sessionId", ddlRequestBatch, new CompletionCallback<Long>() {

        @Override
        public void onCompleted(Long res) {
            latch.countDown();
        }

        @Override
        public void onError(Throwable t) {
        }
    });
    assertTrue(latch.await(5L, TimeUnit.SECONDS));
    schemaManager.stop();
}
Also used : MetaService(com.alibaba.graphscope.groot.meta.MetaService) PropertyDef(com.alibaba.maxgraph.sdkcommon.schema.PropertyDef) BatchId(com.alibaba.graphscope.groot.operation.BatchId) PropertyValue(com.alibaba.maxgraph.sdkcommon.schema.PropertyValue) SchemaManager(com.alibaba.graphscope.groot.coordinator.SchemaManager) CountDownLatch(java.util.concurrent.CountDownLatch) GraphDefFetcher(com.alibaba.graphscope.groot.coordinator.GraphDefFetcher) GraphDef(com.alibaba.maxgraph.sdkcommon.schema.GraphDef) SnapshotListener(com.alibaba.graphscope.groot.SnapshotListener) DdlWriter(com.alibaba.graphscope.groot.coordinator.DdlWriter) TypeDef(com.alibaba.maxgraph.sdkcommon.schema.TypeDef) DdlExecutors(com.alibaba.graphscope.groot.schema.ddl.DdlExecutors) ArgumentMatchers.anyLong(org.mockito.ArgumentMatchers.anyLong) CreateVertexTypeRequest(com.alibaba.graphscope.groot.schema.request.CreateVertexTypeRequest) DdlRequestBatch(com.alibaba.graphscope.groot.schema.request.DdlRequestBatch) SnapshotManager(com.alibaba.graphscope.groot.coordinator.SnapshotManager) Test(org.junit.jupiter.api.Test)

Example 3 with SchemaManager

use of com.alibaba.graphscope.groot.coordinator.SchemaManager in project GraphScope by alibaba.

the class LocalSnapshotListenerTest method testListener.

@Test
void testListener() {
    SchemaManager schemaManager = mock(SchemaManager.class);
    GraphDef graphDef = GraphDef.newBuilder().setVersion(3L).build();
    when(schemaManager.getGraphDef()).thenReturn(graphDef);
    SnapshotCache snapshotCache = mock(SnapshotCache.class);
    LocalSnapshotListener listener = new LocalSnapshotListener(schemaManager, snapshotCache);
    listener.snapshotAdvanced(10L, 10L);
    verify(snapshotCache).advanceQuerySnapshotId(eq(10L), eq(graphDef));
    listener.snapshotAdvanced(20L, 10L);
    verify(snapshotCache).advanceQuerySnapshotId(eq(20L), isNull());
}
Also used : SchemaManager(com.alibaba.graphscope.groot.coordinator.SchemaManager) SnapshotCache(com.alibaba.graphscope.groot.SnapshotCache) LocalSnapshotListener(com.alibaba.graphscope.groot.coordinator.LocalSnapshotListener) GraphDef(com.alibaba.maxgraph.sdkcommon.schema.GraphDef) Test(org.junit.jupiter.api.Test)

Aggregations

SchemaManager (com.alibaba.graphscope.groot.coordinator.SchemaManager)3 GraphDef (com.alibaba.maxgraph.sdkcommon.schema.GraphDef)3 Test (org.junit.jupiter.api.Test)3 SnapshotCache (com.alibaba.graphscope.groot.SnapshotCache)1 SnapshotListener (com.alibaba.graphscope.groot.SnapshotListener)1 DdlWriter (com.alibaba.graphscope.groot.coordinator.DdlWriter)1 FrontendSnapshotClient (com.alibaba.graphscope.groot.coordinator.FrontendSnapshotClient)1 GraphDefFetcher (com.alibaba.graphscope.groot.coordinator.GraphDefFetcher)1 LocalSnapshotListener (com.alibaba.graphscope.groot.coordinator.LocalSnapshotListener)1 NotifyFrontendListener (com.alibaba.graphscope.groot.coordinator.NotifyFrontendListener)1 SnapshotManager (com.alibaba.graphscope.groot.coordinator.SnapshotManager)1 MetaService (com.alibaba.graphscope.groot.meta.MetaService)1 BatchId (com.alibaba.graphscope.groot.operation.BatchId)1 DdlExecutors (com.alibaba.graphscope.groot.schema.ddl.DdlExecutors)1 CreateVertexTypeRequest (com.alibaba.graphscope.groot.schema.request.CreateVertexTypeRequest)1 DdlRequestBatch (com.alibaba.graphscope.groot.schema.request.DdlRequestBatch)1 PropertyDef (com.alibaba.maxgraph.sdkcommon.schema.PropertyDef)1 PropertyValue (com.alibaba.maxgraph.sdkcommon.schema.PropertyValue)1 TypeDef (com.alibaba.maxgraph.sdkcommon.schema.TypeDef)1 CountDownLatch (java.util.concurrent.CountDownLatch)1