Hi,

Recently, I needed to increase the zookeeper timeout to:

   - tickTime=20000
   - initLimit=10
   - syncLimit=15


and storm.yaml defaults to:

   - supervisor.worker.timeout.secs: 600
   - nimbus.task.timeout.secs: 600
   - nimbus.supervisor.timeout.secs: 600


Did this because each of my bolts had to write
<http://programmers.stackexchange.com/questions/325681/concurrent-inserts-to-mysql-or-write-to-separate-tables-and-consolidate-it>
at least 100000 rows in batches of 1000 to the same table in MySQL, and
each bolt took time to ack because it couldn't insert to SQL until another
bolt had finished inserting. This caused Zookeeper to not receive a
heartbeat and timeout.

My supervisor advised that the better way to tackle this problem would be
to:

   - Leave the zookeeper and storm defaults as it is because the creators
   of Storm had designed the defaults for a reason.
   - Also because everytime we upgrade Storm to a newer version, we'd have
   to remember to change those parameters.
   - Perhaps the design of the topology could be changed to have the bolts
   write fewer rows and ack more quickly so that there is no timeout.

*My questions:*
Are the storm and zookeeper defaults better left alone for the above
reasons?


-- 
Regards,
Navin

Reply via email to