Package io.crate.executor.transport.distributed

Examples of io.crate.executor.transport.distributed.DistributedResultRequest


        Object[][] rows = new Object[3][];
        rows[0] = new Object[] {1, new BytesRef("Arthur")};
        rows[1] = new Object[] {2, new BytesRef("Trillian")};
        rows[2] = new Object[] {3, new BytesRef("Marvin")};

        DistributedResultRequest requestSender = new DistributedResultRequest(contextId, streamers);
        requestSender.rows(rows);

        BytesStreamOutput streamOutput = new BytesStreamOutput();
        requestSender.writeTo(streamOutput);
        // -- end sender


        // receiver
        DistributedRequestContextManager contextManager =
                new DistributedRequestContextManager(new DummyDownstreamOperationFactory(rows), functions,
                        new StatsTables(ImmutableSettings.EMPTY, mock(NodeSettingsService.class)));
        BytesStreamInput streamInput = new BytesStreamInput(streamOutput.bytes());
        DistributedResultRequest requestReceiver = new DistributedResultRequest(contextManager);
        requestReceiver.readFrom(streamInput);

        assertFalse(requestReceiver.rowsRead());
        assertNotNull(requestReceiver.memoryStream());
        assertTrue(requestReceiver.memoryStream().size() > 0);


        contextManager.addToContext(requestReceiver);
        final SettableFuture<Object[][]> result = SettableFuture.create();
View Full Code Here


        Streamer<?>[] streamers = new Streamer[2];
        streamers[0] = DataTypes.INTEGER.streamer();
        streamers[1] = DataTypes.STRING.streamer();

        DistributedResultRequest requestSender = new DistributedResultRequest(contextId, streamers);
        requestSender.rows(rows);

        BytesStreamOutput streamOutput = new BytesStreamOutput();
        requestSender.writeTo(streamOutput);

        BytesStreamInput streamInput = new BytesStreamInput(streamOutput.bytes());

        DistributedResultRequest requestReceiver = new DistributedResultRequest(contextManager);
        requestReceiver.readFrom(streamInput);


        Object[][] receiverRows = requestReceiver.rows();
        for (int i = 0; i < rows.length; i++) {
            assertTrue(Arrays.equals(rows[i], receiverRows[i]));
        }
    }
View Full Code Here

        task.start();

        Iterator<String> iterator = nodes.iterator();
        String firstNode = iterator.next();

        DistributedResultRequest request1 = new DistributedResultRequest(mergeNode.contextId(), mapperOutputStreamer);
        request1.rows(new Object[][] {
                new Object[] { new CountAggregation.CountAggState() {{ value = 1; }}, new BytesRef("bar") },
        });
        DistributedResultRequest request2 = new DistributedResultRequest(mergeNode.contextId(), mapperOutputStreamer);
        request2.rows(new Object[][] {
                new Object[] { new CountAggregation.CountAggState() {{ value = 1; }}, new BytesRef("bar") },
                new Object[] { new CountAggregation.CountAggState() {{ value = 3; }}, new BytesRef("bar") },
                new Object[] { new CountAggregation.CountAggState() {{ value = 3; }}, new BytesRef("foobar") },
        });

        transportMergeNodeAction.mergeRows(firstNode, request1, noopListener);
        transportMergeNodeAction.mergeRows(firstNode, request2, noopListener);

        DistributedResultRequest request3 = new DistributedResultRequest(mergeNode.contextId(), mapperOutputStreamer);
        request3.rows(new Object[][] {
                new Object[] { new CountAggregation.CountAggState() {{ value = 10; }}, new BytesRef("foo") },
                new Object[] { new CountAggregation.CountAggState() {{ value = 20; }}, new BytesRef("foo") },
        });
        DistributedResultRequest request4 = new DistributedResultRequest(mergeNode.contextId(), mapperOutputStreamer);
        request4.rows(new Object[][] {
                new Object[] { new CountAggregation.CountAggState() {{ value = 10; }}, new BytesRef("foo") },
                new Object[] { new CountAggregation.CountAggState() {{ value = 14; }}, new BytesRef("test") },
        });

        String secondNode = iterator.next();
View Full Code Here

        this.contextManager = contextManager;
    }

    @Override
    public DistributedResultRequest newInstance() {
        return new DistributedResultRequest(contextManager);
    }
View Full Code Here

    }

    private static List<DistributedResultRequest> genRequests(UUID jobId, int size, Streamer<?>[] streamers) {
        List<DistributedResultRequest> requests = new ArrayList<>(size);
        for (int i = 0; i < size; i++) {
            requests.add(new DistributedResultRequest(jobId,streamers ));
        }
        return requests;
    }
View Full Code Here

                BucketingIterator bucketingIterator = new ModuloBucketingIterator(
                        downStreams.size(), Arrays.asList(result));

                int i = 0;
                for (List<Object[]> bucket : bucketingIterator) {
                    DistributedResultRequest request = requests.get(i);
                    request.rows(bucket.toArray(new Object[bucket.size()][]));
                    sendRequest(request, downStreams.get(i));
                    i++;
                }
            }

            @Override
            public void onFailure(@Nonnull Throwable t) {
                int idx = 0;
                for (DistributedResultRequest request : requests) {
                    request.failure(true);
                    sendRequest(request, downStreams.get(idx));
                    idx++;
                }
            }
        });
View Full Code Here

            this.downStreams = downStreams;
            this.numDownStreams = this.downStreams.size();

            this.requests = new DistributedResultRequest[numDownStreams];
            for (int i=0, length = this.downStreams.size(); i<length; i++) {
                this.requests[i] = new DistributedResultRequest(jobId, streamers);
            }
        }
View Full Code Here

            );

            // send requests
            int i = 0;
            for (List<Object[]> bucket : bucketingIterator) {
                DistributedResultRequest request = this.requests[i];
                request.rows(bucket.toArray(new Object[bucket.size()][]));
                final DiscoveryNode node = downStreams.get(i);
                if (logger.isTraceEnabled()) {
                    logger.trace("[{}] sending distributing collect request to {} ...",
                            jobId.toString(),
                            node.id());
View Full Code Here

TOP

Related Classes of io.crate.executor.transport.distributed.DistributedResultRequest

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.