)]}'
{"doc/specs/in-progress/distributed_runner.rst":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2feb6c0054903324102e9ed88e6bb8d9e692d85a","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Implement Distributed Runner"},{"line_number":19,"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"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"We need a Distributed Runner in Rally that will run tasks on several nodes"},{"line_number":22,"context_line":"simultaneously."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_87d1c6cf","line":21,"updated":"2015-11-05 03:20:03.000000000","message":"s/several/many/","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"79a10465720d2f6deb86941dc4b4c481eea858c0","unresolved":false,"context_lines":[{"line_number":25,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Currently there are several runners in Rally, but they all can only run on"},{"line_number":28,"context_line":"the same host that Rally itself runs on. It limits test load tat Rally can"},{"line_number":29,"context_line":"generate. We want to be able to generate test load simultaneoulsy on several"},{"line_number":30,"context_line":"nodes."},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_dc48528a","line":28,"updated":"2015-11-03 14:35:35.000000000","message":"*typo: tat -\u003e that","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a248f95bd80c5df0aa145a0e0adb907bd4b8b083","unresolved":false,"context_lines":[{"line_number":25,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Currently there are several runners in Rally, but they all can only run on"},{"line_number":28,"context_line":"the same host that Rally itself runs on. It limits test load tat Rally can"},{"line_number":29,"context_line":"generate. We want to be able to generate test load simultaneoulsy on several"},{"line_number":30,"context_line":"nodes."},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_61a15494","line":28,"in_reply_to":"fa80f949_dc48528a","updated":"2015-11-09 13:53:08.000000000","message":"Done","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2feb6c0054903324102e9ed88e6bb8d9e692d85a","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Currently there are several runners in Rally, but they all can only run on"},{"line_number":28,"context_line":"the same host that Rally itself runs on. It limits test load tat Rally can"},{"line_number":29,"context_line":"generate. We want to be able to generate test load simultaneoulsy on several"},{"line_number":30,"context_line":"nodes."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"In current implementation Runner object runs actual task and generates test"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_4703de42","line":29,"updated":"2015-11-05 03:20:03.000000000","message":"It\u0027s better to avoid usage of \"We want\" in specs. \n\nWhy not just saying: \n\nIn some cases required load can\u0027t be generated from one host. ...","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a248f95bd80c5df0aa145a0e0adb907bd4b8b083","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Currently there are several runners in Rally, but they all can only run on"},{"line_number":28,"context_line":"the same host that Rally itself runs on. It limits test load tat Rally can"},{"line_number":29,"context_line":"generate. We want to be able to generate test load simultaneoulsy on several"},{"line_number":30,"context_line":"nodes."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"In current implementation Runner object runs actual task and generates test"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_41a450a5","line":29,"in_reply_to":"fa80f949_4703de42","updated":"2015-11-09 13:53:08.000000000","message":"Done","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"2c3bf77ba6c53a7e2c8551eff10ed6e0807a21d7","unresolved":false,"context_lines":[{"line_number":27,"context_line":"Currently there are several runners in Rally, but they all can only run on"},{"line_number":28,"context_line":"the same host that Rally itself runs on. It limits test load tat Rally can"},{"line_number":29,"context_line":"generate. We want to be able to generate test load simultaneoulsy on several"},{"line_number":30,"context_line":"nodes."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"In current implementation Runner object runs actual task and generates test"},{"line_number":33,"context_line":"results while BenchmarkEngine via ResultConsumer retrieves these results,"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_715a8085","line":30,"updated":"2015-11-04 12:58:37.000000000","message":"Is it not a problem for as that different nodes have different power? Maybe it may cause problems when we will start to check scenario time with previous runs(in case if they was executed on different machines)","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a248f95bd80c5df0aa145a0e0adb907bd4b8b083","unresolved":false,"context_lines":[{"line_number":27,"context_line":"Currently there are several runners in Rally, but they all can only run on"},{"line_number":28,"context_line":"the same host that Rally itself runs on. It limits test load tat Rally can"},{"line_number":29,"context_line":"generate. We want to be able to generate test load simultaneoulsy on several"},{"line_number":30,"context_line":"nodes."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"In current implementation Runner object runs actual task and generates test"},{"line_number":33,"context_line":"results while BenchmarkEngine via ResultConsumer retrieves these results,"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_214cacc6","line":30,"in_reply_to":"fa80f949_715a8085","updated":"2015-11-09 13:53:08.000000000","message":"That sounds like an issue to investigate, but for me it does not look like something we should put to spec. Not at this stage.","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2feb6c0054903324102e9ed88e6bb8d9e692d85a","unresolved":false,"context_lines":[{"line_number":29,"context_line":"generate. We want to be able to generate test load simultaneoulsy on several"},{"line_number":30,"context_line":"nodes."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"In current implementation Runner object runs actual task and generates test"},{"line_number":33,"context_line":"results while BenchmarkEngine via ResultConsumer retrieves these results,"},{"line_number":34,"context_line":"checks them against specified SLA and stores in DB."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_52de3e6e","line":32,"updated":"2015-11-05 03:20:03.000000000","message":"in new terminology it\u0027s \"subtask\" not task","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a248f95bd80c5df0aa145a0e0adb907bd4b8b083","unresolved":false,"context_lines":[{"line_number":29,"context_line":"generate. We want to be able to generate test load simultaneoulsy on several"},{"line_number":30,"context_line":"nodes."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"In current implementation Runner object runs actual task and generates test"},{"line_number":33,"context_line":"results while BenchmarkEngine via ResultConsumer retrieves these results,"},{"line_number":34,"context_line":"checks them against specified SLA and stores in DB."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_21fa6c43","line":32,"in_reply_to":"fa80f949_52de3e6e","updated":"2015-11-09 13:53:08.000000000","message":"Done","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"79a10465720d2f6deb86941dc4b4c481eea858c0","unresolved":false,"context_lines":[{"line_number":47,"context_line":"  from all runners to be analysed, i.e. checking SLA on a single runner is not"},{"line_number":48,"context_line":"  enough."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"- Since we expect longer task duration we want to provide to user at least"},{"line_number":51,"context_line":"  partial information about task execution as soon as possible."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_8fadaa33","line":50,"updated":"2015-11-03 14:35:35.000000000","message":"longer-\u003elong? Longer than what?","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2feb6c0054903324102e9ed88e6bb8d9e692d85a","unresolved":false,"context_lines":[{"line_number":55,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"It is proposed to introduce two new components, RunnerAgent and"},{"line_number":58,"context_line":"DistributedRunner, and refactor existing ones, BenchmarkEngine, Runner and"},{"line_number":59,"context_line":"SLA, so that overall interaction will look as follows."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":".. image:: ../../source/images/Rally_Distributed_Runner.png"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_92ca66a0","line":58,"updated":"2015-11-05 03:20:03.000000000","message":"so the thing is that DistributedRunner shouldn\u0027t be component, it should be regular plugin of runner type","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a248f95bd80c5df0aa145a0e0adb907bd4b8b083","unresolved":false,"context_lines":[{"line_number":55,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"It is proposed to introduce two new components, RunnerAgent and"},{"line_number":58,"context_line":"DistributedRunner, and refactor existing ones, BenchmarkEngine, Runner and"},{"line_number":59,"context_line":"SLA, so that overall interaction will look as follows."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":".. image:: ../../source/images/Rally_Distributed_Runner.png"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_e487925f","line":58,"in_reply_to":"fa80f949_92ca66a0","updated":"2015-11-09 13:53:08.000000000","message":"Done","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"2c3bf77ba6c53a7e2c8551eff10ed6e0807a21d7","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"It is proposed to introduce two new components, RunnerAgent and"},{"line_number":58,"context_line":"DistributedRunner, and refactor existing ones, BenchmarkEngine, Runner and"},{"line_number":59,"context_line":"SLA, so that overall interaction will look as follows."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":".. image:: ../../source/images/Rally_Distributed_Runner.png"},{"line_number":62,"context_line":"   :align: center"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_d1d56c43","line":59,"updated":"2015-11-04 12:58:37.000000000","message":"I was thinking on How we will collect logs from all Runners?","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a248f95bd80c5df0aa145a0e0adb907bd4b8b083","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"It is proposed to introduce two new components, RunnerAgent and"},{"line_number":58,"context_line":"DistributedRunner, and refactor existing ones, BenchmarkEngine, Runner and"},{"line_number":59,"context_line":"SLA, so that overall interaction will look as follows."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":".. image:: ../../source/images/Rally_Distributed_Runner.png"},{"line_number":62,"context_line":"   :align: center"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_84ca46a0","line":59,"in_reply_to":"fa80f949_d1d56c43","updated":"2015-11-09 13:53:08.000000000","message":"For me it is not a part of distributed load generation scope.","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"79a10465720d2f6deb86941dc4b4c481eea858c0","unresolved":false,"context_lines":[{"line_number":58,"context_line":"DistributedRunner, and refactor existing ones, BenchmarkEngine, Runner and"},{"line_number":59,"context_line":"SLA, so that overall interaction will look as follows."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":".. image:: ../../source/images/Rally_Distributed_Runner.png"},{"line_number":62,"context_line":"   :align: center"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_1236c103","line":61,"updated":"2015-11-03 14:35:35.000000000","message":"How we would react on rally master failure?","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a248f95bd80c5df0aa145a0e0adb907bd4b8b083","unresolved":false,"context_lines":[{"line_number":58,"context_line":"DistributedRunner, and refactor existing ones, BenchmarkEngine, Runner and"},{"line_number":59,"context_line":"SLA, so that overall interaction will look as follows."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":".. image:: ../../source/images/Rally_Distributed_Runner.png"},{"line_number":62,"context_line":"   :align: center"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_24535ae3","line":61,"in_reply_to":"fa80f949_1236c103","updated":"2015-11-09 13:53:08.000000000","message":"I would not dive into any HA right now.","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2feb6c0054903324102e9ed88e6bb8d9e692d85a","unresolved":false,"context_lines":[{"line_number":62,"context_line":"   :align: center"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"1. BenchmarkEngine"},{"line_number":66,"context_line":"    - run task iterations in Runner(s) thru RunnerAgent(s)"},{"line_number":67,"context_line":"    - pass context, args and SLA configuration to RunnerAgent"},{"line_number":68,"context_line":"    - receive aggregated SLA data"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_d2378eae","line":65,"updated":"2015-11-05 03:20:03.000000000","message":"There is no more \"Benchmark\" word we should not use it at all. \n\nThis should be called TaskEngine","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a248f95bd80c5df0aa145a0e0adb907bd4b8b083","unresolved":false,"context_lines":[{"line_number":62,"context_line":"   :align: center"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"1. BenchmarkEngine"},{"line_number":66,"context_line":"    - run task iterations in Runner(s) thru RunnerAgent(s)"},{"line_number":67,"context_line":"    - pass context, args and SLA configuration to RunnerAgent"},{"line_number":68,"context_line":"    - receive aggregated SLA data"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_e46312b0","line":65,"in_reply_to":"fa80f949_d2378eae","updated":"2015-11-09 13:53:08.000000000","message":"Done","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2feb6c0054903324102e9ed88e6bb8d9e692d85a","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"1. BenchmarkEngine"},{"line_number":66,"context_line":"    - run task iterations in Runner(s) thru RunnerAgent(s)"},{"line_number":67,"context_line":"    - pass context, args and SLA configuration to RunnerAgent"},{"line_number":68,"context_line":"    - receive aggregated SLA data"},{"line_number":69,"context_line":"    - send \u0027stop\u0027 meaasge to RunnerAgent(s) on SLA violation"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_721ca213","line":66,"updated":"2015-11-05 03:20:03.000000000","message":"Imho this order is wrong. \n\n\n  - Create subtask context \n  - Create instance of RunnerAgent \n  - Run RunnerAgent.run() with context object and info about sceanario\n  - In separated thread consume results \u0026 SLA from RunnerAgent\n  - Delete context","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a248f95bd80c5df0aa145a0e0adb907bd4b8b083","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"1. BenchmarkEngine"},{"line_number":66,"context_line":"    - run task iterations in Runner(s) thru RunnerAgent(s)"},{"line_number":67,"context_line":"    - pass context, args and SLA configuration to RunnerAgent"},{"line_number":68,"context_line":"    - receive aggregated SLA data"},{"line_number":69,"context_line":"    - send \u0027stop\u0027 meaasge to RunnerAgent(s) on SLA violation"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_84ab2689","line":66,"in_reply_to":"fa80f949_721ca213","updated":"2015-11-09 13:53:08.000000000","message":"Done","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"79a10465720d2f6deb86941dc4b4c481eea858c0","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"1. BenchmarkEngine"},{"line_number":66,"context_line":"    - run task iterations in Runner(s) thru RunnerAgent(s)"},{"line_number":67,"context_line":"    - pass context, args and SLA configuration to RunnerAgent"},{"line_number":68,"context_line":"    - receive aggregated SLA data"},{"line_number":69,"context_line":"    - send \u0027stop\u0027 meaasge to RunnerAgent(s) on SLA violation"},{"line_number":70,"context_line":"      or user interrupt (Ctrl-C)"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_b2a49508","line":67,"updated":"2015-11-03 14:35:35.000000000","message":"and runner args if they not included into args","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a248f95bd80c5df0aa145a0e0adb907bd4b8b083","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"1. BenchmarkEngine"},{"line_number":66,"context_line":"    - run task iterations in Runner(s) thru RunnerAgent(s)"},{"line_number":67,"context_line":"    - pass context, args and SLA configuration to RunnerAgent"},{"line_number":68,"context_line":"    - receive aggregated SLA data"},{"line_number":69,"context_line":"    - send \u0027stop\u0027 meaasge to RunnerAgent(s) on SLA violation"},{"line_number":70,"context_line":"      or user interrupt (Ctrl-C)"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_447d3e1b","line":67,"in_reply_to":"fa80f949_b2a49508","updated":"2015-11-09 13:53:08.000000000","message":"this section was rewritten as Boris suggested","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"79a10465720d2f6deb86941dc4b4c481eea858c0","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    - run task iterations in Runner(s) thru RunnerAgent(s)"},{"line_number":67,"context_line":"    - pass context, args and SLA configuration to RunnerAgent"},{"line_number":68,"context_line":"    - receive aggregated SLA data"},{"line_number":69,"context_line":"    - send \u0027stop\u0027 meaasge to RunnerAgent(s) on SLA violation"},{"line_number":70,"context_line":"      or user interrupt (Ctrl-C)"},{"line_number":71,"context_line":"    - receive sorted chunks of iteration results and stores it to DB"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_929391a3","line":69,"updated":"2015-11-03 14:35:35.000000000","message":"*message","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"79a10465720d2f6deb86941dc4b4c481eea858c0","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    - receive aggregated SLA data"},{"line_number":69,"context_line":"    - send \u0027stop\u0027 meaasge to RunnerAgent(s) on SLA violation"},{"line_number":70,"context_line":"      or user interrupt (Ctrl-C)"},{"line_number":71,"context_line":"    - receive sorted chunks of iteration results and stores it to DB"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"1. RunnerAgent"},{"line_number":74,"context_line":"    - is executed on master node in case of single-node Runners or on agent"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_126321b3","line":71,"updated":"2015-11-03 14:35:35.000000000","message":"sorted by what value? - Is it iteration number or for example timestamp(start or end)?","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"79a10465720d2f6deb86941dc4b4c481eea858c0","unresolved":false,"context_lines":[{"line_number":70,"context_line":"      or user interrupt (Ctrl-C)"},{"line_number":71,"context_line":"    - receive sorted chunks of iteration results and stores it to DB"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"1. RunnerAgent"},{"line_number":74,"context_line":"    - is executed on master node in case of single-node Runners or on agent"},{"line_number":75,"context_line":"      nodes in case of distributed Runner"},{"line_number":76,"context_line":"    - runs Runner for received task iterations with given context and args"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_326c259c","line":73,"updated":"2015-11-03 14:35:35.000000000","message":"2.","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a248f95bd80c5df0aa145a0e0adb907bd4b8b083","unresolved":false,"context_lines":[{"line_number":70,"context_line":"      or user interrupt (Ctrl-C)"},{"line_number":71,"context_line":"    - receive sorted chunks of iteration results and stores it to DB"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"1. RunnerAgent"},{"line_number":74,"context_line":"    - is executed on master node in case of single-node Runners or on agent"},{"line_number":75,"context_line":"      nodes in case of distributed Runner"},{"line_number":76,"context_line":"    - runs Runner for received task iterations with given context and args"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_647ac226","line":73,"in_reply_to":"fa80f949_326c259c","updated":"2015-11-09 13:53:08.000000000","message":"Done","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"2c3bf77ba6c53a7e2c8551eff10ed6e0807a21d7","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    - is executed on master node in case of single-node Runners or on agent"},{"line_number":75,"context_line":"      nodes in case of distributed Runner"},{"line_number":76,"context_line":"    - runs Runner for received task iterations with given context and args"},{"line_number":77,"context_line":"    - collects task results of individual iterations into sorted chunks"},{"line_number":78,"context_line":"    - aggregates SLA data and periodically sends it to upper layer component"},{"line_number":79,"context_line":"      (BenchmarkEngine or DistributedRunner)"},{"line_number":80,"context_line":"    - stops Runner on receive of corresponding message"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_715840fb","line":77,"updated":"2015-11-04 12:58:37.000000000","message":"sorted by what key?","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a248f95bd80c5df0aa145a0e0adb907bd4b8b083","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    - is executed on master node in case of single-node Runners or on agent"},{"line_number":75,"context_line":"      nodes in case of distributed Runner"},{"line_number":76,"context_line":"    - runs Runner for received task iterations with given context and args"},{"line_number":77,"context_line":"    - collects task results of individual iterations into sorted chunks"},{"line_number":78,"context_line":"    - aggregates SLA data and periodically sends it to upper layer component"},{"line_number":79,"context_line":"      (BenchmarkEngine or DistributedRunner)"},{"line_number":80,"context_line":"    - stops Runner on receive of corresponding message"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_04c5f63a","line":77,"in_reply_to":"fa80f949_715840fb","updated":"2015-11-09 13:53:08.000000000","message":"Done","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"2c3bf77ba6c53a7e2c8551eff10ed6e0807a21d7","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    - collects task results of individual iterations into sorted chunks"},{"line_number":78,"context_line":"    - aggregates SLA data and periodically sends it to upper layer component"},{"line_number":79,"context_line":"      (BenchmarkEngine or DistributedRunner)"},{"line_number":80,"context_line":"    - stops Runner on receive of corresponding message"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"1. DistributedRunner"},{"line_number":83,"context_line":"    - provides all functionality of RunnerAgent to BenchmarkEngine"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_51f73cd3","line":80,"updated":"2015-11-04 12:58:37.000000000","message":"Do stop signal included into args from distributed runner to RunnerAgent?","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a248f95bd80c5df0aa145a0e0adb907bd4b8b083","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    - collects task results of individual iterations into sorted chunks"},{"line_number":78,"context_line":"    - aggregates SLA data and periodically sends it to upper layer component"},{"line_number":79,"context_line":"      (BenchmarkEngine or DistributedRunner)"},{"line_number":80,"context_line":"    - stops Runner on receive of corresponding message"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"1. DistributedRunner"},{"line_number":83,"context_line":"    - provides all functionality of RunnerAgent to BenchmarkEngine"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_e430f258","line":80,"in_reply_to":"fa80f949_51f73cd3","updated":"2015-11-09 13:53:08.000000000","message":"I don\u0027t get the question, sorry","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"79a10465720d2f6deb86941dc4b4c481eea858c0","unresolved":false,"context_lines":[{"line_number":79,"context_line":"      (BenchmarkEngine or DistributedRunner)"},{"line_number":80,"context_line":"    - stops Runner on receive of corresponding message"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"1. DistributedRunner"},{"line_number":83,"context_line":"    - provides all functionality of RunnerAgent to BenchmarkEngine"},{"line_number":84,"context_line":"    - communicates with remote RunnerAgents wia message queue (ZeroMQ)"},{"line_number":85,"context_line":"    - provides context, args and SLA to RunnerAgents"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_5269a98a","line":82,"updated":"2015-11-03 14:35:35.000000000","message":"3.","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a248f95bd80c5df0aa145a0e0adb907bd4b8b083","unresolved":false,"context_lines":[{"line_number":79,"context_line":"      (BenchmarkEngine or DistributedRunner)"},{"line_number":80,"context_line":"    - stops Runner on receive of corresponding message"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"1. DistributedRunner"},{"line_number":83,"context_line":"    - provides all functionality of RunnerAgent to BenchmarkEngine"},{"line_number":84,"context_line":"    - communicates with remote RunnerAgents wia message queue (ZeroMQ)"},{"line_number":85,"context_line":"    - provides context, args and SLA to RunnerAgents"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_84356647","line":82,"in_reply_to":"fa80f949_5269a98a","updated":"2015-11-09 13:53:08.000000000","message":"Done","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"2c3bf77ba6c53a7e2c8551eff10ed6e0807a21d7","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    - provides context, args and SLA to RunnerAgents"},{"line_number":86,"context_line":"    - distributes task iterations to RunnerAgents"},{"line_number":87,"context_line":"    - aggregates SLA data from RunnerAgents"},{"line_number":88,"context_line":"    - merges chunks of task result data"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"It is supposed to use separate communication channels for task results"},{"line_number":91,"context_line":"and SLA data."}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_11bc5404","line":88,"updated":"2015-11-04 12:58:37.000000000","message":"It would be great to see task result structure","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a248f95bd80c5df0aa145a0e0adb907bd4b8b083","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    - provides context, args and SLA to RunnerAgents"},{"line_number":86,"context_line":"    - distributes task iterations to RunnerAgents"},{"line_number":87,"context_line":"    - aggregates SLA data from RunnerAgents"},{"line_number":88,"context_line":"    - merges chunks of task result data"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"It is supposed to use separate communication channels for task results"},{"line_number":91,"context_line":"and SLA data."}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_c4ee0e8b","line":88,"in_reply_to":"fa80f949_11bc5404","updated":"2015-11-09 13:53:08.000000000","message":"Why, we have this shema defined @ https://github.com/openstack/rally/blob/master/rally/common/objects/task.py#L26\nWe just don\u0027t change it.","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"2c3bf77ba6c53a7e2c8551eff10ed6e0807a21d7","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    - SLA data is sent periodically (e.g. once per second) for iterations"},{"line_number":93,"context_line":"      that are already finished."},{"line_number":94,"context_line":"    - Task results are collected into chunks and stored locally by"},{"line_number":95,"context_line":"      RunnerAgent and only send on request."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_c3791f95","line":95,"updated":"2015-11-04 12:58:37.000000000","message":"In future we want to have persistence context. How we will process it in proposed architecture? I think that create context in every node separately is not enough.","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a248f95bd80c5df0aa145a0e0adb907bd4b8b083","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    - SLA data is sent periodically (e.g. once per second) for iterations"},{"line_number":93,"context_line":"      that are already finished."},{"line_number":94,"context_line":"    - Task results are collected into chunks and stored locally by"},{"line_number":95,"context_line":"      RunnerAgent and only send on request."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_24a83a1f","line":95,"in_reply_to":"fa80f949_c3791f95","updated":"2015-11-09 13:53:08.000000000","message":"Do we have any description of how persistence context will look?","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"2c3bf77ba6c53a7e2c8551eff10ed6e0807a21d7","unresolved":false,"context_lines":[{"line_number":117,"context_line":"Work Items"},{"line_number":118,"context_line":"----------"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"- Refactor current SLA mechanism to support aggregated SLA data"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"- Implement RunnerAgent"},{"line_number":123,"context_line":"    - produce chunks of ordered test results"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_b188e823","line":120,"updated":"2015-11-04 12:58:37.000000000","message":"If we want to collect logs from runners then log collection should be analysed too.","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2feb6c0054903324102e9ed88e6bb8d9e692d85a","unresolved":false,"context_lines":[{"line_number":117,"context_line":"Work Items"},{"line_number":118,"context_line":"----------"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"- Refactor current SLA mechanism to support aggregated SLA data"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"- Implement RunnerAgent"},{"line_number":123,"context_line":"    - produce chunks of ordered test results"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa80f949_52e87ee2","line":120,"in_reply_to":"fa80f949_b188e823","updated":"2015-11-05 03:20:03.000000000","message":"We do not do any log analyze..","commit_id":"f4f81e84ad64c24d123503d149e24d0d6286074e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b029a8067151e10b055c47bd00e5c8deb9369691","unresolved":false,"context_lines":[{"line_number":57,"context_line":"of runner type, DistributedRunner, and refactor existing components,"},{"line_number":58,"context_line":"TaskEngine, Runner and SLA, so that overall interaction will look as follows."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":".. image:: ../../source/images/Rally_Distributed_Runner.png"},{"line_number":61,"context_line":"   :align: center"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba8a016a_31f9ffc7","line":60,"updated":"2015-11-18 14:31:37.000000000","message":"1)Didn\u0027t you forgot to draw the line(abort) from distributed runner to runners or its included inside communication?\n2)In our road map the is persistence context. Do this staff would be solved on distributed runner? (Under the section \"make configuration for individual runners\")\n3)If 2nd is true then I don\u0027t know how to collect data created in context but on different machines and to allow it use.","commit_id":"511938aa0849232ce51d0df37183a3637ec1b433"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"ff1e87d6633dd4c3da4ecb95370eaea047d0a6f8","unresolved":false,"context_lines":[{"line_number":57,"context_line":"of runner type, DistributedRunner, and refactor existing components,"},{"line_number":58,"context_line":"TaskEngine, Runner and SLA, so that overall interaction will look as follows."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":".. image:: ../../source/images/Rally_Distributed_Runner.png"},{"line_number":61,"context_line":"   :align: center"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba8a016a_89aac683","line":60,"in_reply_to":"ba8a016a_31f9ffc7","updated":"2015-11-19 14:34:59.000000000","message":"1) Done\n2) All the context (including persistent one) is to be processesd on the master node. Pls see description of components below. It is the Task Engine that prepares context.","commit_id":"511938aa0849232ce51d0df37183a3637ec1b433"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"baa38c52a769657bce4b5b27f822c919d33a945e","unresolved":false,"context_lines":[{"line_number":57,"context_line":"of runner type, DistributedRunner, and refactor existing components,"},{"line_number":58,"context_line":"TaskEngine, Runner and SLA, so that overall interaction will look as follows."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":".. image:: ../../source/images/Rally_Distributed_Runner.png"},{"line_number":61,"context_line":"   :align: center"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba8a016a_7b10c159","line":60,"in_reply_to":"ba8a016a_31f9ffc7","updated":"2015-11-18 15:44:25.000000000","message":"This image has huge size 2550px×2962px. I propose to reduce size to make it possible to see image without scaling","commit_id":"511938aa0849232ce51d0df37183a3637ec1b433"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"ff1e87d6633dd4c3da4ecb95370eaea047d0a6f8","unresolved":false,"context_lines":[{"line_number":57,"context_line":"of runner type, DistributedRunner, and refactor existing components,"},{"line_number":58,"context_line":"TaskEngine, Runner and SLA, so that overall interaction will look as follows."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":".. image:: ../../source/images/Rally_Distributed_Runner.png"},{"line_number":61,"context_line":"   :align: center"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba8a016a_69944242","line":60,"in_reply_to":"ba8a016a_7b10c159","updated":"2015-11-19 14:34:59.000000000","message":"Done","commit_id":"511938aa0849232ce51d0df37183a3637ec1b433"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b029a8067151e10b055c47bd00e5c8deb9369691","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    - merges chunks of task result data"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"It is supposed to use separate communication channels for task results"},{"line_number":89,"context_line":"and SLA data."},{"line_number":90,"context_line":"    - SLA data is sent periodically (e.g. once per second) for iterations"},{"line_number":91,"context_line":"      that are already finished."},{"line_number":92,"context_line":"    - Task results are collected into chunks and stored locally by"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba8a016a_71a2274d","line":89,"updated":"2015-11-18 14:31:37.000000000","message":"Don\u0027t we need one more channel for context data generated in terms of persistence context? Here is the best description of persistence context that I found https://docs.google.com/spreadsheets/d/16DXpfbqvlzMFaqaXAcJsBzzpowb_XpymaK2aFY2gA2g/edit#gid\u003d0","commit_id":"511938aa0849232ce51d0df37183a3637ec1b433"}]}
