)]}'
{"specs/liberty/scheduler_rethink.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"2758489ed69bb9fc05b1c6c7a905d08829552151","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Scheduler Rethinking"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"EARLY DRAFT DO NOT READ IT!"},{"line_number":6,"context_line":"NEEDS TO BE REORGANIZED."},{"line_number":7,"context_line":"CONTAINS overlapping concepts, some of them will be deleted."},{"line_number":8,"context_line":"Even I did not fully read back :)"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1a4dcd0f_83440bb7","line":5,"updated":"2015-08-06 13:54:25.000000000","message":"+1, I am sure there is something interesting here.","commit_id":"f78df62c6d70e29510fd825f53a80919509a3e9b"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"a4cbea7e17ff86795472d330c76730f9a3c95690","unresolved":false,"context_lines":[{"line_number":29,"context_line":"   - DB already knows strategies which can make a host search in O(log(N)) or O(1),"},{"line_number":30,"context_line":"     When the ordering is just ram size based (typical use case),"},{"line_number":31,"context_line":"     or it can be based on pre-calculated metric (frequent use case),"},{"line_number":32,"context_line":"     the DB does not even needs to touch all possible computue_node."},{"line_number":33,"context_line":"     Similar strategy not used at scheduler side."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da20952f_b4f38672","line":32,"updated":"2015-09-05 14:48:04.000000000","message":"s/computue_node/compute_node/","commit_id":"f78df62c6d70e29510fd825f53a80919509a3e9b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"2758489ed69bb9fc05b1c6c7a905d08829552151","unresolved":false,"context_lines":[{"line_number":56,"context_line":"   might be decreased further when the scheduling happens on the API service side."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"   All inconsistency/race issue (including single worker cases), will be prevented by"},{"line_number":59,"context_line":"   using ACID transactional DB."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"1.2 Definitions and terms used in this spec"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1a4dcd0f_2362d73e","line":59,"updated":"2015-08-06 13:54:25.000000000","message":"its a valid strategy for particular cases, its not going to work in all cases, but thats fine, we could add this method.","commit_id":"f78df62c6d70e29510fd825f53a80919509a3e9b"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"a4cbea7e17ff86795472d330c76730f9a3c95690","unresolved":false,"context_lines":[{"line_number":130,"context_line":"   The API request for VM(s) spawning."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"   User boot request the end user requesting for boot"},{"line_number":133,"context_line":"   boot request th internally requests a boot on a specific hypervisor."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"   Usually it can be considered as coupled resource request."},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da20952f_74e96e7e","line":133,"updated":"2015-09-05 14:48:04.000000000","message":"s/th/the/","commit_id":"f78df62c6d70e29510fd825f53a80919509a3e9b"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"a4cbea7e17ff86795472d330c76730f9a3c95690","unresolved":false,"context_lines":[{"line_number":339,"context_line":"     the metric based SELECTS needs to iterate over more index element/record."},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"     Decreasing the number of flavors in the family can help or we MAY maintain a different helper,"},{"line_number":342,"context_line":"     table which has a record for each flavor. (deleter 3; 2 will be flavor_ref)"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"2.3.1 sched_helper_attr_\u003ctype\u003e"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da20952f_949762eb","line":342,"updated":"2015-09-05 14:48:04.000000000","message":"deleter?","commit_id":"f78df62c6d70e29510fd825f53a80919509a3e9b"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"a4cbea7e17ff86795472d330c76730f9a3c95690","unresolved":false,"context_lines":[{"line_number":453,"context_line":""},{"line_number":454,"context_line":"    - Size your physical/virtual machines properly."},{"line_number":455,"context_line":"      A NIC usually can have 2 ports (128 vNIC / numa node), you can have multiple 8x gen3 PCIe device per NUMA node."},{"line_number":456,"context_line":"      Consider the vNIC/RAM ratio and use smaller memory servers for small memory flavors (different flavour group) and big memory servers,"},{"line_number":457,"context_line":"      for big memory flavors."},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"   Solution B.:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da20952f_74a08e42","line":456,"updated":"2015-09-05 14:48:04.000000000","message":"s/flavour/flavor/; you use \"flavor\" in other parts of this specs","commit_id":"f78df62c6d70e29510fd825f53a80919509a3e9b"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"a4cbea7e17ff86795472d330c76730f9a3c95690","unresolved":false,"context_lines":[{"line_number":719,"context_line":"   when your VM\u0027s CPU requirements can be satisfied with a single physical CPU"},{"line_number":720,"context_line":"   and there are other vms on the same host. (nr_vm\u003enr_numa_node)"},{"line_number":721,"context_line":""},{"line_number":722,"context_line":"   The Host NUMA generally has a total memory bandwith advantage."},{"line_number":723,"context_line":"   For example: you have 8 memory channel instead of 4."},{"line_number":724,"context_line":"   When multiple vms sharing on the same memory channels you loose the bandwidth advantage."},{"line_number":725,"context_line":"   If you really need more than 4 channel\u0027s memory bandwidth,"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da20952f_74b72e85","line":722,"updated":"2015-09-05 14:48:04.000000000","message":"s/bandwith/bandwidth/","commit_id":"f78df62c6d70e29510fd825f53a80919509a3e9b"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"a4cbea7e17ff86795472d330c76730f9a3c95690","unresolved":false,"context_lines":[{"line_number":773,"context_line":"   1. When an host picked"},{"line_number":774,"context_line":"   2. When an instance deleted"},{"line_number":775,"context_line":"   3. When a compute_node"},{"line_number":776,"context_line":"      - cames up, disappears"},{"line_number":777,"context_line":"      - disabled / enabled"},{"line_number":778,"context_line":"      - looses/gaining trust"},{"line_number":779,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da20952f_d4a87a22","line":776,"updated":"2015-09-05 14:48:04.000000000","message":"s/cames/comes/","commit_id":"f78df62c6d70e29510fd825f53a80919509a3e9b"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"a4cbea7e17ff86795472d330c76730f9a3c95690","unresolved":false,"context_lines":[{"line_number":800,"context_line":""},{"line_number":801,"context_line":"   The update at 1, 2, 3 leads to a similar frequent query:"},{"line_number":802,"context_line":""},{"line_number":803,"context_line":"     SELECT DISTINCT flavour_family.*"},{"line_number":804,"context_line":"     FROM flavour_family,aggregate_member"},{"line_number":805,"context_line":"     WHERE flavour_group.aggregate_id \u003d aggregate_member.aggregate_id // eq joins"},{"line_number":806,"context_line":"     AND aggregate_member.host_id \u003d host_id WITH SHARED LOCK"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da20952f_348776b6","line":803,"updated":"2015-09-05 14:48:04.000000000","message":"s/flavour/flavor/","commit_id":"f78df62c6d70e29510fd825f53a80919509a3e9b"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"a4cbea7e17ff86795472d330c76730f9a3c95690","unresolved":false,"context_lines":[{"line_number":801,"context_line":"   The update at 1, 2, 3 leads to a similar frequent query:"},{"line_number":802,"context_line":""},{"line_number":803,"context_line":"     SELECT DISTINCT flavour_family.*"},{"line_number":804,"context_line":"     FROM flavour_family,aggregate_member"},{"line_number":805,"context_line":"     WHERE flavour_group.aggregate_id \u003d aggregate_member.aggregate_id // eq joins"},{"line_number":806,"context_line":"     AND aggregate_member.host_id \u003d host_id WITH SHARED LOCK"},{"line_number":807,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da20952f_d4915af2","line":804,"updated":"2015-09-05 14:48:04.000000000","message":"s/flavour/flavor/","commit_id":"f78df62c6d70e29510fd825f53a80919509a3e9b"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"a4cbea7e17ff86795472d330c76730f9a3c95690","unresolved":false,"context_lines":[{"line_number":802,"context_line":""},{"line_number":803,"context_line":"     SELECT DISTINCT flavour_family.*"},{"line_number":804,"context_line":"     FROM flavour_family,aggregate_member"},{"line_number":805,"context_line":"     WHERE flavour_group.aggregate_id \u003d aggregate_member.aggregate_id // eq joins"},{"line_number":806,"context_line":"     AND aggregate_member.host_id \u003d host_id WITH SHARED LOCK"},{"line_number":807,"context_line":""},{"line_number":808,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da20952f_f48c9ed8","line":805,"updated":"2015-09-05 14:48:04.000000000","message":"s/flavour/flavor/","commit_id":"f78df62c6d70e29510fd825f53a80919509a3e9b"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"a4cbea7e17ff86795472d330c76730f9a3c95690","unresolved":false,"context_lines":[{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"  WHERE free_ram_mb \u003e flavor_ram_req /CONF.ram_allocation_ratio"},{"line_number":1071,"context_line":""},{"line_number":1072,"context_line":"  Useing div just to make obvios to the DB planner the free_ram_mb can be used if it  part of a combined index."},{"line_number":1073,"context_line":"  free_ram_mb index should be added to the compute_nodes table."},{"line_number":1074,"context_line":""},{"line_number":1075,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da20952f_b46866f6","line":1072,"updated":"2015-09-05 14:48:04.000000000","message":"s/Useing/Using/; s/obvios/obvious/;","commit_id":"f78df62c6d70e29510fd825f53a80919509a3e9b"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"a4cbea7e17ff86795472d330c76730f9a3c95690","unresolved":false,"context_lines":[{"line_number":1281,"context_line":""},{"line_number":1282,"context_line":"3.3.4.6 TrustedFilter:"},{"line_number":1283,"context_line":""},{"line_number":1284,"context_line":"  The filter sses a remote service for filtering,"},{"line_number":1285,"context_line":"  and a caches the state with cache validity time."},{"line_number":1286,"context_line":"  The timeout is 60 sec, so it should not be part of helper table,"},{"line_number":1287,"context_line":"  This needs to be checked after the select."}],"source_content_type":"text/x-rst","patch_set":6,"id":"da20952f_f47a5eb9","line":1284,"updated":"2015-09-05 14:48:04.000000000","message":"s/sses/uses/ ?","commit_id":"f78df62c6d70e29510fd825f53a80919509a3e9b"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"a4cbea7e17ff86795472d330c76730f9a3c95690","unresolved":false,"context_lines":[{"line_number":1346,"context_line":""},{"line_number":1347,"context_line":"3.4.1 IoOpsWeigher"},{"line_number":1348,"context_line":""},{"line_number":1349,"context_line":"   Getting number of io instances form a JOSN BLOB."},{"line_number":1350,"context_line":"   The helper table metric field can be based on this."},{"line_number":1351,"context_line":""},{"line_number":1352,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da20952f_b44f0691","line":1349,"updated":"2015-09-05 14:48:04.000000000","message":"s/JOSN/JSON/","commit_id":"f78df62c6d70e29510fd825f53a80919509a3e9b"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"a4cbea7e17ff86795472d330c76730f9a3c95690","unresolved":false,"context_lines":[{"line_number":1456,"context_line":""},{"line_number":1457,"context_line":"3.6.2 fair-fit"},{"line_number":1458,"context_line":""},{"line_number":1459,"context_line":"   "},{"line_number":1460,"context_line":""},{"line_number":1461,"context_line":"6. Implementation"},{"line_number":1462,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da20952f_9433e213","line":1459,"updated":"2015-09-05 14:48:04.000000000","message":"trailing spaces","commit_id":"f78df62c6d70e29510fd825f53a80919509a3e9b"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"a4cbea7e17ff86795472d330c76730f9a3c95690","unresolved":false,"context_lines":[{"line_number":1468,"context_line":""},{"line_number":1469,"context_line":"    1. Add free_ram_mb index"},{"line_number":1470,"context_line":""},{"line_number":1471,"context_line":"    2. Add basic support for the compute_nodes based selects with RAM ordered (both DESC and ASC), yiled_per read"},{"line_number":1472,"context_line":""},{"line_number":1473,"context_line":"    3. Add query extender to the always active filters, add attributes /functions to the filters which describes the supported strategies"},{"line_number":1474,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da20952f_f451fe30","line":1471,"updated":"2015-09-05 14:48:04.000000000","message":"s/yiled/yield/","commit_id":"f78df62c6d70e29510fd825f53a80919509a3e9b"}]}
