org.apache.flink.queryablestate.messages.KvStateResponse Java Examples
The following examples show how to use
org.apache.flink.queryablestate.messages.KvStateResponse.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: MessageSerializerTest.java From flink with Apache License 2.0 | 6 votes |
/** * Tests request serialization with zero-length serialized key and namespace. */ @Test public void testRequestSerializationWithZeroLengthKeyAndNamespace() throws Exception { long requestId = Integer.MAX_VALUE + 1337L; KvStateID kvStateId = new KvStateID(); byte[] serializedKeyAndNamespace = new byte[0]; final KvStateInternalRequest request = new KvStateInternalRequest(kvStateId, serializedKeyAndNamespace); final MessageSerializer<KvStateInternalRequest, KvStateResponse> serializer = new MessageSerializer<>(new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); ByteBuf buf = MessageSerializer.serializeRequest(alloc, requestId, request); int frameLength = buf.readInt(); assertEquals(MessageType.REQUEST, MessageSerializer.deserializeHeader(buf)); assertEquals(requestId, MessageSerializer.getRequestId(buf)); KvStateInternalRequest requestDeser = serializer.deserializeRequest(buf); assertEquals(buf.readerIndex(), frameLength + 4); assertEquals(kvStateId, requestDeser.getKvStateId()); assertArrayEquals(serializedKeyAndNamespace, requestDeser.getSerializedKeyAndNamespace()); }
Example #2
Source File: MessageSerializerTest.java From flink with Apache License 2.0 | 6 votes |
/** * Tests response serialization. */ @Test public void testResponseSerialization() throws Exception { long requestId = Integer.MAX_VALUE + 72727278L; byte[] serializedResult = randomByteArray(1024); final KvStateResponse response = new KvStateResponse(serializedResult); final MessageSerializer<KvStateInternalRequest, KvStateResponse> serializer = new MessageSerializer<>(new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); ByteBuf buf = MessageSerializer.serializeResponse(alloc, requestId, response); int frameLength = buf.readInt(); assertEquals(MessageType.REQUEST_RESULT, MessageSerializer.deserializeHeader(buf)); assertEquals(requestId, MessageSerializer.getRequestId(buf)); KvStateResponse responseDeser = serializer.deserializeResponse(buf); assertEquals(buf.readerIndex(), frameLength + 4); assertArrayEquals(serializedResult, responseDeser.getContent()); }
Example #3
Source File: MessageSerializerTest.java From flink with Apache License 2.0 | 6 votes |
/** * Tests response serialization with zero-length serialized result. */ @Test public void testResponseSerializationWithZeroLengthSerializedResult() throws Exception { byte[] serializedResult = new byte[0]; final KvStateResponse response = new KvStateResponse(serializedResult); final MessageSerializer<KvStateInternalRequest, KvStateResponse> serializer = new MessageSerializer<>(new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); ByteBuf buf = MessageSerializer.serializeResponse(alloc, 72727278L, response); int frameLength = buf.readInt(); assertEquals(MessageType.REQUEST_RESULT, MessageSerializer.deserializeHeader(buf)); assertEquals(72727278L, MessageSerializer.getRequestId(buf)); KvStateResponse responseDeser = serializer.deserializeResponse(buf); assertEquals(buf.readerIndex(), frameLength + 4); assertArrayEquals(serializedResult, responseDeser.getContent()); }
Example #4
Source File: KvStateServerHandler.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
@Override public CompletableFuture<KvStateResponse> handleRequest(final long requestId, final KvStateInternalRequest request) { final CompletableFuture<KvStateResponse> responseFuture = new CompletableFuture<>(); try { final KvStateEntry<?, ?, ?> kvState = registry.getKvState(request.getKvStateId()); if (kvState == null) { responseFuture.completeExceptionally(new UnknownKvStateIdException(getServerName(), request.getKvStateId())); } else { byte[] serializedKeyAndNamespace = request.getSerializedKeyAndNamespace(); byte[] serializedResult = getSerializedValue(kvState, serializedKeyAndNamespace); if (serializedResult != null) { responseFuture.complete(new KvStateResponse(serializedResult)); } else { responseFuture.completeExceptionally(new UnknownKeyOrNamespaceException(getServerName())); } } return responseFuture; } catch (Throwable t) { String errMsg = "Error while processing request with ID " + requestId + ". Caused by: " + ExceptionUtils.stringifyException(t); responseFuture.completeExceptionally(new RuntimeException(errMsg)); return responseFuture; } }
Example #5
Source File: MessageSerializerTest.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
/** * Tests request serialization. */ @Test public void testRequestSerialization() throws Exception { long requestId = Integer.MAX_VALUE + 1337L; KvStateID kvStateId = new KvStateID(); byte[] serializedKeyAndNamespace = randomByteArray(1024); final KvStateInternalRequest request = new KvStateInternalRequest(kvStateId, serializedKeyAndNamespace); final MessageSerializer<KvStateInternalRequest, KvStateResponse> serializer = new MessageSerializer<>(new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); ByteBuf buf = MessageSerializer.serializeRequest(alloc, requestId, request); int frameLength = buf.readInt(); assertEquals(MessageType.REQUEST, MessageSerializer.deserializeHeader(buf)); assertEquals(requestId, MessageSerializer.getRequestId(buf)); KvStateInternalRequest requestDeser = serializer.deserializeRequest(buf); assertEquals(buf.readerIndex(), frameLength + 4); assertEquals(kvStateId, requestDeser.getKvStateId()); assertArrayEquals(serializedKeyAndNamespace, requestDeser.getSerializedKeyAndNamespace()); }
Example #6
Source File: KvStateClientProxyHandler.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
private CompletableFuture<KvStateResponse> getState( final KvStateRequest request, final boolean forceUpdate) { return getKvStateLookupInfo(request.getJobId(), request.getStateName(), forceUpdate) .thenComposeAsync((Function<KvStateLocation, CompletableFuture<KvStateResponse>>) location -> { final int keyGroupIndex = KeyGroupRangeAssignment.computeKeyGroupForKeyHash( request.getKeyHashCode(), location.getNumKeyGroups()); final InetSocketAddress serverAddress = location.getKvStateServerAddress(keyGroupIndex); if (serverAddress == null) { return FutureUtils.completedExceptionally(new UnknownKvStateKeyGroupLocationException(getServerName())); } else { // Query server final KvStateID kvStateId = location.getKvStateID(keyGroupIndex); final KvStateInternalRequest internalRequest = new KvStateInternalRequest( kvStateId, request.getSerializedKeyAndNamespace()); return kvStateClient.sendRequest(serverAddress, internalRequest); } }, queryExecutor); }
Example #7
Source File: QueryableStateClient.java From flink with Apache License 2.0 | 6 votes |
/** * Create the Queryable State Client. * @param remoteAddress the {@link InetAddress address} of the {@code Client Proxy} to connect to. * @param remotePort the port of the proxy to connect to. */ public QueryableStateClient(final InetAddress remoteAddress, final int remotePort) { Preconditions.checkArgument(NetUtils.isValidHostPort(remotePort), "Remote Port " + remotePort + " is out of valid port range [0-65535]."); this.remoteAddress = new InetSocketAddress(remoteAddress, remotePort); final MessageSerializer<KvStateRequest, KvStateResponse> messageSerializer = new MessageSerializer<>( new KvStateRequest.KvStateRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); this.client = new Client<>( "Queryable State Client", 1, messageSerializer, new DisabledKvStateRequestStats()); }
Example #8
Source File: MessageSerializerTest.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
/** * Tests response serialization with zero-length serialized result. */ @Test public void testResponseSerializationWithZeroLengthSerializedResult() throws Exception { byte[] serializedResult = new byte[0]; final KvStateResponse response = new KvStateResponse(serializedResult); final MessageSerializer<KvStateInternalRequest, KvStateResponse> serializer = new MessageSerializer<>(new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); ByteBuf buf = MessageSerializer.serializeResponse(alloc, 72727278L, response); int frameLength = buf.readInt(); assertEquals(MessageType.REQUEST_RESULT, MessageSerializer.deserializeHeader(buf)); assertEquals(72727278L, MessageSerializer.getRequestId(buf)); KvStateResponse responseDeser = serializer.deserializeResponse(buf); assertEquals(buf.readerIndex(), frameLength + 4); assertArrayEquals(serializedResult, responseDeser.getContent()); }
Example #9
Source File: MessageSerializerTest.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
/** * Tests request serialization with zero-length serialized key and namespace. */ @Test public void testRequestSerializationWithZeroLengthKeyAndNamespace() throws Exception { long requestId = Integer.MAX_VALUE + 1337L; KvStateID kvStateId = new KvStateID(); byte[] serializedKeyAndNamespace = new byte[0]; final KvStateInternalRequest request = new KvStateInternalRequest(kvStateId, serializedKeyAndNamespace); final MessageSerializer<KvStateInternalRequest, KvStateResponse> serializer = new MessageSerializer<>(new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); ByteBuf buf = MessageSerializer.serializeRequest(alloc, requestId, request); int frameLength = buf.readInt(); assertEquals(MessageType.REQUEST, MessageSerializer.deserializeHeader(buf)); assertEquals(requestId, MessageSerializer.getRequestId(buf)); KvStateInternalRequest requestDeser = serializer.deserializeRequest(buf); assertEquals(buf.readerIndex(), frameLength + 4); assertEquals(kvStateId, requestDeser.getKvStateId()); assertArrayEquals(serializedKeyAndNamespace, requestDeser.getSerializedKeyAndNamespace()); }
Example #10
Source File: MessageSerializerTest.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
/** * Tests response serialization. */ @Test public void testResponseSerialization() throws Exception { long requestId = Integer.MAX_VALUE + 72727278L; byte[] serializedResult = randomByteArray(1024); final KvStateResponse response = new KvStateResponse(serializedResult); final MessageSerializer<KvStateInternalRequest, KvStateResponse> serializer = new MessageSerializer<>(new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); ByteBuf buf = MessageSerializer.serializeResponse(alloc, requestId, response); int frameLength = buf.readInt(); assertEquals(MessageType.REQUEST_RESULT, MessageSerializer.deserializeHeader(buf)); assertEquals(requestId, MessageSerializer.getRequestId(buf)); KvStateResponse responseDeser = serializer.deserializeResponse(buf); assertEquals(buf.readerIndex(), frameLength + 4); assertArrayEquals(serializedResult, responseDeser.getContent()); }
Example #11
Source File: MessageSerializerTest.java From flink with Apache License 2.0 | 6 votes |
/** * Tests request serialization with zero-length serialized key and namespace. */ @Test public void testRequestSerializationWithZeroLengthKeyAndNamespace() throws Exception { long requestId = Integer.MAX_VALUE + 1337L; KvStateID kvStateId = new KvStateID(); byte[] serializedKeyAndNamespace = new byte[0]; final KvStateInternalRequest request = new KvStateInternalRequest(kvStateId, serializedKeyAndNamespace); final MessageSerializer<KvStateInternalRequest, KvStateResponse> serializer = new MessageSerializer<>(new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); ByteBuf buf = MessageSerializer.serializeRequest(alloc, requestId, request); int frameLength = buf.readInt(); assertEquals(MessageType.REQUEST, MessageSerializer.deserializeHeader(buf)); assertEquals(requestId, MessageSerializer.getRequestId(buf)); KvStateInternalRequest requestDeser = serializer.deserializeRequest(buf); assertEquals(buf.readerIndex(), frameLength + 4); assertEquals(kvStateId, requestDeser.getKvStateId()); assertArrayEquals(serializedKeyAndNamespace, requestDeser.getSerializedKeyAndNamespace()); }
Example #12
Source File: MessageSerializerTest.java From flink with Apache License 2.0 | 6 votes |
/** * Tests request serialization. */ @Test public void testRequestSerialization() throws Exception { long requestId = Integer.MAX_VALUE + 1337L; KvStateID kvStateId = new KvStateID(); byte[] serializedKeyAndNamespace = randomByteArray(1024); final KvStateInternalRequest request = new KvStateInternalRequest(kvStateId, serializedKeyAndNamespace); final MessageSerializer<KvStateInternalRequest, KvStateResponse> serializer = new MessageSerializer<>(new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); ByteBuf buf = MessageSerializer.serializeRequest(alloc, requestId, request); int frameLength = buf.readInt(); assertEquals(MessageType.REQUEST, MessageSerializer.deserializeHeader(buf)); assertEquals(requestId, MessageSerializer.getRequestId(buf)); KvStateInternalRequest requestDeser = serializer.deserializeRequest(buf); assertEquals(buf.readerIndex(), frameLength + 4); assertEquals(kvStateId, requestDeser.getKvStateId()); assertArrayEquals(serializedKeyAndNamespace, requestDeser.getSerializedKeyAndNamespace()); }
Example #13
Source File: KvStateClientProxyHandler.java From flink with Apache License 2.0 | 6 votes |
private CompletableFuture<KvStateResponse> getState( final KvStateRequest request, final boolean forceUpdate) { return getKvStateLookupInfo(request.getJobId(), request.getStateName(), forceUpdate) .thenComposeAsync((Function<KvStateLocation, CompletableFuture<KvStateResponse>>) location -> { final int keyGroupIndex = KeyGroupRangeAssignment.computeKeyGroupForKeyHash( request.getKeyHashCode(), location.getNumKeyGroups()); final InetSocketAddress serverAddress = location.getKvStateServerAddress(keyGroupIndex); if (serverAddress == null) { return FutureUtils.completedExceptionally(new UnknownKvStateKeyGroupLocationException(getServerName())); } else { // Query server final KvStateID kvStateId = location.getKvStateID(keyGroupIndex); final KvStateInternalRequest internalRequest = new KvStateInternalRequest( kvStateId, request.getSerializedKeyAndNamespace()); return kvStateClient.sendRequest(serverAddress, internalRequest); } }, queryExecutor); }
Example #14
Source File: KvStateServerHandlerTest.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
/** * Tests that the channel is closed if an Exception reaches the channel handler. */ @Test public void testCloseChannelOnExceptionCaught() throws Exception { KvStateRegistry registry = new KvStateRegistry(); AtomicKvStateRequestStats stats = new AtomicKvStateRequestStats(); MessageSerializer<KvStateInternalRequest, KvStateResponse> serializer = new MessageSerializer<>(new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); KvStateServerHandler handler = new KvStateServerHandler(testServer, registry, serializer, stats); EmbeddedChannel channel = new EmbeddedChannel(handler); channel.pipeline().fireExceptionCaught(new RuntimeException("Expected test Exception")); ByteBuf buf = (ByteBuf) readInboundBlocking(channel); buf.skipBytes(4); // skip frame length // Verify the response assertEquals(MessageType.SERVER_FAILURE, MessageSerializer.deserializeHeader(buf)); Throwable response = MessageSerializer.deserializeServerFailure(buf); assertTrue(response.getMessage().contains("Expected test Exception")); channel.closeFuture().await(READ_TIMEOUT_MILLIS); assertFalse(channel.isActive()); }
Example #15
Source File: MessageSerializerTest.java From flink with Apache License 2.0 | 6 votes |
/** * Tests request serialization. */ @Test public void testRequestSerialization() throws Exception { long requestId = Integer.MAX_VALUE + 1337L; KvStateID kvStateId = new KvStateID(); byte[] serializedKeyAndNamespace = randomByteArray(1024); final KvStateInternalRequest request = new KvStateInternalRequest(kvStateId, serializedKeyAndNamespace); final MessageSerializer<KvStateInternalRequest, KvStateResponse> serializer = new MessageSerializer<>(new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); ByteBuf buf = MessageSerializer.serializeRequest(alloc, requestId, request); int frameLength = buf.readInt(); assertEquals(MessageType.REQUEST, MessageSerializer.deserializeHeader(buf)); assertEquals(requestId, MessageSerializer.getRequestId(buf)); KvStateInternalRequest requestDeser = serializer.deserializeRequest(buf); assertEquals(buf.readerIndex(), frameLength + 4); assertEquals(kvStateId, requestDeser.getKvStateId()); assertArrayEquals(serializedKeyAndNamespace, requestDeser.getSerializedKeyAndNamespace()); }
Example #16
Source File: KvStateServerHandler.java From flink with Apache License 2.0 | 6 votes |
@Override public CompletableFuture<KvStateResponse> handleRequest(final long requestId, final KvStateInternalRequest request) { final CompletableFuture<KvStateResponse> responseFuture = new CompletableFuture<>(); try { final KvStateEntry<?, ?, ?> kvState = registry.getKvState(request.getKvStateId()); if (kvState == null) { responseFuture.completeExceptionally(new UnknownKvStateIdException(getServerName(), request.getKvStateId())); } else { byte[] serializedKeyAndNamespace = request.getSerializedKeyAndNamespace(); byte[] serializedResult = getSerializedValue(kvState, serializedKeyAndNamespace); if (serializedResult != null) { responseFuture.complete(new KvStateResponse(serializedResult)); } else { responseFuture.completeExceptionally(new UnknownKeyOrNamespaceException(getServerName())); } } return responseFuture; } catch (Throwable t) { String errMsg = "Error while processing request with ID " + requestId + ". Caused by: " + ExceptionUtils.stringifyException(t); responseFuture.completeExceptionally(new RuntimeException(errMsg)); return responseFuture; } }
Example #17
Source File: MessageSerializerTest.java From flink with Apache License 2.0 | 6 votes |
/** * Tests response serialization. */ @Test public void testResponseSerialization() throws Exception { long requestId = Integer.MAX_VALUE + 72727278L; byte[] serializedResult = randomByteArray(1024); final KvStateResponse response = new KvStateResponse(serializedResult); final MessageSerializer<KvStateInternalRequest, KvStateResponse> serializer = new MessageSerializer<>(new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); ByteBuf buf = MessageSerializer.serializeResponse(alloc, requestId, response); int frameLength = buf.readInt(); assertEquals(MessageType.REQUEST_RESULT, MessageSerializer.deserializeHeader(buf)); assertEquals(requestId, MessageSerializer.getRequestId(buf)); KvStateResponse responseDeser = serializer.deserializeResponse(buf); assertEquals(buf.readerIndex(), frameLength + 4); assertArrayEquals(serializedResult, responseDeser.getContent()); }
Example #18
Source File: MessageSerializerTest.java From flink with Apache License 2.0 | 6 votes |
/** * Tests response serialization with zero-length serialized result. */ @Test public void testResponseSerializationWithZeroLengthSerializedResult() throws Exception { byte[] serializedResult = new byte[0]; final KvStateResponse response = new KvStateResponse(serializedResult); final MessageSerializer<KvStateInternalRequest, KvStateResponse> serializer = new MessageSerializer<>(new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); ByteBuf buf = MessageSerializer.serializeResponse(alloc, 72727278L, response); int frameLength = buf.readInt(); assertEquals(MessageType.REQUEST_RESULT, MessageSerializer.deserializeHeader(buf)); assertEquals(72727278L, MessageSerializer.getRequestId(buf)); KvStateResponse responseDeser = serializer.deserializeResponse(buf); assertEquals(buf.readerIndex(), frameLength + 4); assertArrayEquals(serializedResult, responseDeser.getContent()); }
Example #19
Source File: KvStateServerHandlerTest.java From flink with Apache License 2.0 | 6 votes |
/** * Tests that the channel is closed if an Exception reaches the channel handler. */ @Test public void testCloseChannelOnExceptionCaught() throws Exception { KvStateRegistry registry = new KvStateRegistry(); AtomicKvStateRequestStats stats = new AtomicKvStateRequestStats(); MessageSerializer<KvStateInternalRequest, KvStateResponse> serializer = new MessageSerializer<>(new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); KvStateServerHandler handler = new KvStateServerHandler(testServer, registry, serializer, stats); EmbeddedChannel channel = new EmbeddedChannel(handler); channel.pipeline().fireExceptionCaught(new RuntimeException("Expected test Exception")); ByteBuf buf = (ByteBuf) readInboundBlocking(channel); buf.skipBytes(4); // skip frame length // Verify the response assertEquals(MessageType.SERVER_FAILURE, MessageSerializer.deserializeHeader(buf)); Throwable response = MessageSerializer.deserializeServerFailure(buf); assertTrue(response.getMessage().contains("Expected test Exception")); channel.closeFuture().await(READ_TIMEOUT_MILLIS); assertFalse(channel.isActive()); }
Example #20
Source File: KvStateClientProxyHandler.java From flink with Apache License 2.0 | 6 votes |
private CompletableFuture<KvStateResponse> getState( final KvStateRequest request, final boolean forceUpdate) { return getKvStateLookupInfo(request.getJobId(), request.getStateName(), forceUpdate) .thenComposeAsync((Function<KvStateLocation, CompletableFuture<KvStateResponse>>) location -> { final int keyGroupIndex = KeyGroupRangeAssignment.computeKeyGroupForKeyHash( request.getKeyHashCode(), location.getNumKeyGroups()); final InetSocketAddress serverAddress = location.getKvStateServerAddress(keyGroupIndex); if (serverAddress == null) { return FutureUtils.completedExceptionally(new UnknownKvStateKeyGroupLocationException(getServerName())); } else { // Query server final KvStateID kvStateId = location.getKvStateID(keyGroupIndex); final KvStateInternalRequest internalRequest = new KvStateInternalRequest( kvStateId, request.getSerializedKeyAndNamespace()); return kvStateClient.sendRequest(serverAddress, internalRequest); } }, queryExecutor); }
Example #21
Source File: QueryableStateClient.java From flink with Apache License 2.0 | 6 votes |
/** * Create the Queryable State Client. * @param remoteAddress the {@link InetAddress address} of the {@code Client Proxy} to connect to. * @param remotePort the port of the proxy to connect to. */ public QueryableStateClient(final InetAddress remoteAddress, final int remotePort) { Preconditions.checkArgument(remotePort >= 0 && remotePort <= 65536, "Remote Port " + remotePort + " is out of valid port range (0-65536)."); this.remoteAddress = new InetSocketAddress(remoteAddress, remotePort); final MessageSerializer<KvStateRequest, KvStateResponse> messageSerializer = new MessageSerializer<>( new KvStateRequest.KvStateRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); this.client = new Client<>( "Queryable State Client", 1, messageSerializer, new DisabledKvStateRequestStats()); }
Example #22
Source File: QueryableStateClient.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
/** * Create the Queryable State Client. * @param remoteAddress the {@link InetAddress address} of the {@code Client Proxy} to connect to. * @param remotePort the port of the proxy to connect to. */ public QueryableStateClient(final InetAddress remoteAddress, final int remotePort) { Preconditions.checkArgument(remotePort >= 0 && remotePort <= 65536, "Remote Port " + remotePort + " is out of valid port range (0-65536)."); this.remoteAddress = new InetSocketAddress(remoteAddress, remotePort); final MessageSerializer<KvStateRequest, KvStateResponse> messageSerializer = new MessageSerializer<>( new KvStateRequest.KvStateRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); this.client = new Client<>( "Queryable State Client", 1, messageSerializer, new DisabledKvStateRequestStats()); }
Example #23
Source File: KvStateServerHandler.java From flink with Apache License 2.0 | 6 votes |
@Override public CompletableFuture<KvStateResponse> handleRequest(final long requestId, final KvStateInternalRequest request) { final CompletableFuture<KvStateResponse> responseFuture = new CompletableFuture<>(); try { final KvStateEntry<?, ?, ?> kvState = registry.getKvState(request.getKvStateId()); if (kvState == null) { responseFuture.completeExceptionally(new UnknownKvStateIdException(getServerName(), request.getKvStateId())); } else { byte[] serializedKeyAndNamespace = request.getSerializedKeyAndNamespace(); byte[] serializedResult = getSerializedValue(kvState, serializedKeyAndNamespace); if (serializedResult != null) { responseFuture.complete(new KvStateResponse(serializedResult)); } else { responseFuture.completeExceptionally(new UnknownKeyOrNamespaceException(getServerName())); } } return responseFuture; } catch (Throwable t) { String errMsg = "Error while processing request with ID " + requestId + ". Caused by: " + ExceptionUtils.stringifyException(t); responseFuture.completeExceptionally(new RuntimeException(errMsg)); return responseFuture; } }
Example #24
Source File: KvStateServerHandlerTest.java From flink with Apache License 2.0 | 5 votes |
/** * Tests that incoming buffer instances are recycled. */ @Test public void testIncomingBufferIsRecycled() throws Exception { KvStateRegistry registry = new KvStateRegistry(); AtomicKvStateRequestStats stats = new AtomicKvStateRequestStats(); MessageSerializer<KvStateInternalRequest, KvStateResponse> serializer = new MessageSerializer<>(new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); KvStateServerHandler handler = new KvStateServerHandler(testServer, registry, serializer, stats); EmbeddedChannel channel = new EmbeddedChannel(getFrameDecoder(), handler); KvStateInternalRequest request = new KvStateInternalRequest(new KvStateID(), new byte[0]); ByteBuf serRequest = MessageSerializer.serializeRequest(channel.alloc(), 282872L, request); assertEquals(1L, serRequest.refCnt()); // Write regular request channel.writeInbound(serRequest); assertEquals("Buffer not recycled", 0L, serRequest.refCnt()); // Write unexpected msg ByteBuf unexpected = channel.alloc().buffer(8); unexpected.writeInt(4); unexpected.writeInt(4); assertEquals(1L, unexpected.refCnt()); channel.writeInbound(unexpected); assertEquals("Buffer not recycled", 0L, unexpected.refCnt()); channel.finishAndReleaseAll(); }
Example #25
Source File: KvStateServerHandlerTest.java From flink with Apache License 2.0 | 5 votes |
/** * Tests that the channel is closed if an Exception reaches the channel handler. */ @Test public void testCloseChannelOnExceptionCaught() throws Exception { KvStateRegistry registry = new KvStateRegistry(); AtomicKvStateRequestStats stats = new AtomicKvStateRequestStats(); MessageSerializer<KvStateInternalRequest, KvStateResponse> serializer = new MessageSerializer<>(new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); KvStateServerHandler handler = new KvStateServerHandler(testServer, registry, serializer, stats); EmbeddedChannel channel = new EmbeddedChannel(handler); channel.pipeline().fireExceptionCaught(new RuntimeException("Expected test Exception")); ByteBuf buf = (ByteBuf) readInboundBlocking(channel); buf.skipBytes(4); // skip frame length // Verify the response assertEquals(MessageType.SERVER_FAILURE, MessageSerializer.deserializeHeader(buf)); Throwable response = MessageSerializer.deserializeServerFailure(buf); buf.release(); assertTrue(response.getMessage().contains("Expected test Exception")); channel.closeFuture().await(READ_TIMEOUT_MILLIS); assertFalse(channel.isActive()); }
Example #26
Source File: KvStateServerHandlerTest.java From flink with Apache License 2.0 | 5 votes |
/** * Tests the failure response with {@link UnknownKvStateIdException} as cause on * queries for unregistered KvStateIDs. */ @Test public void testQueryUnknownKvStateID() throws Exception { KvStateRegistry registry = new KvStateRegistry(); AtomicKvStateRequestStats stats = new AtomicKvStateRequestStats(); MessageSerializer<KvStateInternalRequest, KvStateResponse> serializer = new MessageSerializer<>(new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); KvStateServerHandler handler = new KvStateServerHandler(testServer, registry, serializer, stats); EmbeddedChannel channel = new EmbeddedChannel(getFrameDecoder(), handler); long requestId = Integer.MAX_VALUE + 182828L; KvStateInternalRequest request = new KvStateInternalRequest(new KvStateID(), new byte[0]); ByteBuf serRequest = MessageSerializer.serializeRequest(channel.alloc(), requestId, request); // Write the request and wait for the response channel.writeInbound(serRequest); ByteBuf buf = (ByteBuf) readInboundBlocking(channel); buf.skipBytes(4); // skip frame length // Verify the response assertEquals(MessageType.REQUEST_FAILURE, MessageSerializer.deserializeHeader(buf)); RequestFailure response = MessageSerializer.deserializeRequestFailure(buf); assertEquals(requestId, response.getRequestId()); assertTrue("Did not respond with expected failure cause", response.getCause() instanceof UnknownKvStateIdException); assertEquals(1L, stats.getNumRequests()); assertEquals(1L, stats.getNumFailed()); }
Example #27
Source File: KvStateServerHandlerTest.java From flink with Apache License 2.0 | 5 votes |
/** * Tests the failure response with {@link UnknownKvStateIdException} as cause on * queries for unregistered KvStateIDs. */ @Test public void testQueryUnknownKvStateID() throws Exception { KvStateRegistry registry = new KvStateRegistry(); AtomicKvStateRequestStats stats = new AtomicKvStateRequestStats(); MessageSerializer<KvStateInternalRequest, KvStateResponse> serializer = new MessageSerializer<>(new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); KvStateServerHandler handler = new KvStateServerHandler(testServer, registry, serializer, stats); EmbeddedChannel channel = new EmbeddedChannel(getFrameDecoder(), handler); long requestId = Integer.MAX_VALUE + 182828L; KvStateInternalRequest request = new KvStateInternalRequest(new KvStateID(), new byte[0]); ByteBuf serRequest = MessageSerializer.serializeRequest(channel.alloc(), requestId, request); // Write the request and wait for the response channel.writeInbound(serRequest); ByteBuf buf = (ByteBuf) readInboundBlocking(channel); buf.skipBytes(4); // skip frame length // Verify the response assertEquals(MessageType.REQUEST_FAILURE, MessageSerializer.deserializeHeader(buf)); RequestFailure response = MessageSerializer.deserializeRequestFailure(buf); buf.release(); assertEquals(requestId, response.getRequestId()); assertTrue("Did not respond with expected failure cause", response.getCause() instanceof UnknownKvStateIdException); assertEquals(1L, stats.getNumRequests()); assertEquals(1L, stats.getNumFailed()); }
Example #28
Source File: KvStateClientProxyHandler.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
/** * Create the handler used by the {@link KvStateClientProxyImpl}. * * @param proxy the {@link KvStateClientProxyImpl proxy} using the handler. * @param queryExecutorThreads the number of threads used to process incoming requests. * @param serializer the {@link MessageSerializer} used to (de-) serialize the different messages. * @param stats server statistics collector. */ public KvStateClientProxyHandler( final KvStateClientProxyImpl proxy, final int queryExecutorThreads, final MessageSerializer<KvStateRequest, KvStateResponse> serializer, final KvStateRequestStats stats) { super(proxy, serializer, stats); this.proxy = Preconditions.checkNotNull(proxy); this.kvStateClient = createInternalClient(queryExecutorThreads); }
Example #29
Source File: KvStateServerHandlerTest.java From flink with Apache License 2.0 | 5 votes |
/** * Tests that incoming buffer instances are recycled. */ @Test public void testIncomingBufferIsRecycled() throws Exception { KvStateRegistry registry = new KvStateRegistry(); AtomicKvStateRequestStats stats = new AtomicKvStateRequestStats(); MessageSerializer<KvStateInternalRequest, KvStateResponse> serializer = new MessageSerializer<>(new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); KvStateServerHandler handler = new KvStateServerHandler(testServer, registry, serializer, stats); EmbeddedChannel channel = new EmbeddedChannel(getFrameDecoder(), handler); KvStateInternalRequest request = new KvStateInternalRequest(new KvStateID(), new byte[0]); ByteBuf serRequest = MessageSerializer.serializeRequest(channel.alloc(), 282872L, request); assertEquals(1L, serRequest.refCnt()); // Write regular request channel.writeInbound(serRequest); assertEquals("Buffer not recycled", 0L, serRequest.refCnt()); // Write unexpected msg ByteBuf unexpected = channel.alloc().buffer(8); unexpected.writeInt(4); unexpected.writeInt(4); assertEquals(1L, unexpected.refCnt()); channel.writeInbound(unexpected); assertEquals("Buffer not recycled", 0L, unexpected.refCnt()); }
Example #30
Source File: KvStateServerImpl.java From flink with Apache License 2.0 | 5 votes |
@Override public AbstractServerHandler<KvStateInternalRequest, KvStateResponse> initializeHandler() { this.serializer = new MessageSerializer<>( new KvStateInternalRequest.KvStateInternalRequestDeserializer(), new KvStateResponse.KvStateResponseDeserializer()); return new KvStateServerHandler(this, kvStateRegistry, serializer, stats); }