Michael Pershyn created STORM-463:
-------------------------------------
Summary: lack of static helper registerMetricsConsumer for
backtype.storm.Config
Key: STORM-463
URL: https://issues.apache.org/jira/browse/STORM-463
Project: Apache Storm (Incubating)
Issue Type: Improvement
Affects Versions: 0.9.2-incubating, 0.9.1-incubating, 0.9.3-incubating
Reporter: Michael Pershyn
In backtype.storm.Config there is the concept in design to use regular maps,
while providing only helpers to operate on that map.
Most of the methods are using this concept by providing static versions.
For example, {{registerSerialization}} method.
{code}
public static void registerSerialization(Map conf, Class klass) {
getRegisteredSerializations(conf).add(klass.getName());
}
public void registerSerialization(Class klass) {
registerSerialization(this, klass);
}
{code}
However recently added metrics interface doesn't follow this approach.
Unfortunately, this breaks the concept of using HashMap as configuration
container by user. And it is still only HashMap inside storm.
Also, not having static version of {{registerMetricsConsumer}}, while
introducing metrics feature breaks the configuration code in clojure that
previosly was just a map.
Without static helper this code should be instance of {{backtype.storm.Config}}
class, and it is not possible to keep configuration as simple as in pseudocode
example below in submitter call.
{code}
(let [topology-config (doto { TOPOLOGY-DEBUG false
TOPOLOGY-STATS-SAMPLE-RATE 0.01
TOPOLOGY-RECEIVER-BUFFER-SIZE 32
TOPOLOGY-TRANSFER-BUFFER-SIZE 4096
TOPOLOGY-EXECUTOR-RECEIVE-BUFFER-SIZE 2048 }
;; using static helper to add serialization class to
config.
storm.backtype.Config/registerSerialization
EXMPLSerializer
serializer)]
(StormSubmitter/submitTopology
topology-name
topology-config
(mk-topology)))
{code}
Proposed solution to create a static version of `registerMetricsConsumer` they
way it is done by all other {{backtype.storm.Config}} helpers.
--
This message was sent by Atlassian JIRA
(v6.2#6252)