Search in sources :

Example 11 with RegisterStreamer

use of alluxio.worker.block.RegisterStreamer in project alluxio by Alluxio.

the class BlockWorkerRegisterStreamIntegrationTest method registerWorkerErrorAtStreamStart.

/**
 * Tests below cover various failure cases.
 */
@Test
public void registerWorkerErrorAtStreamStart() throws Exception {
    // Create the stream and control the request/response observers
    BlockMasterWorkerServiceStub asyncClient = PowerMockito.mock(BlockMasterWorkerServiceStub.class);
    when(asyncClient.withDeadlineAfter(anyLong(), any())).thenReturn(asyncClient);
    ManualRegisterStreamObserver requestObserver = new ManualRegisterStreamObserver(MasterMode.FIRST_REQUEST);
    when(asyncClient.registerWorkerStream(any())).thenReturn(requestObserver);
    RegisterStreamer registerStreamer = new RegisterStreamer(asyncClient, WORKER_ID, mTierAliases, mCapacityMap, mUsedMap, mBlockMap, LOST_STORAGE, EMPTY_CONFIG);
    StreamObserver<RegisterWorkerPResponse> responseObserver = getResponseObserver(registerStreamer);
    requestObserver.setResponseObserver(responseObserver);
    assertThrows(InternalException.class, () -> {
        // An error received from the master side will be InternalException
        registerStreamer.registerWithMaster();
    });
}
Also used : RegisterWorkerPResponse(alluxio.grpc.RegisterWorkerPResponse) BlockMasterWorkerServiceStub(alluxio.grpc.BlockMasterWorkerServiceGrpc.BlockMasterWorkerServiceStub) RegisterStreamer(alluxio.worker.block.RegisterStreamer) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) Test(org.junit.Test)

Example 12 with RegisterStreamer

use of alluxio.worker.block.RegisterStreamer in project alluxio by Alluxio.

the class CachingBlockMasterClient method registerWithStream.

@Override
public void registerWithStream(final long workerId, final List<String> storageTierAliases, final Map<String, Long> totalBytesOnTiers, final Map<String, Long> usedBytesOnTiers, final Map<BlockStoreLocation, List<Long>> currentBlocksOnLocation, final Map<String, List<String>> lostStorage, final List<ConfigProperty> configList) throws IOException {
    AtomicReference<IOException> ioe = new AtomicReference<>();
    retryRPC(() -> {
        try {
            RegisterStreamer stream = new RegisterStreamer(mAsyncClient, workerId, storageTierAliases, totalBytesOnTiers, usedBytesOnTiers, lostStorage, configList, mBlockBatchIterator);
            stream.registerWithMaster();
        } catch (IOException e) {
            ioe.set(e);
        } catch (InterruptedException e) {
            ioe.set(new IOException(e));
        }
        return null;
    }, LOG, "Register", "workerId=%d", workerId);
    if (ioe.get() != null) {
        throw ioe.get();
    }
}
Also used : AtomicReference(java.util.concurrent.atomic.AtomicReference) IOException(java.io.IOException) RegisterStreamer(alluxio.worker.block.RegisterStreamer)

Aggregations

RegisterStreamer (alluxio.worker.block.RegisterStreamer)12 Test (org.junit.Test)9 BlockMasterWorkerServiceStub (alluxio.grpc.BlockMasterWorkerServiceGrpc.BlockMasterWorkerServiceStub)7 RegisterWorkerPResponse (alluxio.grpc.RegisterWorkerPResponse)7 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)7 RegisterWorkerPRequest (alluxio.grpc.RegisterWorkerPRequest)5 BlockStoreLocation (alluxio.worker.block.BlockStoreLocation)5 ImmutableList (com.google.common.collect.ImmutableList)5 List (java.util.List)5 StorageList (alluxio.grpc.StorageList)3 MasterWorkerInfo (alluxio.master.block.meta.MasterWorkerInfo)2 IOException (java.io.IOException)2 ConcurrentLinkedQueue (java.util.concurrent.ConcurrentLinkedQueue)2 AtomicReference (java.util.concurrent.atomic.AtomicReference)2 DeadlineExceededException (alluxio.exception.status.DeadlineExceededException)1 InternalException (alluxio.exception.status.InternalException)1 NotFoundException (alluxio.exception.status.NotFoundException)1 Command (alluxio.grpc.Command)1 MasterClientContext (alluxio.master.MasterClientContext)1 TierAlias (alluxio.stress.rpc.TierAlias)1