)]}'
{"specs/pike/parallel-evaluation.rst":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"0db30f15b68ff1d699d935a7905e6bf20e648ddd","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Currently Vitrage sequentially processes and evaluates incoming events."},{"line_number":14,"context_line":"While it is a necessity to run sequential processing, template evaluation"},{"line_number":15,"context_line":"for a single event is independent and can be paralleled."},{"line_number":16,"context_line":"The challenge is NetworkX in-memory graph held by a single process, thus "},{"line_number":17,"context_line":"preventing parallelism, this can be addressed by creating evaluator worker"},{"line_number":18,"context_line":"processes that maintain clones of the graph."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f201791_89294d8b","line":16,"range":{"start_line":16,"start_character":72,"end_line":16,"end_character":73},"updated":"2017-06-26 14:45:38.000000000","message":"You need to fix the spaces here","commit_id":"256d61177fa1d5b1a670fc833db7cfd787b69909"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"0db30f15b68ff1d699d935a7905e6bf20e648ddd","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Problem description"},{"line_number":22,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Each and every graph change triggers evaluation of all relevant template "},{"line_number":25,"context_line":"conditions, Thus run time of event processing is dependent upon the number"},{"line_number":26,"context_line":"of loaded templates."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f201791_491fb55a","line":24,"range":{"start_line":24,"start_character":72,"end_line":24,"end_character":73},"updated":"2017-06-26 14:45:38.000000000","message":"And here","commit_id":"256d61177fa1d5b1a670fc833db7cfd787b69909"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"0db30f15b68ff1d699d935a7905e6bf20e648ddd","unresolved":false,"context_lines":[{"line_number":95,"context_line":"Deployer impact"},{"line_number":96,"context_line":"---------------"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"None"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Developer impact"},{"line_number":101,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f201791_89770da1","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":4},"updated":"2017-06-26 14:45:38.000000000","message":"Any update in the installation/puppet-vitrage?","commit_id":"256d61177fa1d5b1a670fc833db7cfd787b69909"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"a9803acdc42de692e053730ed45d1839d9919a4c","unresolved":false,"context_lines":[{"line_number":95,"context_line":"Deployer impact"},{"line_number":96,"context_line":"---------------"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"None"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Developer impact"},{"line_number":101,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f201791_49e7b5ad","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":4},"in_reply_to":"5f201791_89770da1","updated":"2017-06-26 15:03:24.000000000","message":"nothing should change in the installation","commit_id":"256d61177fa1d5b1a670fc833db7cfd787b69909"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"8f4bda7ede45fa551d7eefd94f939473f4aac529","unresolved":false,"context_lines":[{"line_number":3,"context_line":" License."},{"line_number":4,"context_line":""},{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Parallel evaluation of Vitrage templates"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f201791_1a744ffd","line":6,"updated":"2017-06-27 03:31:52.000000000","message":"Hi Idan,\nIt looks good, but I have a few remarks:\n1. in the future diagram, please mark what components are of each process. for example evaluator, networkx graph and evaluator service is of one process, and etc..\n2. The same in the current diagram.","commit_id":"8bccfa9c9e1c37d70e09a75ba8577910f7a40560"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"6c1cf897dba4a5e188b0db0a43c457d93de33e42","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"The flow will be as follows:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":" - Processor receives an event, from either the datasource or evaluator queue"},{"line_number":55,"context_line":" - Processor updates the graph"},{"line_number":56,"context_line":" - EvaluatorManager is triggered, sending the event to the N EvaluatorWorkers,"},{"line_number":57,"context_line":"   via N multiprocessing queues, then waits for their ack signal"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f201791_daded70f","line":54,"updated":"2017-06-27 03:26:54.000000000","message":"which one of those two queues has precedency in case they both have messages in the their queues.","commit_id":"8bccfa9c9e1c37d70e09a75ba8577910f7a40560"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"20e634f09866536ea96b0004bb60f78721e504c0","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"The flow will be as follows:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":" - Processor receives an event, from either the datasource or evaluator queue"},{"line_number":55,"context_line":" - Processor updates the graph"},{"line_number":56,"context_line":" - EvaluatorManager is triggered, sending the event to the N EvaluatorWorkers,"},{"line_number":57,"context_line":"   via N multiprocessing queues, then waits for their ack signal"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f201791_3467f2eb","line":54,"in_reply_to":"5f201791_daded70f","updated":"2017-06-28 05:37:30.000000000","message":"This will be unchanged","commit_id":"8bccfa9c9e1c37d70e09a75ba8577910f7a40560"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"6c1cf897dba4a5e188b0db0a43c457d93de33e42","unresolved":false,"context_lines":[{"line_number":58,"context_line":" - Each EvaluatorWorker updates it\u0027s own graph"},{"line_number":59,"context_line":" - In each EvaluatorWorker the evaluator is triggered to run a portion of the"},{"line_number":60,"context_line":"   templates"},{"line_number":61,"context_line":" - Evaluation may result in an event writen to the evaluator queue"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":".. figure:: ./parallel_future.jpg"},{"line_number":64,"context_line":"   :width: 100%"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f201791_ba0c3ba5","line":61,"updated":"2017-06-27 03:26:54.000000000","message":"please describe what happens when each EvaluatorWorker finishes? do they send some ack message to the processor?\nWhat will happen if one of the workers get stucked or dies? (meaning the processor won\u0027t get the ack and then everything will be stucked - you have to have some trying mechanism here because everything now is much more complexed due to all the processes and the dependency between them)","commit_id":"8bccfa9c9e1c37d70e09a75ba8577910f7a40560"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"20e634f09866536ea96b0004bb60f78721e504c0","unresolved":false,"context_lines":[{"line_number":58,"context_line":" - Each EvaluatorWorker updates it\u0027s own graph"},{"line_number":59,"context_line":" - In each EvaluatorWorker the evaluator is triggered to run a portion of the"},{"line_number":60,"context_line":"   templates"},{"line_number":61,"context_line":" - Evaluation may result in an event writen to the evaluator queue"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":".. figure:: ./parallel_future.jpg"},{"line_number":64,"context_line":"   :width: 100%"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f201791_b4d8a252","line":61,"in_reply_to":"5f201791_ba0c3ba5","updated":"2017-06-28 05:37:30.000000000","message":"The ack is described in the third bullet.\nRegarding terminated processes, this is not handled in the present, and will not handled as part of this blueprint.","commit_id":"8bccfa9c9e1c37d70e09a75ba8577910f7a40560"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"6c1cf897dba4a5e188b0db0a43c457d93de33e42","unresolved":false,"context_lines":[{"line_number":75,"context_line":"Data model impact"},{"line_number":76,"context_line":"-----------------"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"None"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"REST API impact"},{"line_number":81,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f201791_babe7bb1","line":78,"updated":"2017-06-27 03:26:54.000000000","message":"please mention here what is the memory data impact that will happen if for example instead of one big process (how much does it take in memory) we will have 4 evaluator processes + 1 processor process + 1 consistency process + 1 api handler process.","commit_id":"8bccfa9c9e1c37d70e09a75ba8577910f7a40560"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"6c1cf897dba4a5e188b0db0a43c457d93de33e42","unresolved":false,"context_lines":[{"line_number":137,"context_line":"Testing"},{"line_number":138,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"The implementation will be covered by additional unit test"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Documentation Impact"},{"line_number":143,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f201791_7a37c34e","line":140,"updated":"2017-06-27 03:26:54.000000000","message":"what kind of test you are going to make in order to cover all of the cases that there are here? meaning such as some workers dies in the middle etc..","commit_id":"8bccfa9c9e1c37d70e09a75ba8577910f7a40560"}]}
