)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"2f9e945b7371195bea61e06c41cfe734e82924c7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8e681999_a9d43464","updated":"2022-08-25 08:53:31.000000000","message":"I agree with the premise but disagree with the approach. Please reflect upon my comments.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"3800a33f75423e14473d458fd2ee8ad0118badec","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e06a06ce_9838d7b6","updated":"2021-10-21 14:58:24.000000000","message":"Please rebase onto Yoga specs commit.\n\nLooks good so far, I left some small comments. Not fully done reading yet.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"}],"doc/source/specs/xena/resource-plugins.rst":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"3800a33f75423e14473d458fd2ee8ad0118badec","unresolved":true,"context_lines":[{"line_number":49,"context_line":"We propose to introduce a plugin mechanism that allows for implementing new"},{"line_number":50,"context_line":"types of resources, complete with database tables that can store and track"},{"line_number":51,"context_line":"updates to important resource properties. There are multiple layers in Blazar"},{"line_number":52,"context_line":"that a resource plugin must have influence."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Database layer"},{"line_number":55,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"15a3a658_ce888a8c","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":4},"updated":"2021-10-21 14:58:24.000000000","message":"on which … must have influence?","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"3800a33f75423e14473d458fd2ee8ad0118badec","unresolved":true,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"  blazar-dbsync migrate \u003cresource\u003e HEAD"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"See `neutron-fwaas"},{"line_number":93,"context_line":"\u003chttps://opendev.org/openstack/neutron-fwaas/src/branch/stable/ussuri/setup.cfg#L36-L37\u003e`_"},{"line_number":94,"context_line":"for an example of how this can work. Broadly, plugins declare a folder of"},{"line_number":95,"context_line":"alembic migrations, similar to how they work in Blazar core. `Here is one such"},{"line_number":96,"context_line":"example"},{"line_number":97,"context_line":"\u003chttps://opendev.org/openstack/neutron-fwaas/src/branch/stable/ussuri/neutron_fwaas/db/firewall/v2/firewall_db_v2.py\u003e`_."},{"line_number":98,"context_line":"There is no enforcement that table names do not collide with existing core"},{"line_number":99,"context_line":"tables; care must be taken by plugin authors to not re-use names used by Blazar"},{"line_number":100,"context_line":"core or by other existing resource plugins."}],"source_content_type":"text/x-rst","patch_set":3,"id":"a91b45a8_9edd5053","line":97,"range":{"start_line":92,"start_character":0,"end_line":97,"end_character":120},"updated":"2021-10-21 14:58:24.000000000","message":"Use tag 16.0.0 as a reference since the stable/ussuri branch may be retired.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"3800a33f75423e14473d458fd2ee8ad0118badec","unresolved":true,"context_lines":[{"line_number":99,"context_line":"tables; care must be taken by plugin authors to not re-use names used by Blazar"},{"line_number":100,"context_line":"core or by other existing resource plugins."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"In Neutron\u0027s case, the \"neutron_lib\" module holds many of the core abstractions"},{"line_number":103,"context_line":"useful for Neutron plugin authors (as opposed to the \"neutron\" module)."},{"line_number":104,"context_line":"Initially, Blazar plugin authors should just integrate directly against Blazar\u0027s"},{"line_number":105,"context_line":"primary module; in the future we could introduce a similar \"blazar_lib\" to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"41e28daf_2d32178d","line":102,"range":{"start_line":102,"start_character":23,"end_line":102,"end_character":36},"updated":"2021-10-21 14:58:24.000000000","message":"You can use ``neutron_lib`` for monospaced markup.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"3800a33f75423e14473d458fd2ee8ad0118badec","unresolved":true,"context_lines":[{"line_number":100,"context_line":"core or by other existing resource plugins."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"In Neutron\u0027s case, the \"neutron_lib\" module holds many of the core abstractions"},{"line_number":103,"context_line":"useful for Neutron plugin authors (as opposed to the \"neutron\" module)."},{"line_number":104,"context_line":"Initially, Blazar plugin authors should just integrate directly against Blazar\u0027s"},{"line_number":105,"context_line":"primary module; in the future we could introduce a similar \"blazar_lib\" to"},{"line_number":106,"context_line":"reduce the size of the interface plugins are exposed to. A stronger base"}],"source_content_type":"text/x-rst","patch_set":3,"id":"cfa7cc0f_415e65a6","line":103,"range":{"start_line":103,"start_character":53,"end_line":103,"end_character":62},"updated":"2021-10-21 14:58:24.000000000","message":"Ditto","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"3800a33f75423e14473d458fd2ee8ad0118badec","unresolved":true,"context_lines":[{"line_number":102,"context_line":"In Neutron\u0027s case, the \"neutron_lib\" module holds many of the core abstractions"},{"line_number":103,"context_line":"useful for Neutron plugin authors (as opposed to the \"neutron\" module)."},{"line_number":104,"context_line":"Initially, Blazar plugin authors should just integrate directly against Blazar\u0027s"},{"line_number":105,"context_line":"primary module; in the future we could introduce a similar \"blazar_lib\" to"},{"line_number":106,"context_line":"reduce the size of the interface plugins are exposed to. A stronger base"},{"line_number":107,"context_line":"resource model class will be added, which will implement default behaviors for"},{"line_number":108,"context_line":"basic create, get, list, update, and delete operations."}],"source_content_type":"text/x-rst","patch_set":3,"id":"102ac888_6dacbd23","line":105,"range":{"start_line":105,"start_character":60,"end_line":105,"end_character":70},"updated":"2021-10-21 14:58:24.000000000","message":"Ditto.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"2f9e945b7371195bea61e06c41cfe734e82924c7","unresolved":true,"context_lines":[{"line_number":114,"context_line":"Currently all Blazar DB calls are located within a single database access"},{"line_number":115,"context_line":"module and are additionally accessible via an RPC interface. For simplicity,"},{"line_number":116,"context_line":"resource plugins should make calls against the Blazar database directly rather"},{"line_number":117,"context_line":"than go via some RPC mechanism."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"RPC layer"},{"line_number":120,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"39de588c_f59841d2","line":117,"updated":"2022-08-25 08:53:31.000000000","message":"In my view (and see also the next comment), the plugins would (well, at least should) live at the level of Blazar Manager and be accessible via RPC, not the other way around.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"2f9e945b7371195bea61e06c41cfe734e82924c7","unresolved":true,"context_lines":[{"line_number":124,"context_line":"specification will propose simplifying this, which will effectively reduce the"},{"line_number":125,"context_line":"RPC layer to a small set of operations that cross the blazar-api/blazar-manager"},{"line_number":126,"context_line":"component boundary. This will remove the need for any plugin to implement"},{"line_number":127,"context_line":"an RPC interface."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Business logic layer"},{"line_number":130,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"c22b25da_ba42756c","line":127,"updated":"2022-08-25 08:53:31.000000000","message":"It\u0027s not wrong that the RPC interface from API to manager looks like it does. I also don\u0027t see why it would be affecting the plugins per se. I mean, it should be extended / made more flexible to accommodate the variance but otherwise no need to remove it. The Blazar API translates REST API for end users to internal Blazar calls (the Blazar Manager RPC). It\u0027s a valid role, I would leave it be.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"3800a33f75423e14473d458fd2ee8ad0118badec","unresolved":true,"context_lines":[{"line_number":130,"context_line":"--------------------"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"The core business logic for plugins should provide an interface that extends"},{"line_number":133,"context_line":"from a base plugin imlpementation provided by core Blazar. This interface must"},{"line_number":134,"context_line":"provide:"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"* ``allocate(resources, lease)``: given a resource selected by Blazar and a"}],"source_content_type":"text/x-rst","patch_set":3,"id":"00a60cda_586b10c0","line":133,"range":{"start_line":133,"start_character":19,"end_line":133,"end_character":33},"updated":"2021-10-21 14:58:24.000000000","message":"implementation","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"fed275715fa0d5a68cdfc594f2434aba8fd23d4e","unresolved":true,"context_lines":[{"line_number":136,"context_line":"* ``allocate(resources, lease)``: given a resource selected by Blazar and a"},{"line_number":137,"context_line":"  target lease, somehow make the resources available to the lease\u0027s user or"},{"line_number":138,"context_line":"  project."},{"line_number":139,"context_line":"* ``deallocate(resources, lease)``: remove access to the resources from the"},{"line_number":140,"context_line":"  target lease\u0027s user or project."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Every other aspect of Blazar\u0027s business logic is sufficiently generic that it"}],"source_content_type":"text/x-rst","patch_set":3,"id":"4fff5964_08f69f1d","line":139,"range":{"start_line":139,"start_character":0,"end_line":139,"end_character":75},"updated":"2021-11-05 15:31:23.000000000","message":"Does the interface need to expose this? In the current plugins, things are deallocated just in `on_end`.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"95a2ebdd85cfc3168868a7dcf7030b8d5186f446","unresolved":true,"context_lines":[{"line_number":139,"context_line":"* ``deallocate(resources, lease)``: remove access to the resources from the"},{"line_number":140,"context_line":"  target lease\u0027s user or project."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Every other aspect of Blazar\u0027s business logic is sufficiently generic that it"},{"line_number":143,"context_line":"can be handled by a core business logic layer. If desired, additional lease"},{"line_number":144,"context_line":"lifecycle hooks can be implemented by the plugin:"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"10fd6d8d_d37905d7","line":142,"updated":"2021-11-03 21:12:58.000000000","message":"Currently, before blazar allocates, it gets allocation candidates, and passes these to enforcement, which suggests we need something like this for third party plugins as well. Additionally, we may want allocation candidates in the interface, as it allows an early exit, in the case that one of the reservations is invalid. ``allocate()`` may be an expensive operation, and it should be delayed until blazar is is sure all reservations can be made successfully.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"fed275715fa0d5a68cdfc594f2434aba8fd23d4e","unresolved":true,"context_lines":[{"line_number":139,"context_line":"* ``deallocate(resources, lease)``: remove access to the resources from the"},{"line_number":140,"context_line":"  target lease\u0027s user or project."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Every other aspect of Blazar\u0027s business logic is sufficiently generic that it"},{"line_number":143,"context_line":"can be handled by a core business logic layer. If desired, additional lease"},{"line_number":144,"context_line":"lifecycle hooks can be implemented by the plugin:"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa8723fb_28f07833","line":142,"range":{"start_line":142,"start_character":0,"end_line":142,"end_character":77},"updated":"2021-11-05 15:31:23.000000000","message":"We need additional functions to validate create and update parameters.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"3800a33f75423e14473d458fd2ee8ad0118badec","unresolved":true,"context_lines":[{"line_number":144,"context_line":"lifecycle hooks can be implemented by the plugin:"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"* ``on_start(resources, lease)``: triggered when the lease has started."},{"line_number":147,"context_line":"* ``before_end(resources, lease)``: triggered before the lease will end (the"},{"line_number":148,"context_line":"  delay at which this fires is already configurable in Blazar.)"},{"line_number":149,"context_line":"* ``on_end(resources, lease)``: triggered when the lease has terminated."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"REST API layer"}],"source_content_type":"text/x-rst","patch_set":3,"id":"81eb93ee_0eef6096","line":148,"range":{"start_line":147,"start_character":0,"end_line":148,"end_character":63},"updated":"2021-10-21 14:58:24.000000000","message":"It might be useful to have per-plugin configuration of the delay.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"3800a33f75423e14473d458fd2ee8ad0118badec","unresolved":true,"context_lines":[{"line_number":177,"context_line":"Additionally, we propose adding a single new API endpoint that allows end users"},{"line_number":178,"context_line":"to query the list of supported resource types:"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"* ``GET /resources``: returns a list of configured resource types. This will"},{"line_number":181,"context_line":"  display the resource name/type, an optional description set by the plugin,"},{"line_number":182,"context_line":"  and the schema for the resource."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Alternatives"},{"line_number":185,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"e09c5517_805b441e","line":182,"range":{"start_line":180,"start_character":0,"end_line":182,"end_character":34},"updated":"2021-10-21 14:58:24.000000000","message":"I like this.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"2f9e945b7371195bea61e06c41cfe734e82924c7","unresolved":false,"context_lines":[{"line_number":177,"context_line":"Additionally, we propose adding a single new API endpoint that allows end users"},{"line_number":178,"context_line":"to query the list of supported resource types:"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"* ``GET /resources``: returns a list of configured resource types. This will"},{"line_number":181,"context_line":"  display the resource name/type, an optional description set by the plugin,"},{"line_number":182,"context_line":"  and the schema for the resource."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Alternatives"},{"line_number":185,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"18ecbfd2_ea502784","line":182,"range":{"start_line":180,"start_character":0,"end_line":182,"end_character":34},"in_reply_to":"e09c5517_805b441e","updated":"2022-08-25 08:53:31.000000000","message":"I like this too.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"95a2ebdd85cfc3168868a7dcf7030b8d5186f446","unresolved":true,"context_lines":[{"line_number":181,"context_line":"  display the resource name/type, an optional description set by the plugin,"},{"line_number":182,"context_line":"  and the schema for the resource."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Alternatives"},{"line_number":185,"context_line":"------------"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"More of the burden of implementing compatible interfaces, DB accessors, and the"},{"line_number":188,"context_line":"like could be pushed to resource plugin implementations. However, as we have"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fc270e6e_a88a3be1","line":185,"range":{"start_line":184,"start_character":0,"end_line":185,"end_character":12},"updated":"2021-11-03 21:12:58.000000000","message":"Another point is that both the API and manager will need access to the plugins. Should they be extracted into an agent of their own?","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"3800a33f75423e14473d458fd2ee8ad0118badec","unresolved":true,"context_lines":[{"line_number":181,"context_line":"  display the resource name/type, an optional description set by the plugin,"},{"line_number":182,"context_line":"  and the schema for the resource."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Alternatives"},{"line_number":185,"context_line":"------------"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"More of the burden of implementing compatible interfaces, DB accessors, and the"},{"line_number":188,"context_line":"like could be pushed to resource plugin implementations. However, as we have"}],"source_content_type":"text/x-rst","patch_set":3,"id":"441eef1c_89cac7c5","line":185,"range":{"start_line":184,"start_character":0,"end_line":185,"end_character":12},"updated":"2021-10-21 14:58:24.000000000","message":"We can also discuss another alternative: make all resources fit into shared database tables, by storing their unique schema values as a JSON dictionary.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"2f9e945b7371195bea61e06c41cfe734e82924c7","unresolved":true,"context_lines":[{"line_number":181,"context_line":"  display the resource name/type, an optional description set by the plugin,"},{"line_number":182,"context_line":"  and the schema for the resource."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Alternatives"},{"line_number":185,"context_line":"------------"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"More of the burden of implementing compatible interfaces, DB accessors, and the"},{"line_number":188,"context_line":"like could be pushed to resource plugin implementations. However, as we have"}],"source_content_type":"text/x-rst","patch_set":3,"id":"d8e66c3b_946f1a66","line":185,"range":{"start_line":184,"start_character":0,"end_line":185,"end_character":12},"in_reply_to":"441eef1c_89cac7c5","updated":"2022-08-25 08:53:31.000000000","message":"If it is unlikely that Blazar will ever need to query on this data, i.e., it is conceived to be opaque, then it should be a better approach for extension as we don\u0027t risk over-abstracting and can proceed more organically.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"2f9e945b7371195bea61e06c41cfe734e82924c7","unresolved":false,"context_lines":[{"line_number":192,"context_line":"cost. Having a stronger Blazar core also makes it possible to make cross-cutting"},{"line_number":193,"context_line":"improvements to, e.g., the extra capability resource selection filter mechanism,"},{"line_number":194,"context_line":"which adds a simple DSL to allow end users to specifically target certain"},{"line_number":195,"context_line":"resources in their lease request."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"Data model impact"},{"line_number":198,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bdb2a240_dc674194","line":195,"updated":"2022-08-25 08:53:31.000000000","message":"I agree strong core is important.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"3800a33f75423e14473d458fd2ee8ad0118badec","unresolved":true,"context_lines":[{"line_number":197,"context_line":"Data model impact"},{"line_number":198,"context_line":"-----------------"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"As part of simplifying the schema for easier \"drop-in\" plugins, we propose as"},{"line_number":201,"context_line":"part of resource plugins this is resolved by refactoring the"},{"line_number":202,"context_line":"``*_extra_capabilities`` and ``*_allocations`` tables to be a single table with"},{"line_number":203,"context_line":"an additional column that stores the resource type. An index will be created on"},{"line_number":204,"context_line":"this additional column to mitigate performance impact from the increased table"},{"line_number":205,"context_line":"size."},{"line_number":206,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"d4a1a677_14ed4b27","line":203,"range":{"start_line":200,"start_character":0,"end_line":203,"end_character":51},"updated":"2021-10-21 14:58:24.000000000","message":"I can\u0027t quite parse this sentence.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"2f9e945b7371195bea61e06c41cfe734e82924c7","unresolved":true,"context_lines":[{"line_number":197,"context_line":"Data model impact"},{"line_number":198,"context_line":"-----------------"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"As part of simplifying the schema for easier \"drop-in\" plugins, we propose as"},{"line_number":201,"context_line":"part of resource plugins this is resolved by refactoring the"},{"line_number":202,"context_line":"``*_extra_capabilities`` and ``*_allocations`` tables to be a single table with"},{"line_number":203,"context_line":"an additional column that stores the resource type. An index will be created on"},{"line_number":204,"context_line":"this additional column to mitigate performance impact from the increased table"},{"line_number":205,"context_line":"size."},{"line_number":206,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"089a4267_0d82a7a1","line":203,"range":{"start_line":200,"start_character":0,"end_line":203,"end_character":51},"in_reply_to":"d4a1a677_14ed4b27","updated":"2022-08-25 08:53:31.000000000","message":"They propose to merge a set of tables, \u0027\u003csomething\u003e_whatever\u0027 into \u0027whatever\u0027 with all the existing columns plus a column to store \u0027\u003csomething\u003e\u0027. This may impact the performance as it\u0027s no longer that cheap to differentiate \u0027\u003csomething\u003e\u0027s. Unless we go with the \"unify everything and use JSON to store extra metadata\", I disagree it\u0027s the right approach for this spec.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"3800a33f75423e14473d458fd2ee8ad0118badec","unresolved":true,"context_lines":[{"line_number":207,"context_line":"REST API impact"},{"line_number":208,"context_line":"---------------"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"No impact on existing REST APIs. However, as noted, resource plugins will"},{"line_number":211,"context_line":"come with their own additional API endpoints hanging off of a prefix."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"Security impact"},{"line_number":214,"context_line":"---------------"},{"line_number":215,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"16892740_d471e77c","line":212,"range":{"start_line":210,"start_character":0,"end_line":212,"end_character":0},"updated":"2021-10-21 14:58:24.000000000","message":"Plus the /resources API endpoint.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"2f9e945b7371195bea61e06c41cfe734e82924c7","unresolved":true,"context_lines":[{"line_number":239,"context_line":"not make this any worse."},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"The RPC improvements described as part of the \"RPC layer\" discussion are likely"},{"line_number":242,"context_line":"to improve performance overall."},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"Other deployer impact"},{"line_number":245,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"e7d2d544_78f35c53","line":242,"updated":"2022-08-25 08:53:31.000000000","message":"Has the RPC impact on performance been measured? For clean architecture\u0027s sake, I would keep the RPC if it\u0027s not really a bottleneck. Most sensitive ops should be internal to Blazar Manager and its coordination anyway.","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"39a24226fda6c4571bd8b1347eaa489e5359a4d1","unresolved":true,"context_lines":[{"line_number":328,"context_line":""},{"line_number":329,"context_line":"   * - Release Name"},{"line_number":330,"context_line":"     - Description"},{"line_number":331,"context_line":"   * - Xena"},{"line_number":332,"context_line":"     - Introduced"}],"source_content_type":"text/x-rst","patch_set":3,"id":"525d99c3_27bb7f5c","line":331,"range":{"start_line":331,"start_character":7,"end_line":331,"end_character":11},"updated":"2021-10-21 16:00:59.000000000","message":"Yoga","commit_id":"46f904cc43ad0ccc0059375b631a7260d67f61a0"}]}
