)]}'
{"doc/source/design/version2/component-design.rst":[{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":33,"context_line":"  altered. \"incompatible configuration\" would be fatal and disallow DB objects"},{"line_number":34,"context_line":"  from being created / associations made.)  Examples of this include: UDP"},{"line_number":35,"context_line":"  protocol for a listener on a driver/flavor that uses only haproxy as its"},{"line_number":36,"context_line":"  back-end."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* Drivers should also be able to return \u0027out of resources\u0027 or \u0027some other"},{"line_number":39,"context_line":"  error occurred\u0027 errors (hopefully with helpful error messages)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_9904197f","line":36,"updated":"2016-07-18 19:10:15.000000000","message":"What is the idea to allow creating objects in DB for improper state of system? You\u0027re not allowed to create that config but I will create a data? I cannot understand that.","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":104,"context_line":"* Driver will be loaded by the daemon that does the user API and operator API."},{"line_number":105,"context_line":"  It is not, in and of itself, its own daemon, though a given vendor\u0027s back-end"},{"line_number":106,"context_line":"  may contain its own daemons or other services that the driver interfaces"},{"line_number":107,"context_line":"  with."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"* It is thought that the driver front-end should be stateless in order to make"},{"line_number":110,"context_line":"  it horizontally scalable and to preserves the statelessness of the user and"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_79096595","line":107,"updated":"2016-07-18 19:10:15.000000000","message":"How about using multidriver support?","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":118,"context_line":"to provide the kind of load balancing services we need to provide without"},{"line_number":119,"context_line":"\"going around\" the existing Neutron API, we have decided to write a \"neutron"},{"line_number":120,"context_line":"shim\" component which does those dirty back-end configuration commands via"},{"line_number":121,"context_line":"an API we write, until these can become a standard part of Neutron."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"**Notes:**"},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_d9fe916a","line":121,"updated":"2016-07-18 19:10:15.000000000","message":"I don\u0027t understand that part. There is idea of moving neutron-lbaas API into Octavia. Is it included in this specification or not?","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"* This is a daemon, presumably living on a Neutron network node which should"},{"line_number":126,"context_line":"  have \"back door\" access to all things Neutron and exposes an API that should"},{"line_number":127,"context_line":"  only be used by Octavia."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* Exactly what API will be provided by this shim will be defined as we continue"},{"line_number":130,"context_line":"  to build out the reference implementation for Octavia."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_b903dd72","line":127,"updated":"2016-07-18 19:10:15.000000000","message":"Please rewrite that sentence. Plus what about other network drivers?","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"* Obviously, as we discover missing functionality in the Neutron API, we should"},{"line_number":133,"context_line":"  work with the Neutron core devs to get these added to the API in a timely"},{"line_number":134,"context_line":"  fashion: We want the Neutron Shim to be a \"temporary\" work around."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_19f94981","line":134,"updated":"2016-07-18 19:10:15.000000000","message":"Again what about our Octavia API taken from n-lbaas","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":141,"context_line":"and load balancing system. Other vendor drivers are unlikely to have the same"},{"line_number":142,"context_line":"components and internal structure. It is planned that Octavia will become the"},{"line_number":143,"context_line":"new reference implementation for LBaaS, though it of course doesn\u0027t need to be"},{"line_number":144,"context_line":"the only one. (In fact, a given operator should be able to use multiple vendors"},{"line_number":145,"context_line":"with potentially multiple drivers and multiple driver configurations through"},{"line_number":146,"context_line":"the Neutron Flavor framework.)"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_f9f55583","line":144,"updated":"2016-07-18 19:10:15.000000000","message":"If I\u0027m right Octavia is already a reference driver for n-lbaas","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":143,"context_line":"new reference implementation for LBaaS, though it of course doesn\u0027t need to be"},{"line_number":144,"context_line":"the only one. (In fact, a given operator should be able to use multiple vendors"},{"line_number":145,"context_line":"with potentially multiple drivers and multiple driver configurations through"},{"line_number":146,"context_line":"the Neutron Flavor framework.)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"INTERMEDIATE MESSAGE BUS"},{"line_number":149,"context_line":"------------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_59f3c19e","line":146,"updated":"2016-07-18 19:10:15.000000000","message":"What about our own flavor framework? We not suppose to use any internal stuff from Neutron to be able to keep our independence from any network provider driver","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":148,"context_line":"INTERMEDIATE MESSAGE BUS"},{"line_number":149,"context_line":"------------------------"},{"line_number":150,"context_line":"This is how the components that make up Octavia send messages to each other"},{"line_number":151,"context_line":"(except the controller to octavia VMs). It is thought that we\u0027d use OpenStack\u0027s"},{"line_number":152,"context_line":"existing queueing system (oslo/rabbitmq, mostly) for this. The only constraint"},{"line_number":153,"context_line":"here is that all the components (except the octavia VMs) need to be able to"},{"line_number":154,"context_line":"talk with the intermediate message bus."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_39f08d90","line":151,"updated":"2016-07-18 19:10:15.000000000","message":"Octavia","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":150,"context_line":"This is how the components that make up Octavia send messages to each other"},{"line_number":151,"context_line":"(except the controller to octavia VMs). It is thought that we\u0027d use OpenStack\u0027s"},{"line_number":152,"context_line":"existing queueing system (oslo/rabbitmq, mostly) for this. The only constraint"},{"line_number":153,"context_line":"here is that all the components (except the octavia VMs) need to be able to"},{"line_number":154,"context_line":"talk with the intermediate message bus."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"**Notes:**"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_992b79eb","line":153,"updated":"2016-07-18 19:10:15.000000000","message":"Octavia","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"LB NETWORK"},{"line_number":167,"context_line":"----------"},{"line_number":168,"context_line":"This is the subnet that controllers will use to communicate with octavia VMs."},{"line_number":169,"context_line":"This means that controllers must have connectivity (either layer 2 or routed)"},{"line_number":170,"context_line":"to this subnet in order to function, and visa versa. Since Octavia VMs will be"},{"line_number":171,"context_line":"communicating on it, this means the network is not part of the \"undercloud.\""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_79304557","line":168,"updated":"2016-07-18 19:10:15.000000000","message":"O","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":167,"context_line":"----------"},{"line_number":168,"context_line":"This is the subnet that controllers will use to communicate with octavia VMs."},{"line_number":169,"context_line":"This means that controllers must have connectivity (either layer 2 or routed)"},{"line_number":170,"context_line":"to this subnet in order to function, and visa versa. Since Octavia VMs will be"},{"line_number":171,"context_line":"communicating on it, this means the network is not part of the \"undercloud.\""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"**Notes:**"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_d935f146","line":170,"updated":"2016-07-18 19:10:15.000000000","message":"vice","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":168,"context_line":"This is the subnet that controllers will use to communicate with octavia VMs."},{"line_number":169,"context_line":"This means that controllers must have connectivity (either layer 2 or routed)"},{"line_number":170,"context_line":"to this subnet in order to function, and visa versa. Since Octavia VMs will be"},{"line_number":171,"context_line":"communicating on it, this means the network is not part of the \"undercloud.\""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"**Notes:**"},{"line_number":174,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_b93abd34","line":171,"updated":"2016-07-18 19:10:15.000000000","message":"How about multitenat? You\u0027re planning to use one network for all tenants? What IP version? Configurable or hard coded?","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":175,"context_line":"* As certain sensitive data (TLS private keys, for example) will be transmitted"},{"line_number":176,"context_line":"  over this communication infrastructure, all messages carrying a sensitive"},{"line_number":177,"context_line":"  payload should be done via encrypted and authenticated means. Further, we"},{"line_number":178,"context_line":"  recommend that messages to and from octavia VMs be signed regardless of the"},{"line_number":179,"context_line":"  sensitivity of their content."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_194029a5","line":178,"updated":"2016-07-18 19:10:15.000000000","message":"O","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":176,"context_line":"  over this communication infrastructure, all messages carrying a sensitive"},{"line_number":177,"context_line":"  payload should be done via encrypted and authenticated means. Further, we"},{"line_number":178,"context_line":"  recommend that messages to and from octavia VMs be signed regardless of the"},{"line_number":179,"context_line":"  sensitivity of their content."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"DISPATCHER"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_f93c3531","line":179,"updated":"2016-07-18 19:10:15.000000000","message":"What exactly you\u0027re proposing? If I\u0027m right we\u0027re using REST API currently to communicate with Amphorae - adding HTTPS into that API is solving problem, other new drivers also suppose to be able to use some ciphering mechanism","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":183,"context_line":"----------"},{"line_number":184,"context_line":"This is intended to be a light-weight daemon whose sole job it is to associate"},{"line_number":185,"context_line":"\"loadbalancer\" instances (as defined in the user API documents) with controller"},{"line_number":186,"context_line":"back-ends, and monitor controllers and other dispatchers for failure."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"**Notes:**"},{"line_number":189,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_594aa1c6","line":186,"updated":"2016-07-18 19:10:15.000000000","message":"Why mix role of dispatching with healt check? Currently we have that o-hm process. Why you\u0027re planning to remove that provess. It\u0027s much scalable using that architecture. Also I don\u0027t really understand what do you mean by this. May you write more about this?","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":194,"context_line":"  When a new dispatcher is started, it tries to discover other dispatchers via"},{"line_number":195,"context_line":"  a configured message queue. If it finds other dispatchers, these negotiate"},{"line_number":196,"context_line":"  who will be the \"active\" one in the group, and all dispatchers monitor each"},{"line_number":197,"context_line":"  other\u0027s health."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"* The \"active\" dispatcher is the one that will respond to requests to the"},{"line_number":200,"context_line":"  dispatcher on the shared message bus. Other dispatcher(s) are \"standby\" and"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_3947edbc","line":197,"updated":"2016-07-18 19:10:15.000000000","message":"Why cluster them and why they should be statefull? Also if \"Dispatcher\" will be binded into controller back-end how about multi driver situation? There is no way to do this with what you\u0027re proposing.","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":198,"context_line":""},{"line_number":199,"context_line":"* The \"active\" dispatcher is the one that will respond to requests to the"},{"line_number":200,"context_line":"  dispatcher on the shared message bus. Other dispatcher(s) are \"standby\" and"},{"line_number":201,"context_line":"  spend their time monitoring the status of the active dispatcher."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"* If a dispatcher is not able to find any peers, or if at some point during its"},{"line_number":204,"context_line":"  operation all other peers health checks start failing (ie. all others are"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_991259b3","line":201,"updated":"2016-07-18 19:10:15.000000000","message":"It looks like you\u0027re planning to create a quorum? But two instances not give you any info about which is working and which one not, more likely to use ZK to manage that. Without that it\u0027s imposible to decide which one is working.","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":203,"context_line":"* If a dispatcher is not able to find any peers, or if at some point during its"},{"line_number":204,"context_line":"  operation all other peers health checks start failing (ie. all others are"},{"line_number":205,"context_line":"  down), it should emit warning notifications about this on a regular and"},{"line_number":206,"context_line":"  frequent until an operator comes to fix the issue."},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"* Health checks take the form of a regular heartbeat emitted to all other"},{"line_number":209,"context_line":"  dispatcher peers via the above configured message queue a failed heartbeat"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_7917a5a3","line":206,"updated":"2016-07-18 19:10:15.000000000","message":"Again, how active dispatcher will know that it\u0027s working properly? What it gonna do when I\u0027m gonna disconnect lan cable in that machine? How you\u0027re plannig to select new master/decide that this instance is working","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":206,"context_line":"  frequent until an operator comes to fix the issue."},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"* Health checks take the form of a regular heartbeat emitted to all other"},{"line_number":209,"context_line":"  dispatcher peers via the above configured message queue a failed heartbeat"},{"line_number":210,"context_line":"  is one that is too stale. (Though the state of other peers\u0027 statuses should"},{"line_number":211,"context_line":"  not need to be kept in nonvolatile storage.)"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_d90cd196","line":209,"updated":"2016-07-18 19:10:15.000000000","message":"a - should be and a","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":208,"context_line":"* Health checks take the form of a regular heartbeat emitted to all other"},{"line_number":209,"context_line":"  dispatcher peers via the above configured message queue a failed heartbeat"},{"line_number":210,"context_line":"  is one that is too stale. (Though the state of other peers\u0027 statuses should"},{"line_number":211,"context_line":"  not need to be kept in nonvolatile storage.)"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"* A dispatcher is also the only single bottleneck in the design-- hence the"},{"line_number":214,"context_line":"  reason it should be kept as lightweight as possible, and only pinged when"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_b9111daf","line":211,"updated":"2016-07-18 19:10:15.000000000","message":"stale (inner sentence). - this is proper way of writing that. This is what really I cannot understand. Keep state on nonvolatile storage? State of what you require to keep on nonvolatile storage? Please explain that.","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":210,"context_line":"  is one that is too stale. (Though the state of other peers\u0027 statuses should"},{"line_number":211,"context_line":"  not need to be kept in nonvolatile storage.)"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"* A dispatcher is also the only single bottleneck in the design-- hence the"},{"line_number":214,"context_line":"  reason it should be kept as lightweight as possible, and only pinged when"},{"line_number":215,"context_line":"  absolutely necessary."},{"line_number":216,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_19278913","line":213,"updated":"2016-07-18 19:10:15.000000000","message":"space --","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":212,"context_line":""},{"line_number":213,"context_line":"* A dispatcher is also the only single bottleneck in the design-- hence the"},{"line_number":214,"context_line":"  reason it should be kept as lightweight as possible, and only pinged when"},{"line_number":215,"context_line":"  absolutely necessary."},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"* Configuration of this service should be simple. This should probably happen"},{"line_number":218,"context_line":"  via a configuration file."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_f9239503","line":215,"updated":"2016-07-18 19:10:15.000000000","message":"Ok, I would like to see any white paper about relationship between pinging, lightweight and bottlenecking of application.","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":215,"context_line":"  absolutely necessary."},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"* Configuration of this service should be simple. This should probably happen"},{"line_number":218,"context_line":"  via a configuration file."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"* It\u0027s expected that the Octavia driver will check with the dispatcher to find"},{"line_number":221,"context_line":"  out which controller it should be talking to for a given loadbalancer"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_592101fb","line":218,"updated":"2016-07-18 19:10:15.000000000","message":"Configuration for Octavia should be hard but for this specific module not? I don\u0027t understand why this point is here","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":225,"context_line":"  cache this loadbalancer-\u003econtroller association for a small amount of time to"},{"line_number":226,"context_line":"  reduce load on the dispatcher. (As both the driver and the controller will"},{"line_number":227,"context_line":"  occasionally need to access the dispatcher, we should create a shared library"},{"line_number":228,"context_line":"  to handle caching.)"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"* The dispatcher needs to be able to monitor controller availablilty and should"},{"line_number":231,"context_line":"  re-shuffle assigned loadbalancer instances to other controllers when a given"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_391ecdba","line":228,"updated":"2016-07-18 19:10:15.000000000","message":"If dispatcher will be a bottleneck why it should handle additionall things. What about idea of lightweight service and why not to use the DB to get that information?","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":230,"context_line":"* The dispatcher needs to be able to monitor controller availablilty and should"},{"line_number":231,"context_line":"  re-shuffle assigned loadbalancer instances to other controllers when a given"},{"line_number":232,"context_line":"  controller fails. It should also emit an alert when it detects such a"},{"line_number":233,"context_line":"  failure."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"* The disatcher is not responsible for spinning up new controllers (processes"},{"line_number":236,"context_line":"  or instances). But it should complain if we pass a useage percentage"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_9979b9ff","line":233,"updated":"2016-07-18 19:10:15.000000000","message":"When we started to host load balancers on controllers. We was using compute nodes for that - because of that we use Service VM not old way to configure everything on controllers. Also why not use other health monitor process to handle that stuff","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":234,"context_line":""},{"line_number":235,"context_line":"* The disatcher is not responsible for spinning up new controllers (processes"},{"line_number":236,"context_line":"  or instances). But it should complain if we pass a useage percentage"},{"line_number":237,"context_line":"  threshold on all controllers."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"* The dispatcher should be largely event driven."},{"line_number":240,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_797e85e5","line":237,"updated":"2016-07-18 19:10:15.000000000","message":"Again, I don\u0027t understand that. Systemd should be responsible for keeping processes up and runnig. The whole Octavia should work until we have up and running minimum one dispatcher - if anyone from deployed processes is dead and systemd is unable to restart service Ops team should know about that and do something with that on his own manually or even by restarting node.","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":236,"context_line":"  or instances). But it should complain if we pass a useage percentage"},{"line_number":237,"context_line":"  threshold on all controllers."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"* The dispatcher should be largely event driven."},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"* The dispatcher needs to have intelligence about colocation of loadbalancers"},{"line_number":242,"context_line":"  in order to make sure colocated loadbalancers are all handled by the same"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_d98331cb","line":239,"updated":"2016-07-18 19:10:15.000000000","message":"What you understand by that? Requests incoming from message queue and do something with them after that? How about configuring message queue to send all requests to active \"dispatcher\"? You need to communicate with rabbit/other thing to let it know which should serve the requests?","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":240,"context_line":""},{"line_number":241,"context_line":"* The dispatcher needs to have intelligence about colocation of loadbalancers"},{"line_number":242,"context_line":"  in order to make sure colocated loadbalancers are all handled by the same"},{"line_number":243,"context_line":"  controller. (It doesn\u0027t need to care about apolocation of loadbalancers.)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"* If colocation constraints are added by the user after loadbalancers are"},{"line_number":246,"context_line":"  deployed, the dispatcher needs to have the ability to inform controllers to"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_b988fde8","line":243,"updated":"2016-07-18 19:10:15.000000000","message":"You\u0027re talking about information about where Amphorae are located or what?","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":244,"context_line":""},{"line_number":245,"context_line":"* If colocation constraints are added by the user after loadbalancers are"},{"line_number":246,"context_line":"  deployed, the dispatcher needs to have the ability to inform controllers to"},{"line_number":247,"context_line":"  migrate a loadbalancer from one controller to another."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"L4 ROUTER"},{"line_number":250,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_196e692f","line":247,"updated":"2016-07-18 19:10:15.000000000","message":"What you mean by controller? Amphora?","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":250,"context_line":"---------"},{"line_number":251,"context_line":"This is the entity that controls routing 1 hop above the Octavia VMs in a"},{"line_number":252,"context_line":"network topology. For the reference implementation this will most likely be a"},{"line_number":253,"context_line":"virtual or dedicated machine (or HA pair) running Linux LVS, though we may seek"},{"line_number":254,"context_line":"to replace this with an openflow router of some kind fairly early in the"},{"line_number":255,"context_line":"implementation process.  The important aspects of the L4 Router are:"},{"line_number":256,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_f96a7519","line":253,"updated":"2016-07-18 19:10:15.000000000","message":"Why Linux LVS? I would like to see here OVS+DPDK+table learning - how about that?","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":260,"context_line":""},{"line_number":261,"context_line":"* Is meant to be as lightweight as possible, doing nothing above Layer 4 (ie."},{"line_number":262,"context_line":"  everything it can do should ultimately be doable on ASICs on networking"},{"line_number":263,"context_line":"  hardware.)"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"* Needs to have an interface on the LB Network"},{"line_number":266,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_5978e1f2","line":263,"updated":"2016-07-18 19:10:15.000000000","message":"What if I\u0027m using Dell routers which use only Intel CPU and don\u0027t have any ASICs? Again lightweight?","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":277,"context_line":"  Octavia VMs configured to service the loadbalancer VIP."},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"* Should eventually be replaced by Neutron core routing (DVR architecture,"},{"line_number":280,"context_line":"  hopefully)."},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"* L4 Router may be a single device or many devices--  all Octavia cares about"},{"line_number":283,"context_line":"  is that it handles flows in the manner described above"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_39752df9","line":280,"updated":"2016-07-18 19:10:15.000000000","message":"How? I probably nead to talk with someone if they\u0027re adding load balancing into DVR. I can\u0027t understand what you\u0027re trying to do by replacing any Octavia code with Neutron code and functionality? What about our driver architecture?","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"fd1fa731790de9766e3bb09726a43108ba6daa66","unresolved":false,"context_lines":[{"line_number":322,"context_line":"This is the modularized block of code that actually communicates with the L4"},{"line_number":323,"context_line":"routers in a given topology. This should essentially be stateless."},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"ACTIVE-NODE CONTROLLER"},{"line_number":326,"context_line":"----------------------"},{"line_number":327,"context_line":"This is the entity that controls the octavia VMs that are actually in use"},{"line_number":328,"context_line":"hosting user-configured loadbalancers. It is also the place where most of the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_99609937","line":325,"updated":"2016-07-18 19:10:15.000000000","message":"Done. My brain is burning from amount of information provided here.","commit_id":"d1dcb00b104ba397de3ae48afcf6890802c64a31"}]}
