Hi! Thanks for your pointers!
I want to make sure the I/O message queue also being pined together with the corresponding executor, is it possible to do in Storm? Follow Bobby's "easier solution" suggestion, in a machine with multiple CPU sockets, if I pin the executor thread to one CPU socket in the open method, what would happen to its input&output buffer (the disruptor queue)? Would it being "pined"? That is to ask, "who" creates the internal buffers and when? Any helps are appreciated. Thank you! Tony. > On 21 Jun 2016, at 10:16 PM, Bobby Evans <[email protected]> wrote: > > If you really want to do this you should be able to do this is the open > method of your spout or in the prepare method of the bolt. They execute on > the same thread so from that you should be able to do what you need to do. > As for the clojure in executor.clj we use the async-loop macro for creating > the task threads. > > https://github.com/apache/storm/blob/v1.0.2/storm-core/src/clj/org/apache/storm/util.clj#L472-L514 > > and on line 479 you can see the clojure equivalent of `new Thread(...)` > `(Thread. ...)` - Bobby > > On Tuesday, June 21, 2016 9:09 AM, #ZHANG SHUHAO# <[email protected]> > wrote: > > > Hi all, > > I want to manage the binding of Storm executor thread (NOT worker process) to > CPU cores (NOT host nodes). > I assume if I would know how the executor thread are initiated, I can manage > the binding of it by relying on things like JNI. > I have tried my best to look into the related source code of Storm. > Unfortunately, I am very new to Clojure, and I don't get how the executor > thread are initiated, in particular, I'm looking for something like "Thread > thread = new Thread(obj);", which is one of the most common way of creating > threads in Java. > > Any helps are appreciated. Thank you! > > Best regards. > Shuhao Zhang (Tony) > +65-86166722 > >
