)]}'
{"specs/pike/tacker-task-scheduling-framework.rst":[{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"884647ee2fc6188b1be2c5b99ad6dd6b8ddf9ca3","unresolved":false,"context_lines":[{"line_number":51,"context_line":"at https://github.com/python-zk/kazoo will be used in this solution."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Below is the design:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Let’s make some brief introduction of it:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba2be162_a47726d3","line":54,"range":{"start_line":54,"start_character":0,"end_line":54,"end_character":20},"updated":"2017-03-01 04:42:51.000000000","message":"Initial thoughts. In principle, this design is very good and inline with that i had in mind.","commit_id":"3798338051030dca02ddb6e552e61473e8927012"},{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"884647ee2fc6188b1be2c5b99ad6dd6b8ddf9ca3","unresolved":false,"context_lines":[{"line_number":115,"context_line":"Alternatives"},{"line_number":116,"context_line":"------------"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"What other ways could we do this thing? Why aren\u0027t we using those? This doesn\u0027t"},{"line_number":119,"context_line":"have to be a full literature review, but it should demonstrate that thought has"},{"line_number":120,"context_line":"been put into why the proposed solution is an appropriate one."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Data model impact"},{"line_number":123,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba2be162_e493def8","line":120,"range":{"start_line":118,"start_character":0,"end_line":120,"end_character":62},"updated":"2017-03-01 04:42:51.000000000","message":"Is any other openstack project using zookeeper?\n\nHave you considered Consul ?  Zookeeper is based on Java, needs to pull in JVM and the dependency pain that comes different JVM versions. FWIW, Consul is written in Go and builds into a binary.","commit_id":"3798338051030dca02ddb6e552e61473e8927012"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"b1c4a7c231ea288a84230359a58211a4939fbb89","unresolved":false,"context_lines":[{"line_number":115,"context_line":"Alternatives"},{"line_number":116,"context_line":"------------"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"What other ways could we do this thing? Why aren\u0027t we using those? This doesn\u0027t"},{"line_number":119,"context_line":"have to be a full literature review, but it should demonstrate that thought has"},{"line_number":120,"context_line":"been put into why the proposed solution is an appropriate one."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Data model impact"},{"line_number":123,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba2be162_87178450","line":120,"range":{"start_line":118,"start_character":0,"end_line":120,"end_character":62},"in_reply_to":"ba2be162_e493def8","updated":"2017-03-01 05:28:32.000000000","message":"dragflow is using it. https://github.com/openstack/dragonflow\n\nConsul is also a way to do. I will have a look.","commit_id":"3798338051030dca02ddb6e552e61473e8927012"},{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"884647ee2fc6188b1be2c5b99ad6dd6b8ddf9ca3","unresolved":false,"context_lines":[{"line_number":154,"context_line":"Notifications impact"},{"line_number":155,"context_line":"--------------------"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"The notification between Tacker server, schedulers, workers bases on"},{"line_number":158,"context_line":"zookeeper."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba2be162_64128e64","line":158,"range":{"start_line":157,"start_character":0,"end_line":158,"end_character":10},"updated":"2017-03-01 04:42:51.000000000","message":"We also need to formalize the communication between tacker-server and worker-tasks. Say, once VIM reachability fails, what is the format of the mesg does the worker task sends to the server.\n\nI understand this aspect might be slightly out of scope of this spec. But will give clarity to how all this gels.","commit_id":"3798338051030dca02ddb6e552e61473e8927012"},{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"884647ee2fc6188b1be2c5b99ad6dd6b8ddf9ca3","unresolved":false,"context_lines":[{"line_number":219,"context_line":"The BP involves following tasks:"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":" * framework with unit tests with installation document"},{"line_number":222,"context_line":" * VIM reachability worker and scheduling with functional tests"},{"line_number":223,"context_line":" * tacker client commands and API doc"},{"line_number":224,"context_line":" * Doc for maintenance"},{"line_number":225,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba2be162_444f4a92","line":222,"range":{"start_line":222,"start_character":0,"end_line":222,"end_character":63},"updated":"2017-03-01 04:42:51.000000000","message":"+1, just scope it for this one small \"task\" in the initial version. We can peel more (like ping-monitor) in quick follow on efforts.","commit_id":"3798338051030dca02ddb6e552e61473e8927012"},{"author":{"_account_id":8580,"name":"Digambar","email":"digambarpatil15@yahoo.co.in","username":"digambar"},"change_message_id":"223e4346e7f07c7c09c0ce05833b2d4d0dd8a39c","unresolved":false,"context_lines":[{"line_number":75,"context_line":"  the node’s data will be created."},{"line_number":76,"context_line":"  At the same time, the worker will register a znode under “/assign”, such as"},{"line_number":77,"context_line":"  “/assign/worker-0002” to allow scheduler distribute tasks for it. And then"},{"line_number":78,"context_line":"  the worker will watch the assignment znode."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"- Scheduler(s)."},{"line_number":81,"context_line":"  There are multiple schedulers, one of which will be a master. The scheduler"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_55c5023a","line":78,"range":{"start_line":78,"start_character":28,"end_line":78,"end_character":38},"updated":"2017-03-08 12:05:10.000000000","message":"can we create task queue in zk?","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"2e688d71ec55ddcb1b5c82681f450ef2ca867aa4","unresolved":false,"context_lines":[{"line_number":75,"context_line":"  the node’s data will be created."},{"line_number":76,"context_line":"  At the same time, the worker will register a znode under “/assign”, such as"},{"line_number":77,"context_line":"  “/assign/worker-0002” to allow scheduler distribute tasks for it. And then"},{"line_number":78,"context_line":"  the worker will watch the assignment znode."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"- Scheduler(s)."},{"line_number":81,"context_line":"  There are multiple schedulers, one of which will be a master. The scheduler"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_f4d13858","line":78,"range":{"start_line":78,"start_character":28,"end_line":78,"end_character":38},"in_reply_to":"9a30ddce_55c5023a","updated":"2017-03-10 12:12:45.000000000","message":"kazoo does not support it, or it is bugy:https://kazoo.readthedocs.io/en/latest/api/recipe/queue.html","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":8580,"name":"Digambar","email":"digambarpatil15@yahoo.co.in","username":"digambar"},"change_message_id":"ca3c93b37d6db0202b31736bd2e3e6b06f26d1df","unresolved":false,"context_lines":[{"line_number":75,"context_line":"  the node’s data will be created."},{"line_number":76,"context_line":"  At the same time, the worker will register a znode under “/assign”, such as"},{"line_number":77,"context_line":"  “/assign/worker-0002” to allow scheduler distribute tasks for it. And then"},{"line_number":78,"context_line":"  the worker will watch the assignment znode."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"- Scheduler(s)."},{"line_number":81,"context_line":"  There are multiple schedulers, one of which will be a master. The scheduler"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a1ff146_5d8e3179","line":78,"range":{"start_line":78,"start_character":28,"end_line":78,"end_character":38},"in_reply_to":"9a30ddce_f4d13858","updated":"2017-03-15 13:15:07.000000000","message":"got it","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":8580,"name":"Digambar","email":"digambarpatil15@yahoo.co.in","username":"digambar"},"change_message_id":"223e4346e7f07c7c09c0ce05833b2d4d0dd8a39c","unresolved":false,"context_lines":[{"line_number":87,"context_line":"  be the new master scheduler."},{"line_number":88,"context_line":"  Master scheduler will watch /tasks znode. If a new ‘task’ is created by"},{"line_number":89,"context_line":"  tacker server, it will start to do scheduling job.  A simple scheduling"},{"line_number":90,"context_line":"  can be like this:"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  - Get the task information"},{"line_number":93,"context_line":"  - Get the workers information from “/workers”"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_b52e3ef8","line":90,"range":{"start_line":90,"start_character":14,"end_line":90,"end_character":18},"updated":"2017-03-08 12:05:10.000000000","message":"if we create new task, then wont it be added in task queue if there is already one running.\nCan we set priority for tasks ?","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":8580,"name":"Digambar","email":"digambarpatil15@yahoo.co.in","username":"digambar"},"change_message_id":"ca3c93b37d6db0202b31736bd2e3e6b06f26d1df","unresolved":false,"context_lines":[{"line_number":87,"context_line":"  be the new master scheduler."},{"line_number":88,"context_line":"  Master scheduler will watch /tasks znode. If a new ‘task’ is created by"},{"line_number":89,"context_line":"  tacker server, it will start to do scheduling job.  A simple scheduling"},{"line_number":90,"context_line":"  can be like this:"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  - Get the task information"},{"line_number":93,"context_line":"  - Get the workers information from “/workers”"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a1ff146_5a2d57a6","line":90,"range":{"start_line":90,"start_character":14,"end_line":90,"end_character":18},"in_reply_to":"9a30ddce_5444c419","updated":"2017-03-15 13:15:07.000000000","message":"Then its fine","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"2e688d71ec55ddcb1b5c82681f450ef2ca867aa4","unresolved":false,"context_lines":[{"line_number":87,"context_line":"  be the new master scheduler."},{"line_number":88,"context_line":"  Master scheduler will watch /tasks znode. If a new ‘task’ is created by"},{"line_number":89,"context_line":"  tacker server, it will start to do scheduling job.  A simple scheduling"},{"line_number":90,"context_line":"  can be like this:"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  - Get the task information"},{"line_number":93,"context_line":"  - Get the workers information from “/workers”"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_5444c419","line":90,"range":{"start_line":90,"start_character":14,"end_line":90,"end_character":18},"in_reply_to":"9a30ddce_b52e3ef8","updated":"2017-03-10 12:12:45.000000000","message":"all is in task data. task data is a znode\u0027s data, byte array, so we can interpret it in our own way.","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":8580,"name":"Digambar","email":"digambarpatil15@yahoo.co.in","username":"digambar"},"change_message_id":"223e4346e7f07c7c09c0ce05833b2d4d0dd8a39c","unresolved":false,"context_lines":[{"line_number":90,"context_line":"  can be like this:"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  - Get the task information"},{"line_number":93,"context_line":"  - Get the workers information from “/workers”"},{"line_number":94,"context_line":"  - According to the current assignments, the task and the workers’ capability,"},{"line_number":95,"context_line":"    do the scheduling."},{"line_number":96,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_1540eaa4","line":93,"range":{"start_line":93,"start_character":20,"end_line":93,"end_character":31},"updated":"2017-03-08 12:05:10.000000000","message":"What kind of worker information will get","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"2e688d71ec55ddcb1b5c82681f450ef2ca867aa4","unresolved":false,"context_lines":[{"line_number":90,"context_line":"  can be like this:"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  - Get the task information"},{"line_number":93,"context_line":"  - Get the workers information from “/workers”"},{"line_number":94,"context_line":"  - According to the current assignments, the task and the workers’ capability,"},{"line_number":95,"context_line":"    do the scheduling."},{"line_number":96,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_b46a607f","line":93,"range":{"start_line":93,"start_character":20,"end_line":93,"end_character":31},"in_reply_to":"9a30ddce_1540eaa4","updated":"2017-03-10 12:12:45.000000000","message":"It can be a worker\u0027s capability, for example, if the worker support some kind of task, what is the other capability: CPU, memory, etc.","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":8580,"name":"Digambar","email":"digambarpatil15@yahoo.co.in","username":"digambar"},"change_message_id":"ca3c93b37d6db0202b31736bd2e3e6b06f26d1df","unresolved":false,"context_lines":[{"line_number":90,"context_line":"  can be like this:"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  - Get the task information"},{"line_number":93,"context_line":"  - Get the workers information from “/workers”"},{"line_number":94,"context_line":"  - According to the current assignments, the task and the workers’ capability,"},{"line_number":95,"context_line":"    do the scheduling."},{"line_number":96,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a1ff146_7dff6d01","line":93,"range":{"start_line":93,"start_character":20,"end_line":93,"end_character":31},"in_reply_to":"9a30ddce_b46a607f","updated":"2017-03-15 13:15:07.000000000","message":"Okay","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":8580,"name":"Digambar","email":"digambarpatil15@yahoo.co.in","username":"digambar"},"change_message_id":"223e4346e7f07c7c09c0ce05833b2d4d0dd8a39c","unresolved":false,"context_lines":[{"line_number":97,"context_line":"  The result is to create a znode under the worker’s assignment znode."},{"line_number":98,"context_line":"  For example, the znode “/assign/worker-0002/task-policyxxx” with VNF as the"},{"line_number":99,"context_line":"  znode data means “worker-0002” is given “task-policyxxx”. Since the worker"},{"line_number":100,"context_line":"  is watching the “/assign/worker-0002”, it will be get notified."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"To deal with broken workers"},{"line_number":103,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_95793aff","line":100,"range":{"start_line":100,"start_character":20,"end_line":100,"end_character":26},"updated":"2017-03-08 12:05:10.000000000","message":"Can I assign multiple task queues to multiple workers ?","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"ee6598caca9ce4e1eba1a66838f38d024877ee87","unresolved":false,"context_lines":[{"line_number":97,"context_line":"  The result is to create a znode under the worker’s assignment znode."},{"line_number":98,"context_line":"  For example, the znode “/assign/worker-0002/task-policyxxx” with VNF as the"},{"line_number":99,"context_line":"  znode data means “worker-0002” is given “task-policyxxx”. Since the worker"},{"line_number":100,"context_line":"  is watching the “/assign/worker-0002”, it will be get notified."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"To deal with broken workers"},{"line_number":103,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a1ff146_5871c2df","line":100,"range":{"start_line":100,"start_character":20,"end_line":100,"end_character":26},"in_reply_to":"3a1ff146_5d32b1f2","updated":"2017-03-16 02:52:13.000000000","message":"ok, you can think this way:\n\nthere is a task incoming queue, which scheduler will read and dispatch from this queue to workers\u0027 queue.\n\nthere is a queue for each worker, hosting tasks dispatched from scheduler.\n\nno task can be on more than one workers\u0027 queues","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":8580,"name":"Digambar","email":"digambarpatil15@yahoo.co.in","username":"digambar"},"change_message_id":"ca3c93b37d6db0202b31736bd2e3e6b06f26d1df","unresolved":false,"context_lines":[{"line_number":97,"context_line":"  The result is to create a znode under the worker’s assignment znode."},{"line_number":98,"context_line":"  For example, the znode “/assign/worker-0002/task-policyxxx” with VNF as the"},{"line_number":99,"context_line":"  znode data means “worker-0002” is given “task-policyxxx”. Since the worker"},{"line_number":100,"context_line":"  is watching the “/assign/worker-0002”, it will be get notified."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"To deal with broken workers"},{"line_number":103,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a1ff146_5d32b1f2","line":100,"range":{"start_line":100,"start_character":20,"end_line":100,"end_character":26},"in_reply_to":"9a30ddce_34dbd050","updated":"2017-03-15 13:15:07.000000000","message":"That I can understand then in this case, all the workers are pointing to one queues, finish all the tasks from queue then take another queue for processing ??","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"2e688d71ec55ddcb1b5c82681f450ef2ca867aa4","unresolved":false,"context_lines":[{"line_number":97,"context_line":"  The result is to create a znode under the worker’s assignment znode."},{"line_number":98,"context_line":"  For example, the znode “/assign/worker-0002/task-policyxxx” with VNF as the"},{"line_number":99,"context_line":"  znode data means “worker-0002” is given “task-policyxxx”. Since the worker"},{"line_number":100,"context_line":"  is watching the “/assign/worker-0002”, it will be get notified."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"To deal with broken workers"},{"line_number":103,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_34dbd050","line":100,"range":{"start_line":100,"start_character":20,"end_line":100,"end_character":26},"in_reply_to":"9a30ddce_95793aff","updated":"2017-03-10 12:12:45.000000000","message":"no.  a task is run on one worker at a time.","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":8580,"name":"Digambar","email":"digambarpatil15@yahoo.co.in","username":"digambar"},"change_message_id":"223e4346e7f07c7c09c0ce05833b2d4d0dd8a39c","unresolved":false,"context_lines":[{"line_number":105,"context_line":"when worker is dead, the znode “/workers/worker-\u003cdeadoneid\u003e” will disappear."},{"line_number":106,"context_line":"And the master scheduler will get notification since it is watching the"},{"line_number":107,"context_line":"“/workers”.  the tasks which are under “/assign/worker-\u003cdeadoneid\u003e/” will"},{"line_number":108,"context_line":"be rescheduled."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"To deal with broken master scheduler"},{"line_number":111,"context_line":"------------------------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_554fc2bc","line":108,"range":{"start_line":108,"start_character":3,"end_line":108,"end_character":14},"updated":"2017-03-08 12:05:10.000000000","message":"is worker a independant process running on seperate node ?\nCan we run multiple worker on one node ?","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"2e688d71ec55ddcb1b5c82681f450ef2ca867aa4","unresolved":false,"context_lines":[{"line_number":105,"context_line":"when worker is dead, the znode “/workers/worker-\u003cdeadoneid\u003e” will disappear."},{"line_number":106,"context_line":"And the master scheduler will get notification since it is watching the"},{"line_number":107,"context_line":"“/workers”.  the tasks which are under “/assign/worker-\u003cdeadoneid\u003e/” will"},{"line_number":108,"context_line":"be rescheduled."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"To deal with broken master scheduler"},{"line_number":111,"context_line":"------------------------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_94e63c13","line":108,"range":{"start_line":108,"start_character":3,"end_line":108,"end_character":14},"in_reply_to":"9a30ddce_554fc2bc","updated":"2017-03-10 12:12:45.000000000","message":"yes. we can.","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":8580,"name":"Digambar","email":"digambarpatil15@yahoo.co.in","username":"digambar"},"change_message_id":"ca3c93b37d6db0202b31736bd2e3e6b06f26d1df","unresolved":false,"context_lines":[{"line_number":105,"context_line":"when worker is dead, the znode “/workers/worker-\u003cdeadoneid\u003e” will disappear."},{"line_number":106,"context_line":"And the master scheduler will get notification since it is watching the"},{"line_number":107,"context_line":"“/workers”.  the tasks which are under “/assign/worker-\u003cdeadoneid\u003e/” will"},{"line_number":108,"context_line":"be rescheduled."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"To deal with broken master scheduler"},{"line_number":111,"context_line":"------------------------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a1ff146_dd7301b0","line":108,"range":{"start_line":108,"start_character":3,"end_line":108,"end_character":14},"in_reply_to":"9a30ddce_94e63c13","updated":"2017-03-15 13:15:07.000000000","message":"OK","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":8580,"name":"Digambar","email":"digambarpatil15@yahoo.co.in","username":"digambar"},"change_message_id":"223e4346e7f07c7c09c0ce05833b2d4d0dd8a39c","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"when the master scheduler is broken, its “/master” will disappear,"},{"line_number":114,"context_line":"the other backup schedulers will race to create the “/master” znode and"},{"line_number":115,"context_line":"make itself master, and get to know the current tasks assign status."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Alternatives"},{"line_number":118,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_5578a2f2","line":115,"range":{"start_line":115,"start_character":61,"end_line":115,"end_character":67},"updated":"2017-03-08 12:05:10.000000000","message":"How many minimum nodes setup is required for this scenaios.","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"2e688d71ec55ddcb1b5c82681f450ef2ca867aa4","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"when the master scheduler is broken, its “/master” will disappear,"},{"line_number":114,"context_line":"the other backup schedulers will race to create the “/master” znode and"},{"line_number":115,"context_line":"make itself master, and get to know the current tasks assign status."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Alternatives"},{"line_number":118,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_74d0e81f","line":115,"range":{"start_line":115,"start_character":61,"end_line":115,"end_character":67},"in_reply_to":"9a30ddce_5578a2f2","updated":"2017-03-10 12:12:45.000000000","message":"one is the minimum scheduler node.","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":8580,"name":"Digambar","email":"digambarpatil15@yahoo.co.in","username":"digambar"},"change_message_id":"ca3c93b37d6db0202b31736bd2e3e6b06f26d1df","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"when the master scheduler is broken, its “/master” will disappear,"},{"line_number":114,"context_line":"the other backup schedulers will race to create the “/master” znode and"},{"line_number":115,"context_line":"make itself master, and get to know the current tasks assign status."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Alternatives"},{"line_number":118,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a1ff146_1d6679ed","line":115,"range":{"start_line":115,"start_character":61,"end_line":115,"end_character":67},"in_reply_to":"9a30ddce_74d0e81f","updated":"2017-03-15 13:15:07.000000000","message":"ok","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":8580,"name":"Digambar","email":"digambarpatil15@yahoo.co.in","username":"digambar"},"change_message_id":"223e4346e7f07c7c09c0ce05833b2d4d0dd8a39c","unresolved":false,"context_lines":[{"line_number":123,"context_line":"At PIKE PTG meeting, a way based on message queue is also came up with."},{"line_number":124,"context_line":"We are concerning about its scalability when there are thousands of workers"},{"line_number":125,"context_line":"which have to reports its state to servers."},{"line_number":126,"context_line":"And the complexitiy is also a big problem."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Consul Way"},{"line_number":129,"context_line":"............"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_9595bae5","line":126,"range":{"start_line":126,"start_character":8,"end_line":126,"end_character":19},"updated":"2017-03-08 12:05:10.000000000","message":"I dont think so, because will only subscribe to initiate job/task call. We keep on hunting on that to get the response. I think we should call this process directly from API, scheduler call should be initiated using broker.","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":8580,"name":"Digambar","email":"digambarpatil15@yahoo.co.in","username":"digambar"},"change_message_id":"223e4346e7f07c7c09c0ce05833b2d4d0dd8a39c","unresolved":false,"context_lines":[{"line_number":139,"context_line":"........................"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"- JVM dependencies."},{"line_number":142,"context_line":"  Zookeeper is a java problem, which needs the JVM enviroment."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"- long live connections between client and zookeeper."},{"line_number":145,"context_line":"  Zookeeper\u0027s ephemeral znodes depends on long live connections between client and"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_35ac0e35","line":142,"range":{"start_line":142,"start_character":51,"end_line":142,"end_character":61},"updated":"2017-03-08 12:05:10.000000000","message":"In this case, we need independent ZK setup along with tacker. we should devstack approach for this to get running on the services on one node. We need seperete node for ZK anyway.","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"a90a54171afc3ff9a629af9618437f9b6252f34c","unresolved":false,"context_lines":[{"line_number":139,"context_line":"........................"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"- JVM dependencies."},{"line_number":142,"context_line":"  Zookeeper is a java problem, which needs the JVM enviroment."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"- long live connections between client and zookeeper."},{"line_number":145,"context_line":"  Zookeeper\u0027s ephemeral znodes depends on long live connections between client and"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a1ced50_64cb7673","line":142,"range":{"start_line":142,"start_character":51,"end_line":142,"end_character":61},"in_reply_to":"1a1ced50_d85defed","updated":"2017-03-17 04:54:30.000000000","message":"Sridhar,\n\nwe will setup jvm and ZK in gate test via plugin.sh under our tacker devstack.","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"2e688d71ec55ddcb1b5c82681f450ef2ca867aa4","unresolved":false,"context_lines":[{"line_number":139,"context_line":"........................"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"- JVM dependencies."},{"line_number":142,"context_line":"  Zookeeper is a java problem, which needs the JVM enviroment."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"- long live connections between client and zookeeper."},{"line_number":145,"context_line":"  Zookeeper\u0027s ephemeral znodes depends on long live connections between client and"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_d49a746d","line":142,"range":{"start_line":142,"start_character":51,"end_line":142,"end_character":61},"in_reply_to":"9a30ddce_35ac0e35","updated":"2017-03-10 12:12:45.000000000","message":"yes","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"9e8130791beb6f4d2f430ead66458763a12a622a","unresolved":false,"context_lines":[{"line_number":139,"context_line":"........................"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"- JVM dependencies."},{"line_number":142,"context_line":"  Zookeeper is a java problem, which needs the JVM enviroment."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"- long live connections between client and zookeeper."},{"line_number":145,"context_line":"  Zookeeper\u0027s ephemeral znodes depends on long live connections between client and"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a1ced50_d85defed","line":142,"range":{"start_line":142,"start_character":51,"end_line":142,"end_character":61},"in_reply_to":"9a30ddce_d49a746d","updated":"2017-03-17 01:13:12.000000000","message":"This is my biggest concern. How do you plan to gate test this feature ? Meaning, how do you plan to install JVM ? Using prepate_test_hook.sh ?","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":8580,"name":"Digambar","email":"digambarpatil15@yahoo.co.in","username":"digambar"},"change_message_id":"223e4346e7f07c7c09c0ce05833b2d4d0dd8a39c","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"- long live connections between client and zookeeper."},{"line_number":145,"context_line":"  Zookeeper\u0027s ephemeral znodes depends on long live connections between client and"},{"line_number":146,"context_line":"  zookeeper."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_355a4e51","line":146,"range":{"start_line":146,"start_character":2,"end_line":146,"end_character":11},"updated":"2017-03-08 12:05:10.000000000","message":"ZK has bigger adoption in Big Data industry, we should think for this but still is it available in openstack global settings.","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"2e688d71ec55ddcb1b5c82681f450ef2ca867aa4","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"- long live connections between client and zookeeper."},{"line_number":145,"context_line":"  Zookeeper\u0027s ephemeral znodes depends on long live connections between client and"},{"line_number":146,"context_line":"  zookeeper."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_94f71c8a","line":146,"range":{"start_line":146,"start_character":2,"end_line":146,"end_character":11},"in_reply_to":"9a30ddce_355a4e51","updated":"2017-03-10 12:12:45.000000000","message":"some stuff is using it:  https://github.com/openstack/tooz/, or dragonflows  https://github.com/openstack/dragonflow/blob/master/requirements.txt#L9","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":8580,"name":"Digambar","email":"digambarpatil15@yahoo.co.in","username":"digambar"},"change_message_id":"ca3c93b37d6db0202b31736bd2e3e6b06f26d1df","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"- long live connections between client and zookeeper."},{"line_number":145,"context_line":"  Zookeeper\u0027s ephemeral znodes depends on long live connections between client and"},{"line_number":146,"context_line":"  zookeeper."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a1ff146_3dba5524","line":146,"range":{"start_line":146,"start_character":2,"end_line":146,"end_character":11},"in_reply_to":"9a30ddce_94f71c8a","updated":"2017-03-15 13:15:07.000000000","message":"got it","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":20560,"name":"Tung Doan","email":"doantungbk.203@gmail.com","username":"doantungbk"},"change_message_id":"fe0e110598147d7134f90213e93efae2a0b1ffaa","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"The tacker commands and API will be added to help admin users:"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"- tacker worker-list."},{"line_number":160,"context_line":"  This command will list all the workers under /workers."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"- tacker worker-show."},{"line_number":163,"context_line":"  This command will list detailed worker information and its assignment."}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_f029a438","line":160,"range":{"start_line":159,"start_character":2,"end_line":160,"end_character":56},"updated":"2017-03-08 12:26:55.000000000","message":"Please add detailed API here. what RESful API looks like? JSON response? it must support \"status\" info. for worker.","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":20560,"name":"Tung Doan","email":"doantungbk.203@gmail.com","username":"doantungbk"},"change_message_id":"fe0e110598147d7134f90213e93efae2a0b1ffaa","unresolved":false,"context_lines":[{"line_number":159,"context_line":"- tacker worker-list."},{"line_number":160,"context_line":"  This command will list all the workers under /workers."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"- tacker worker-show."},{"line_number":163,"context_line":"  This command will list detailed worker information and its assignment."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"- tacker task-list."},{"line_number":166,"context_line":"  This command will list all the tasks under /tasks"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_70edb4ee","line":163,"range":{"start_line":162,"start_character":2,"end_line":163,"end_character":72},"updated":"2017-03-08 12:26:55.000000000","message":"ditto. It should be \"tacker worker-show \u003cworker-id/worker-name\u003e\"?","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":20560,"name":"Tung Doan","email":"doantungbk.203@gmail.com","username":"doantungbk"},"change_message_id":"fe0e110598147d7134f90213e93efae2a0b1ffaa","unresolved":false,"context_lines":[{"line_number":162,"context_line":"- tacker worker-show."},{"line_number":163,"context_line":"  This command will list detailed worker information and its assignment."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"- tacker task-list."},{"line_number":166,"context_line":"  This command will list all the tasks under /tasks"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"- tacker task-show."},{"line_number":169,"context_line":"  This command will show the detailed task information for a given task"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_70c4d45e","line":166,"range":{"start_line":165,"start_character":2,"end_line":166,"end_character":50},"updated":"2017-03-08 12:26:55.000000000","message":"ditto.","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":20560,"name":"Tung Doan","email":"doantungbk.203@gmail.com","username":"doantungbk"},"change_message_id":"fe0e110598147d7134f90213e93efae2a0b1ffaa","unresolved":false,"context_lines":[{"line_number":165,"context_line":"- tacker task-list."},{"line_number":166,"context_line":"  This command will list all the tasks under /tasks"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"- tacker task-show."},{"line_number":169,"context_line":"  This command will show the detailed task information for a given task"},{"line_number":170,"context_line":"  and its worker."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"- tacker scheduler-list."},{"line_number":173,"context_line":"  This command will list all the schedulers with master flag."}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_1096384c","line":170,"range":{"start_line":168,"start_character":2,"end_line":170,"end_character":17},"updated":"2017-03-08 12:26:55.000000000","message":"ditto. it should be \"tacker task-show \u003ctask-id/task-name\u003e\"?","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":20560,"name":"Tung Doan","email":"doantungbk.203@gmail.com","username":"doantungbk"},"change_message_id":"fe0e110598147d7134f90213e93efae2a0b1ffaa","unresolved":false,"context_lines":[{"line_number":169,"context_line":"  This command will show the detailed task information for a given task"},{"line_number":170,"context_line":"  and its worker."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"- tacker scheduler-list."},{"line_number":173,"context_line":"  This command will list all the schedulers with master flag."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_90886824","line":173,"range":{"start_line":172,"start_character":2,"end_line":173,"end_character":61},"updated":"2017-03-08 12:26:55.000000000","message":"ditto.","commit_id":"9fd8d2909092750ff81d8d9f02ec5212edbd1fef"},{"author":{"_account_id":20560,"name":"Tung Doan","email":"doantungbk.203@gmail.com","username":"doantungbk"},"change_message_id":"576664bbef1b8ca2f63b4155158eee89c6c56c97","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":".. code-block:: python"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    \u0027tasks\u0027: {"},{"line_number":162,"context_line":"        \u0027id\u0027: {"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a1ced50_af03870e","line":159,"range":{"start_line":159,"start_character":0,"end_line":159,"end_character":22},"updated":"2017-03-17 06:40:06.000000000","message":"pls check the systax. It may need an indent","commit_id":"3e5eb909fbed4c35d162235b1f532060064e1852"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"baf051d94613e1424a38cec48a501fc5516176f9","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Each VIM, we need a monitor to check its reachability and capability. And"},{"line_number":21,"context_line":"For each monitoring policy, we need a monitor (http-ping, or ping) to server"},{"line_number":22,"context_line":"the policy too."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_b49ff34e","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":4},"updated":"2017-03-21 07:01:44.000000000","message":"For each ?","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"5b9b110245242660c24a0355e0dbc76f06157a16","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Each VIM, we need a monitor to check its reachability and capability. And"},{"line_number":21,"context_line":"For each monitoring policy, we need a monitor (http-ping, or ping) to server"},{"line_number":22,"context_line":"the policy too."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_aa383ea1","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":4},"in_reply_to":"1a1ced50_b49ff34e","updated":"2017-03-22 01:58:01.000000000","message":"Done","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"baf051d94613e1424a38cec48a501fc5516176f9","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Each VIM, we need a monitor to check its reachability and capability. And"},{"line_number":21,"context_line":"For each monitoring policy, we need a monitor (http-ping, or ping) to server"},{"line_number":22,"context_line":"the policy too."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"All these monitors are long living as the target objects (vim monitor for"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_745e5b77","line":21,"range":{"start_line":21,"start_character":70,"end_line":21,"end_character":76},"updated":"2017-03-21 07:01:44.000000000","message":"serve ?","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"5b9b110245242660c24a0355e0dbc76f06157a16","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Each VIM, we need a monitor to check its reachability and capability. And"},{"line_number":21,"context_line":"For each monitoring policy, we need a monitor (http-ping, or ping) to server"},{"line_number":22,"context_line":"the policy too."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"All these monitors are long living as the target objects (vim monitor for"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_ca3d7a90","line":21,"range":{"start_line":21,"start_character":70,"end_line":21,"end_character":76},"in_reply_to":"1a1ced50_745e5b77","updated":"2017-03-22 01:58:01.000000000","message":"Done","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":19644,"name":"Yan Xing\u0027an","email":"yanxingan@cmss.chinamobile.com","username":"yanxingan"},"change_message_id":"41530e72ca090e46ab282c6d7dcd2a66f2c83d7d","unresolved":false,"context_lines":[{"line_number":22,"context_line":"the policy too."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"All these monitors are long living as the target objects (vim monitor for"},{"line_number":25,"context_line":"VIM object, monitoring policy monitors are living as long as the VNF’s VDUs)."},{"line_number":26,"context_line":"Currently, these monitors are coupled with tacker server. If we have many such"},{"line_number":27,"context_line":"monitors,  it will put the tacker server into a very bad situation."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"ffe62b97_cc4b0c29","line":25,"range":{"start_line":25,"start_character":39,"end_line":25,"end_character":64},"updated":"2017-03-27 13:57:17.000000000","message":"for","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":19644,"name":"Yan Xing\u0027an","email":"yanxingan@cmss.chinamobile.com","username":"yanxingan"},"change_message_id":"41530e72ca090e46ab282c6d7dcd2a66f2c83d7d","unresolved":false,"context_lines":[{"line_number":24,"context_line":"All these monitors are long living as the target objects (vim monitor for"},{"line_number":25,"context_line":"VIM object, monitoring policy monitors are living as long as the VNF’s VDUs)."},{"line_number":26,"context_line":"Currently, these monitors are coupled with tacker server. If we have many such"},{"line_number":27,"context_line":"monitors,  it will put the tacker server into a very bad situation."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"this solution can also help the tasks such as “config”, “vnf start”, but this"},{"line_number":30,"context_line":"stuff can be easily fixed by mistral workflow engine."}],"source_content_type":"text/x-rst","patch_set":10,"id":"ffe62b97_4c613ca9","line":27,"range":{"start_line":27,"start_character":10,"end_line":27,"end_character":11},"updated":"2017-03-27 13:57:17.000000000","message":"a blank","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":19644,"name":"Yan Xing\u0027an","email":"yanxingan@cmss.chinamobile.com","username":"yanxingan"},"change_message_id":"41530e72ca090e46ab282c6d7dcd2a66f2c83d7d","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Currently, these monitors are coupled with tacker server. If we have many such"},{"line_number":27,"context_line":"monitors,  it will put the tacker server into a very bad situation."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"this solution can also help the tasks such as “config”, “vnf start”, but this"},{"line_number":30,"context_line":"stuff can be easily fixed by mistral workflow engine."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"ffe62b97_ac6fa890","line":29,"range":{"start_line":29,"start_character":0,"end_line":29,"end_character":4},"updated":"2017-03-27 13:57:17.000000000","message":"This","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":19644,"name":"Yan Xing\u0027an","email":"yanxingan@cmss.chinamobile.com","username":"yanxingan"},"change_message_id":"41530e72ca090e46ab282c6d7dcd2a66f2c83d7d","unresolved":false,"context_lines":[{"line_number":27,"context_line":"monitors,  it will put the tacker server into a very bad situation."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"this solution can also help the tasks such as “config”, “vnf start”, but this"},{"line_number":30,"context_line":"stuff can be easily fixed by mistral workflow engine."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ffe62b97_2c3278a8","line":30,"range":{"start_line":30,"start_character":12,"end_line":30,"end_character":13},"updated":"2017-03-27 13:57:17.000000000","message":"more?","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"25914c01c45ee6ba5413a894568d876404c22d73","unresolved":false,"context_lines":[{"line_number":71,"context_line":"  we will have VIM workers and monitoring policy workers."},{"line_number":72,"context_line":"  Each worker will register itself as a znode under “/workers” with its own"},{"line_number":73,"context_line":"  capability as the znode data. For example, when A VIM worker starts,"},{"line_number":74,"context_line":"  a “/workers/worker-0002” ephemeral znode with its name and capability as"},{"line_number":75,"context_line":"  the node’s data will be created."},{"line_number":76,"context_line":"  At the same time, the worker will register a znode under “/assign”, such as"},{"line_number":77,"context_line":"  “/assign/worker-0002” to allow scheduler distribute tasks for it. And then"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_d980fac1","line":74,"range":{"start_line":74,"start_character":52,"end_line":74,"end_character":56},"updated":"2017-03-22 00:10:03.000000000","message":"I\u0027m assuming the name should be unique. If a worker independently comes up and joins the cluster how will this naming scheme work ? \n\nFew options:\n\n(1) use a monotonically increasing number maintained in ZK znode itself. worker-002, 003, 005 (there could be holes for workers which might have died)\n\n(2) use a random uuid like /worker-23ac7f3f\n\nCapabilities:\n\nWhat is its use? Can you give some examples ? What will be the behavior for workers with different capabilities ?","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"5b9b110245242660c24a0355e0dbc76f06157a16","unresolved":false,"context_lines":[{"line_number":71,"context_line":"  we will have VIM workers and monitoring policy workers."},{"line_number":72,"context_line":"  Each worker will register itself as a znode under “/workers” with its own"},{"line_number":73,"context_line":"  capability as the znode data. For example, when A VIM worker starts,"},{"line_number":74,"context_line":"  a “/workers/worker-0002” ephemeral znode with its name and capability as"},{"line_number":75,"context_line":"  the node’s data will be created."},{"line_number":76,"context_line":"  At the same time, the worker will register a znode under “/assign”, such as"},{"line_number":77,"context_line":"  “/assign/worker-0002” to allow scheduler distribute tasks for it. And then"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_2afb6ec2","line":74,"range":{"start_line":74,"start_character":52,"end_line":74,"end_character":56},"in_reply_to":"1a1ced50_d980fac1","updated":"2017-03-22 01:58:01.000000000","message":"1. name will be hostname plus a uuid stuff, the uuid is generated when worker is stated. so each time it is started, the name of the worker will be different.\n\n2.capabilities: for example {\"job_types\": [\"vim_ping\", \"vnf_ping_monitor\", \"cpu_size\": \"8\", \"ram_size\": \"8G\"]}, this is used for job scheduler.","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"baf051d94613e1424a38cec48a501fc5516176f9","unresolved":false,"context_lines":[{"line_number":78,"context_line":"  the worker will watch the assignment znode."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"- Scheduler(s)."},{"line_number":81,"context_line":"  There are multiple schedulers, one of which will be a master. The scheduler"},{"line_number":82,"context_line":"  which raced to created the ephemeral /master znode is the scheduler master."},{"line_number":83,"context_line":"  All other schedulers will be watching the “/master” znode. If the current"},{"line_number":84,"context_line":"  master scheduler is dead, the “/master” znode which it created will be"},{"line_number":85,"context_line":"  deleted since the znode is “ephemeral”.  Then other schedulers will get"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_efa6f651","line":82,"range":{"start_line":81,"start_character":64,"end_line":82,"end_character":77},"updated":"2017-03-21 07:01:44.000000000","message":"Is it required at Tacker side to know that who is the current master?","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"5b9b110245242660c24a0355e0dbc76f06157a16","unresolved":false,"context_lines":[{"line_number":78,"context_line":"  the worker will watch the assignment znode."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"- Scheduler(s)."},{"line_number":81,"context_line":"  There are multiple schedulers, one of which will be a master. The scheduler"},{"line_number":82,"context_line":"  which raced to created the ephemeral /master znode is the scheduler master."},{"line_number":83,"context_line":"  All other schedulers will be watching the “/master” znode. If the current"},{"line_number":84,"context_line":"  master scheduler is dead, the “/master” znode which it created will be"},{"line_number":85,"context_line":"  deleted since the znode is “ephemeral”.  Then other schedulers will get"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_0a295237","line":82,"range":{"start_line":81,"start_character":64,"end_line":82,"end_character":77},"in_reply_to":"1a1ced50_efa6f651","updated":"2017-03-22 01:58:01.000000000","message":"in fact, no need for tacker to know. But it can know. see API part.","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"25914c01c45ee6ba5413a894568d876404c22d73","unresolved":false,"context_lines":[{"line_number":78,"context_line":"  the worker will watch the assignment znode."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"- Scheduler(s)."},{"line_number":81,"context_line":"  There are multiple schedulers, one of which will be a master. The scheduler"},{"line_number":82,"context_line":"  which raced to created the ephemeral /master znode is the scheduler master."},{"line_number":83,"context_line":"  All other schedulers will be watching the “/master” znode. If the current"},{"line_number":84,"context_line":"  master scheduler is dead, the “/master” znode which it created will be"},{"line_number":85,"context_line":"  deleted since the znode is “ephemeral”.  Then other schedulers will get"},{"line_number":86,"context_line":"  notified and race to create its own /master znode, which succeed will"},{"line_number":87,"context_line":"  be the new master scheduler."},{"line_number":88,"context_line":"  Master scheduler will watch /tasks znode. If a new ‘task’ is created by"},{"line_number":89,"context_line":"  tacker server, it will start to do scheduling job.  A simple scheduling"},{"line_number":90,"context_line":"  can be like this:"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_3953ce6c","line":87,"range":{"start_line":81,"start_character":2,"end_line":87,"end_character":30},"updated":"2017-03-22 00:10:03.000000000","message":"Does this leader election algorithm need to be coded in Tacker ? This can get way too complicated quickly. There are well known leader election protocols like Raft (one used in etcd). We should leverage those schemes.","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"5b9b110245242660c24a0355e0dbc76f06157a16","unresolved":false,"context_lines":[{"line_number":78,"context_line":"  the worker will watch the assignment znode."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"- Scheduler(s)."},{"line_number":81,"context_line":"  There are multiple schedulers, one of which will be a master. The scheduler"},{"line_number":82,"context_line":"  which raced to created the ephemeral /master znode is the scheduler master."},{"line_number":83,"context_line":"  All other schedulers will be watching the “/master” znode. If the current"},{"line_number":84,"context_line":"  master scheduler is dead, the “/master” znode which it created will be"},{"line_number":85,"context_line":"  deleted since the znode is “ephemeral”.  Then other schedulers will get"},{"line_number":86,"context_line":"  notified and race to create its own /master znode, which succeed will"},{"line_number":87,"context_line":"  be the new master scheduler."},{"line_number":88,"context_line":"  Master scheduler will watch /tasks znode. If a new ‘task’ is created by"},{"line_number":89,"context_line":"  tacker server, it will start to do scheduling job.  A simple scheduling"},{"line_number":90,"context_line":"  can be like this:"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_eafb1679","line":87,"range":{"start_line":81,"start_character":2,"end_line":87,"end_character":30},"in_reply_to":"1a1ced50_3953ce6c","updated":"2017-03-22 01:58:01.000000000","message":"that is the zookeeper and etcd software own election protocol. for applicaton to use them, we just use a lock on a znode.","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"25914c01c45ee6ba5413a894568d876404c22d73","unresolved":false,"context_lines":[{"line_number":93,"context_line":"  - Get the workers information from “/workers”"},{"line_number":94,"context_line":"  - According to the current assignments, the task and the workers’ capability,"},{"line_number":95,"context_line":"    do the scheduling."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"  The result is to create a znode under the worker’s assignment znode."},{"line_number":98,"context_line":"  For example, the znode “/assign/worker-0002/task-policyxxx” with VNF as the"},{"line_number":99,"context_line":"  znode data means “worker-0002” is given “task-policyxxx”. Since the worker"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_54121158","line":96,"updated":"2017-03-22 00:10:03.000000000","message":"How does the worker communicate the outcome (say VIM reachability failure) with the tacker-server ?","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"5b9b110245242660c24a0355e0dbc76f06157a16","unresolved":false,"context_lines":[{"line_number":93,"context_line":"  - Get the workers information from “/workers”"},{"line_number":94,"context_line":"  - According to the current assignments, the task and the workers’ capability,"},{"line_number":95,"context_line":"    do the scheduling."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"  The result is to create a znode under the worker’s assignment znode."},{"line_number":98,"context_line":"  For example, the znode “/assign/worker-0002/task-policyxxx” with VNF as the"},{"line_number":99,"context_line":"  znode data means “worker-0002” is given “task-policyxxx”. Since the worker"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_cad9fa58","line":96,"in_reply_to":"1a1ced50_54121158","updated":"2017-03-22 01:58:01.000000000","message":"via DB. the API should be not synchronous.","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"25914c01c45ee6ba5413a894568d876404c22d73","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    do the scheduling."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"  The result is to create a znode under the worker’s assignment znode."},{"line_number":98,"context_line":"  For example, the znode “/assign/worker-0002/task-policyxxx” with VNF as the"},{"line_number":99,"context_line":"  znode data means “worker-0002” is given “task-policyxxx”. Since the worker"},{"line_number":100,"context_line":"  is watching the “/assign/worker-0002”, it will be get notified."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"To deal with broken workers"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_f9ea1673","line":99,"range":{"start_line":98,"start_character":67,"end_line":99,"end_character":12},"updated":"2017-03-22 00:10:03.000000000","message":"Can you provide a sample znode data (in json?) that illustrates VNF data ?","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"5b9b110245242660c24a0355e0dbc76f06157a16","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    do the scheduling."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"  The result is to create a znode under the worker’s assignment znode."},{"line_number":98,"context_line":"  For example, the znode “/assign/worker-0002/task-policyxxx” with VNF as the"},{"line_number":99,"context_line":"  znode data means “worker-0002” is given “task-policyxxx”. Since the worker"},{"line_number":100,"context_line":"  is watching the “/assign/worker-0002”, it will be get notified."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"To deal with broken workers"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_6ac64669","line":99,"range":{"start_line":98,"start_character":67,"end_line":99,"end_character":12},"in_reply_to":"1a1ced50_f9ea1673","updated":"2017-03-22 01:58:01.000000000","message":"for framework, the node data is opaque. the only needed is it is a dict, and have a job_type field in it","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"baf051d94613e1424a38cec48a501fc5516176f9","unresolved":false,"context_lines":[{"line_number":98,"context_line":"  For example, the znode “/assign/worker-0002/task-policyxxx” with VNF as the"},{"line_number":99,"context_line":"  znode data means “worker-0002” is given “task-policyxxx”. Since the worker"},{"line_number":100,"context_line":"  is watching the “/assign/worker-0002”, it will be get notified."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"To deal with broken workers"},{"line_number":103,"context_line":"---------------------------"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_8f2662cc","line":101,"updated":"2017-03-21 07:01:44.000000000","message":"Can we have a ASCII diagram here(if feasible)?","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"5b9b110245242660c24a0355e0dbc76f06157a16","unresolved":false,"context_lines":[{"line_number":98,"context_line":"  For example, the znode “/assign/worker-0002/task-policyxxx” with VNF as the"},{"line_number":99,"context_line":"  znode data means “worker-0002” is given “task-policyxxx”. Since the worker"},{"line_number":100,"context_line":"  is watching the “/assign/worker-0002”, it will be get notified."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"To deal with broken workers"},{"line_number":103,"context_line":"---------------------------"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_ea7f9614","line":101,"in_reply_to":"1a1ced50_597faaaa","updated":"2017-03-22 01:58:01.000000000","message":"we just hold long-running tasks on this framework.\n\nthe one shot tasks should use mistral to do it.","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"25914c01c45ee6ba5413a894568d876404c22d73","unresolved":false,"context_lines":[{"line_number":98,"context_line":"  For example, the znode “/assign/worker-0002/task-policyxxx” with VNF as the"},{"line_number":99,"context_line":"  znode data means “worker-0002” is given “task-policyxxx”. Since the worker"},{"line_number":100,"context_line":"  is watching the “/assign/worker-0002”, it will be get notified."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"To deal with broken workers"},{"line_number":103,"context_line":"---------------------------"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_597faaaa","line":101,"in_reply_to":"1a1ced50_8f2662cc","updated":"2017-03-22 00:10:03.000000000","message":"Description for task \"completion\" is missing. What happens when a task is completed by a worker ? When will the znode /assign/worker-n/task--policyxxx will be removed?\n\nMy understanding is there will be two types of worker tasks,\n\n(1) long-running tasks (like vim-health mon) and \n(2) one shot tasks - VNFC configuration using mgmt-driver","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"baf051d94613e1424a38cec48a501fc5516176f9","unresolved":false,"context_lines":[{"line_number":110,"context_line":"To deal with broken master scheduler"},{"line_number":111,"context_line":"------------------------------------"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"when the master scheduler is broken, its “/master” will disappear,"},{"line_number":114,"context_line":"the other backup schedulers will race to create the “/master” znode and"},{"line_number":115,"context_line":"make itself master, and get to know the current tasks assign status."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Alternatives"},{"line_number":118,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_f38b4066","line":115,"range":{"start_line":113,"start_character":0,"end_line":115,"end_character":68},"updated":"2017-03-21 07:01:44.000000000","message":"Isn\u0027t required at tacker side to handle split-brain kind problems?","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"5b9b110245242660c24a0355e0dbc76f06157a16","unresolved":false,"context_lines":[{"line_number":110,"context_line":"To deal with broken master scheduler"},{"line_number":111,"context_line":"------------------------------------"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"when the master scheduler is broken, its “/master” will disappear,"},{"line_number":114,"context_line":"the other backup schedulers will race to create the “/master” znode and"},{"line_number":115,"context_line":"make itself master, and get to know the current tasks assign status."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Alternatives"},{"line_number":118,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_ea96b63c","line":115,"range":{"start_line":113,"start_character":0,"end_line":115,"end_character":68},"in_reply_to":"1a1ced50_f38b4066","updated":"2017-03-22 01:58:01.000000000","message":"no. the problem is dealt with zookeeper it self.","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"baf051d94613e1424a38cec48a501fc5516176f9","unresolved":false,"context_lines":[{"line_number":123,"context_line":"At PIKE PTG meeting, a way based on message queue is also came up with."},{"line_number":124,"context_line":"We are concerning about its scalability when there are thousands of workers"},{"line_number":125,"context_line":"which have to reports its state to servers."},{"line_number":126,"context_line":"And the complexitiy is also a big problem."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Consul Way"},{"line_number":129,"context_line":"............"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_f447ab48","line":126,"range":{"start_line":126,"start_character":8,"end_line":126,"end_character":19},"updated":"2017-03-21 07:01:44.000000000","message":"complexity","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"5b9b110245242660c24a0355e0dbc76f06157a16","unresolved":false,"context_lines":[{"line_number":123,"context_line":"At PIKE PTG meeting, a way based on message queue is also came up with."},{"line_number":124,"context_line":"We are concerning about its scalability when there are thousands of workers"},{"line_number":125,"context_line":"which have to reports its state to servers."},{"line_number":126,"context_line":"And the complexitiy is also a big problem."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Consul Way"},{"line_number":129,"context_line":"............"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_2a7e0e19","line":126,"range":{"start_line":126,"start_character":8,"end_line":126,"end_character":19},"in_reply_to":"1a1ced50_f447ab48","updated":"2017-03-22 01:58:01.000000000","message":"Done","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"baf051d94613e1424a38cec48a501fc5516176f9","unresolved":false,"context_lines":[{"line_number":139,"context_line":"........................"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"- JVM dependencies."},{"line_number":142,"context_line":"  Zookeeper is a java problem, which needs the JVM enviroment."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"- long live connections between client and zookeeper."},{"line_number":145,"context_line":"  Zookeeper\u0027s ephemeral znodes depends on long live connections between client and"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_3451430f","line":142,"range":{"start_line":142,"start_character":51,"end_line":142,"end_character":61},"updated":"2017-03-21 07:01:44.000000000","message":"environment","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"5b9b110245242660c24a0355e0dbc76f06157a16","unresolved":false,"context_lines":[{"line_number":139,"context_line":"........................"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"- JVM dependencies."},{"line_number":142,"context_line":"  Zookeeper is a java problem, which needs the JVM enviroment."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"- long live connections between client and zookeeper."},{"line_number":145,"context_line":"  Zookeeper\u0027s ephemeral znodes depends on long live connections between client and"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_4a7b4a28","line":142,"range":{"start_line":142,"start_character":51,"end_line":142,"end_character":61},"in_reply_to":"1a1ced50_3451430f","updated":"2017-03-22 01:58:01.000000000","message":"Done","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":20560,"name":"Tung Doan","email":"doantungbk.203@gmail.com","username":"doantungbk"},"change_message_id":"abaf5ca1ceb312a21cebca99bf3d330d76c0765d","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                \u0027is_visible\u0027: True,"},{"line_number":190,"context_line":"            },"},{"line_number":191,"context_line":"        },"},{"line_number":192,"context_line":"        \u0027workers\u0027: {"},{"line_number":193,"context_line":"            \u0027id\u0027: {"},{"line_number":194,"context_line":"                \u0027allow_post\u0027: False,"},{"line_number":195,"context_line":"                \u0027allow_put\u0027: False,"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_90db39ed","line":192,"range":{"start_line":192,"start_character":8,"end_line":192,"end_character":20},"updated":"2017-03-17 15:09:09.000000000","message":"please add \"status\" attribute to \"workers\". This is very important I think","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"2b1928aac99493304f008c3ea41a85d0f9bf02ed","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                \u0027is_visible\u0027: True,"},{"line_number":190,"context_line":"            },"},{"line_number":191,"context_line":"        },"},{"line_number":192,"context_line":"        \u0027workers\u0027: {"},{"line_number":193,"context_line":"            \u0027id\u0027: {"},{"line_number":194,"context_line":"                \u0027allow_post\u0027: False,"},{"line_number":195,"context_line":"                \u0027allow_put\u0027: False,"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_ee264115","line":192,"range":{"start_line":192,"start_character":8,"end_line":192,"end_character":20},"in_reply_to":"1a1ced50_90db39ed","updated":"2017-03-17 22:42:45.000000000","message":"worker is listed if it is alive, otherwise it is not here.","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":20560,"name":"Tung Doan","email":"doantungbk.203@gmail.com","username":"doantungbk"},"change_message_id":"0d663723fb25a7393ff5df312439baf938439c3e","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                \u0027is_visible\u0027: True,"},{"line_number":190,"context_line":"            },"},{"line_number":191,"context_line":"        },"},{"line_number":192,"context_line":"        \u0027workers\u0027: {"},{"line_number":193,"context_line":"            \u0027id\u0027: {"},{"line_number":194,"context_line":"                \u0027allow_post\u0027: False,"},{"line_number":195,"context_line":"                \u0027allow_put\u0027: False,"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_d8a3069d","line":192,"range":{"start_line":192,"start_character":8,"end_line":192,"end_character":20},"in_reply_to":"1a1ced50_ee264115","updated":"2017-03-18 02:23:27.000000000","message":"OK","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":20560,"name":"Tung Doan","email":"doantungbk.203@gmail.com","username":"doantungbk"},"change_message_id":"abaf5ca1ceb312a21cebca99bf3d330d76c0765d","unresolved":false,"context_lines":[{"line_number":211,"context_line":"                \u0027is_visible\u0027: True,"},{"line_number":212,"context_line":"            },"},{"line_number":213,"context_line":"        },"},{"line_number":214,"context_line":"        \u0027schedulers\u0027: {"},{"line_number":215,"context_line":"            \u0027id\u0027: {"},{"line_number":216,"context_line":"                \u0027allow_post\u0027: False,"},{"line_number":217,"context_line":"                \u0027allow_put\u0027: False,"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_10ee698b","line":214,"range":{"start_line":214,"start_character":9,"end_line":214,"end_character":22},"updated":"2017-03-17 15:09:09.000000000","message":"Also, do we need \"status\" attribute for \"schedulers\"?","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"2b1928aac99493304f008c3ea41a85d0f9bf02ed","unresolved":false,"context_lines":[{"line_number":211,"context_line":"                \u0027is_visible\u0027: True,"},{"line_number":212,"context_line":"            },"},{"line_number":213,"context_line":"        },"},{"line_number":214,"context_line":"        \u0027schedulers\u0027: {"},{"line_number":215,"context_line":"            \u0027id\u0027: {"},{"line_number":216,"context_line":"                \u0027allow_post\u0027: False,"},{"line_number":217,"context_line":"                \u0027allow_put\u0027: False,"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_2e2139fc","line":214,"range":{"start_line":214,"start_character":9,"end_line":214,"end_character":22},"in_reply_to":"1a1ced50_10ee698b","updated":"2017-03-17 22:42:45.000000000","message":"just like the worker, if it is here, it is alive.","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"25914c01c45ee6ba5413a894568d876404c22d73","unresolved":false,"context_lines":[{"line_number":354,"context_line":" * multiple schedulers and backup schedulers can take master status if"},{"line_number":355,"context_line":"   master scheduler breaks."},{"line_number":356,"context_line":""},{"line_number":357,"context_line":" * Workers can come and go. When worker breaks, its tasks will be assigned to"},{"line_number":358,"context_line":"   to other workers"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_b427c5b4","line":358,"range":{"start_line":357,"start_character":0,"end_line":358,"end_character":19},"updated":"2017-03-22 00:10:03.000000000","message":"How do you plan to gate test multiple worker VMs ?","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"5b9b110245242660c24a0355e0dbc76f06157a16","unresolved":false,"context_lines":[{"line_number":354,"context_line":" * multiple schedulers and backup schedulers can take master status if"},{"line_number":355,"context_line":"   master scheduler breaks."},{"line_number":356,"context_line":""},{"line_number":357,"context_line":" * Workers can come and go. When worker breaks, its tasks will be assigned to"},{"line_number":358,"context_line":"   to other workers"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a1ced50_4ac98a58","line":358,"range":{"start_line":357,"start_character":0,"end_line":358,"end_character":19},"in_reply_to":"1a1ced50_b427c5b4","updated":"2017-03-22 01:58:01.000000000","message":"that is easy, just start many of them.\nplease look at https://review.openstack.org/#/c/443719/15/doc/source/devref/task_scheduling_framework.rst","commit_id":"769c257aafb212efb7df1ad121188052cd39ec52"}],"tests/test_titles.py":[{"author":{"_account_id":20560,"name":"Tung Doan","email":"doantungbk.203@gmail.com","username":"doantungbk"},"change_message_id":"73671f984d44091f80cf1044418c8c98d581ed60","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            files \u003d glob.glob(\"specs/%s/*\" % release)"},{"line_number":85,"context_line":"            for filename in files:"},{"line_number":86,"context_line":"                self.assertTrue(filename.endswith(\".rst\") or filename.endswith(\".png\"),"},{"line_number":87,"context_line":"                                \"spec\u0027s file must uses \u0027rst\u0027 extension.\")"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"                with open(filename) as f:"},{"line_number":90,"context_line":"                    data \u003d f.read()"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba2be162_ce9fd05d","line":87,"range":{"start_line":87,"start_character":33,"end_line":87,"end_character":70},"updated":"2017-03-01 09:21:37.000000000","message":"in case we support .png file, could you pls change this comment?","commit_id":"87c5e75381e6e7b8315c776ca0a9ae755df27375"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"0784bbb4b13299d87bbf77b162f21fd53a3db6f7","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            files \u003d glob.glob(\"specs/%s/*\" % release)"},{"line_number":85,"context_line":"            for filename in files:"},{"line_number":86,"context_line":"                self.assertTrue(filename.endswith(\".rst\") or filename.endswith(\".png\"),"},{"line_number":87,"context_line":"                                \"spec\u0027s file must uses \u0027rst\u0027 extension.\")"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"                with open(filename) as f:"},{"line_number":90,"context_line":"                    data \u003d f.read()"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba2be162_841a45c4","line":87,"range":{"start_line":87,"start_character":33,"end_line":87,"end_character":70},"in_reply_to":"ba2be162_ce9fd05d","updated":"2017-03-06 15:23:30.000000000","message":"will change, thanks","commit_id":"87c5e75381e6e7b8315c776ca0a9ae755df27375"}]}
