[ https://issues.apache.org/jira/browse/STORM-2693?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16418162#comment-16418162 ]
Jungtaek Lim commented on STORM-2693: ------------------------------------- [~revans2] [~danny0405] This issue depends on STORM-2898, and both STORM-2693 and STORM-2898 are introducing huge changes which may be painful to port back to 1.x version line. IMHO, focusing to 2.x would save plenty of our time and efforts. Makes sense? > Topology submission or kill takes too much time when topologies grow to a few > hundred > ------------------------------------------------------------------------------------- > > Key: STORM-2693 > URL: https://issues.apache.org/jira/browse/STORM-2693 > Project: Apache Storm > Issue Type: Improvement > Components: storm-core > Affects Versions: 0.9.6, 1.0.2, 1.1.0, 1.0.3 > Reporter: Yuzhao Chen > Assignee: Yuzhao Chen > Priority: Major > Labels: pull-request-available > Fix For: 2.0.0 > > Attachments: 2FA30CD8-AF15-4352-992D-A67BD724E7FB.png, > D4A30D40-25D5-4ACF-9A96-252EBA9E6EF6.png > > Time Spent: 43h > Remaining Estimate: 0h > > Now for a storm cluster with 40 hosts [with 32 cores/128G memory] and > hundreds of topologies, nimbus submission and killing will take about minutes > to finish. For example, for a cluster with 300 hundred of topologies,it will > take about 8 minutes to submit a topology, this affect our efficiency > seriously. > So, i check out the nimbus code and find two factor that will effect nimbus > submission/killing time for a scheduling round: > * read existing-assignments from zookeeper for every topology [will take > about 4 seconds for a 300 topologies cluster] > * read all the workers heartbeats and update the state to nimbus cache [will > take about 30 seconds for a 300 topologies cluster] > the key here is that Storm now use zookeeper to collect heartbeats [not RPC], > and also keep physical plan [assignments] using zookeeper which can be > totally local in nimbus. > So, i think we should make some changes to storm's heartbeats and assignments > management. > For assignment promotion: > 1. nimbus will put the assignments in local disk > 2. when restart or HA leader trigger nimbus will recover assignments from zk > to local disk > 3. nimbus will tell supervisor its assignment every time through RPC every > scheduling round > 4. supervisor will sync assignments at fixed time > For heartbeats promotion: > 1. workers will report executors ok or wrong to supervisor at fixed time > 2. supervisor will report workers heartbeats to nimbus at fixed time > 3. if supervisor die, it will tell nimbus through runtime hook > or let nimbus find it through aware supervisor if is survive > 4. let supervisor decide if worker is running ok or invalid , supervisor will > tell nimbus which executors of every topology are ok -- This message was sent by Atlassian JIRA (v7.6.3#76005)