[
https://issues.apache.org/jira/browse/IGNITE-529?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14991597#comment-14991597
]
Anton Vinogradov commented on IGNITE-529:
-----------------------------------------
Roman,
Thanks for your pull request.
I'd like to propose you to fix some issues:
1. FlumeStreamer
1.1. Please take a look to Streamers Implementation Guidelines
(https://cwiki.apache.org/confluence/display/IGNITE/Streamers+Implementation+Guidelines).
1.2. Streamer implementation should extend StreamAdapter. User should just
provide own implementation of StreamSingleTupleExtractor and/or
StreamMultipleTupleExtractor interfaces and shouldn't create any subclass of
FlumeStreamer and override transfom() method.
1.3. Streamer shouldn't create cache.
2. IgniteSink:
2.1. It seems that specifyGrid() method is redundant. It would be better to
provide default configuration files that will be used if user didn't specify
own configuration file. It configuration should define client Ignite node.
2.2. Method start() set client mode to 'true'. It would be better allow to user
control all configuration parameters and do not hard code it. Also no need to
check that cluster has any server nodes.
3. IgniteFlumeSinkTest
3.1. What if test will fail for some reason? Ignite node will not stop and will
affect all other test because all new nodes will join to the cluster. Use
stopAllGrids() call in afterTests() method.
3.2. It seems that class contains default IntelliJ Idea javadoc :)
3.3 Waiting for latch without specifying timeout is not agood practice at
tests. Code simmilar to assertTrue(latch.await(10, TimeUnit.SECONDS)); should
be used. But better way is to override getTestTimeout() method to make sure it
sutable for your test.
3.4 Is it possible to check cache size after cache content check? It will be a
good test case to configure flume mock to produce 1000 events and check that
cache size equals 1000.
3.5 EVT_CACHE_OBJECT_PUT listenet should be registered before streamer start,
and unregistered atfer stop.
4. IgniteFlumeSinkTestSuite
4.1. It seems that test suite name just copied and pasted from Kafka Streamer
module :)
P.s. Please take a look to "Coding Guidelines"
(https://cwiki.apache.org/confluence/display/IGNITE/Coding+Guidelines),
especially "Semantic Units" and "JavadocComments" topics. You will be surprised
how easy to read code can be when these Coding Guidelines used ;)
> Implement IgniteFlumeStreamer to stream data from Apache Flume
> --------------------------------------------------------------
>
> Key: IGNITE-529
> URL: https://issues.apache.org/jira/browse/IGNITE-529
> Project: Ignite
> Issue Type: Sub-task
> Components: streaming
> Reporter: Dmitriy Setrakyan
> Assignee: Roman Shtykh
>
> We have {{IgniteDataStreamer}} which is used to load data into Ignite under
> high load. It was previously named {{IgniteDataLoader}}, see ticket
> IGNITE-394.
> See [Apache Flume|http://flume.apache.org/] for more information.
> We should create {{IgniteFlumeStreamer}} which will consume messages from
> Apache Flume and stream them into Ignite caches.
> More details to follow, but to the least we should be able to:
> * Convert Flume data to Ignite data using an optional pluggable converter.
> * Specify the cache name for the Ignite cache to load data into.
> * Specify other flags available on {{IgniteDataStreamer}} class.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)