)]}'
{"specs/rocky/approved/cyborg-database-model-proposal.rst":[{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"b55f52053b49b035f2247b39470b07e0451edd3d","unresolved":false,"context_lines":[{"line_number":39,"context_line":"When a new device is plugged into the system(host), Cyborg needs to discover"},{"line_number":40,"context_line":"it and store all its related information into the database"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Proposed change"},{"line_number":43,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"We need to add 1 more table to Cyborg database, for the purpose of tracking"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_016abf16","line":42,"updated":"2018-11-08 02:44:26.000000000","message":"As we discussed, please align this with:\nhttps://docs.google.com/document/d/1XLQtvyGJeEgo3ztBQiufWLF-E7S7yGLaYrme8iUPtA0/edit \n\n* The Deployables tree is fine. But please remove the reference to \u0027Dpeloyable-PF\u0027 and \u0027Deployable-VF\u0027. Deployables are distinct from PF and VF, as we discussed.\n\n* Please drop the Accelerators table.\n\n* Please add tables for Attach handles, Device ID etc.","commit_id":"eb1e68e988e5d5ac24e3b6be64ab776728df5927"},{"author":{"_account_id":17813,"name":"wangzhh","email":"wzh_1993@126.com","username":"wangzhh"},"change_message_id":"3e716c5cc0cbb667c87950ab4d720428a08c5439","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Accelerators table now track all the usable/assignable resources, each"},{"line_number":69,"context_line":"deployable should have at least one accelerator associated with it and referred"},{"line_number":70,"context_line":"by deployable_id. Loading a different kernel driver can change the number of"},{"line_number":71,"context_line":"accelerators in the database."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"For example, a network of FPGA hierarchies can be formed using devices,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_804e178e","line":70,"updated":"2018-11-05 07:46:23.000000000","message":"What do you mean \"Loading kernel driver\" here, is it a FPGA specific scenario?","commit_id":"eb1e68e988e5d5ac24e3b6be64ab776728df5927"},{"author":{"_account_id":17813,"name":"wangzhh","email":"wzh_1993@126.com","username":"wangzhh"},"change_message_id":"3e716c5cc0cbb667c87950ab4d720428a08c5439","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"API for retrieving Accelerator\u0027s information::"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    Url: {base_url}/deployables/accelerator/{uuid}"},{"line_number":185,"context_line":"    Method: GET"},{"line_number":186,"context_line":"    URL Params:"},{"line_number":187,"context_line":"        GET: uuid --\u003e get accelerator by uuid"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_a066b355","line":184,"updated":"2018-11-05 07:46:23.000000000","message":"accelerators","commit_id":"eb1e68e988e5d5ac24e3b6be64ab776728df5927"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"6d7e668b798fa060bdbd906069575d8b14409b4c","unresolved":false,"context_lines":[{"line_number":30,"context_line":"For instance, when the user requests FPGA resources, the scheduler will use placement"},{"line_number":31,"context_line":"agent [1]_ to select appropriate hosts that have the requested FPGA resources."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"When a GPU type resource is allocated to a VM, Cyborg needs to track down"},{"line_number":34,"context_line":"which exact device has been assigned in the database. On the other hand, when"},{"line_number":35,"context_line":"the resource is released, Cyborg will need to be detached and free the exact"},{"line_number":36,"context_line":"resource."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_74d2cf00","line":33,"updated":"2018-11-15 22:49:14.000000000","message":"Why only GPU type devices? I think the intention is to say that, when Nova picks a device resource provider for allocation to a VM, Cyborg should locate the corresponding Deployable.","commit_id":"20332303ed9a0bb6934c9da5a106e0384592781d"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"6675c61e34179cbb71cdafc29c960ceef6f898ff","unresolved":false,"context_lines":[{"line_number":30,"context_line":"For instance, when the user requests FPGA resources, the scheduler will use placement"},{"line_number":31,"context_line":"agent [1]_ to select appropriate hosts that have the requested FPGA resources."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"When a GPU type resource is allocated to a VM, Cyborg needs to track down"},{"line_number":34,"context_line":"which exact device has been assigned in the database. On the other hand, when"},{"line_number":35,"context_line":"the resource is released, Cyborg will need to be detached and free the exact"},{"line_number":36,"context_line":"resource."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_ebc8d976","line":33,"in_reply_to":"3f79a3b5_74d2cf00","updated":"2018-11-23 04:20:48.000000000","message":"Done","commit_id":"20332303ed9a0bb6934c9da5a106e0384592781d"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"6d7e668b798fa060bdbd906069575d8b14409b4c","unresolved":false,"context_lines":[{"line_number":35,"context_line":"the resource is released, Cyborg will need to be detached and free the exact"},{"line_number":36,"context_line":"resource."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"When a new device is plugged into the system(host), Cyborg needs to discover"},{"line_number":39,"context_line":"it and store all its related information into the database"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_94ba0bb8","line":38,"updated":"2018-11-15 22:49:14.000000000","message":"Also handle deletion of devices.","commit_id":"20332303ed9a0bb6934c9da5a106e0384592781d"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"6675c61e34179cbb71cdafc29c960ceef6f898ff","unresolved":false,"context_lines":[{"line_number":35,"context_line":"the resource is released, Cyborg will need to be detached and free the exact"},{"line_number":36,"context_line":"resource."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"When a new device is plugged into the system(host), Cyborg needs to discover"},{"line_number":39,"context_line":"it and store all its related information into the database"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_0bc6756a","line":38,"in_reply_to":"3f79a3b5_94ba0bb8","updated":"2018-11-23 04:20:48.000000000","message":"Done","commit_id":"20332303ed9a0bb6934c9da5a106e0384592781d"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"6d7e668b798fa060bdbd906069575d8b14409b4c","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Proposed change"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"We need to add 2 more table to Cyborg database. First one is Devices. The"},{"line_number":45,"context_line":"purpose of it is to track the physical existence of heterogeneous devices."},{"line_number":46,"context_line":"Second one is AttachHandles, which tracks the attachment information needed to"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_54ed538b","line":43,"updated":"2018-11-15 22:49:14.000000000","message":"This spec is missing some tables like DeviceID tables, and subclasses of AttachHandles. \n\nIt would be good to document the device model that this db model reflects. The details of the db schema can be worked out by the developer; but the higher-level understanding of the device/db structure would be invaluable in a spec.\n\nMore importantly, it would be great if you can address upgrade issues and performance issues that arise in ORMs.","commit_id":"20332303ed9a0bb6934c9da5a106e0384592781d"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"6675c61e34179cbb71cdafc29c960ceef6f898ff","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Proposed change"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"We need to add 2 more table to Cyborg database. First one is Devices. The"},{"line_number":45,"context_line":"purpose of it is to track the physical existence of heterogeneous devices."},{"line_number":46,"context_line":"Second one is AttachHandles, which tracks the attachment information needed to"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_abbe61cc","line":43,"in_reply_to":"3f79a3b5_54ed538b","updated":"2018-11-23 04:20:48.000000000","message":"Do we need a separated DeviceID table?","commit_id":"20332303ed9a0bb6934c9da5a106e0384592781d"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"da01633432b3333e8da194b46ef497a2db328ce4","unresolved":false,"context_lines":[{"line_number":76,"context_line":"accelerator is assigned, Cyborg creates an attach handle pointing to the"},{"line_number":77,"context_line":"corresponding deployable"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"For example, a network of FPGA hierarchies can be formed using devices,"},{"line_number":80,"context_line":"deployables, accelerators, and attributes in the following scheme::"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"                                -------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_8fc2cd53","line":79,"range":{"start_line":79,"start_character":26,"end_line":79,"end_character":30},"updated":"2018-11-20 02:56:39.000000000","message":"This is our general model for all devices, not only FPGAs.","commit_id":"20332303ed9a0bb6934c9da5a106e0384592781d"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"6675c61e34179cbb71cdafc29c960ceef6f898ff","unresolved":false,"context_lines":[{"line_number":76,"context_line":"accelerator is assigned, Cyborg creates an attach handle pointing to the"},{"line_number":77,"context_line":"corresponding deployable"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"For example, a network of FPGA hierarchies can be formed using devices,"},{"line_number":80,"context_line":"deployables, accelerators, and attributes in the following scheme::"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"                                -------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_cbbb9ddb","line":79,"range":{"start_line":79,"start_character":26,"end_line":79,"end_character":30},"in_reply_to":"3f79a3b5_8fc2cd53","updated":"2018-11-23 04:20:48.000000000","message":"Done","commit_id":"20332303ed9a0bb6934c9da5a106e0384592781d"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"da01633432b3333e8da194b46ef497a2db328ce4","unresolved":false,"context_lines":[{"line_number":100,"context_line":"         /deployable_id  \\                    |    -------------"},{"line_number":101,"context_line":"    -----------------     -----------------   |     -------------"},{"line_number":102,"context_line":"    |Attach Handle A|     |Attach Handle B|   |---- |Attribute B|"},{"line_number":103,"context_line":"    -----------------     -----------------         -------------"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Attributes table should stay the same as before, which consists of a key and a"},{"line_number":106,"context_line":"value columns to represent arbitrary k-v pairs. it has"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_af922954","line":103,"updated":"2018-11-20 02:56:39.000000000","message":"This picture shows attach handles as associated with Deployables. This is fine for some devices but others may have a pool of AHs at the device level. This needs further discussion.","commit_id":"20332303ed9a0bb6934c9da5a106e0384592781d"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"6d7e668b798fa060bdbd906069575d8b14409b4c","unresolved":false,"context_lines":[{"line_number":144,"context_line":"In addition, the Deployables and Accelerators will be changed to the following"},{"line_number":145,"context_line":"scheme::"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    CREATE TABLE Deployables"},{"line_number":148,"context_line":"      ("},{"line_number":149,"context_line":"        id           INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":150,"context_line":"        parent_id    INTEGER ,              /*Pointer to the parent deployable\u0027s primary key*/"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_f4057f69","line":147,"updated":"2018-11-15 22:49:14.000000000","message":"Just curious: is this the best way to describe the schema for an object-relational db like SqlAlchemy? I have seen the schema described as Python classes e.g.\n   https://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/models.py \n\nThis can express subclass relationships among objects, such as AttachHandle and AttachHandlePCI, which may not be obvious/clear in a SQL statement.","commit_id":"20332303ed9a0bb6934c9da5a106e0384592781d"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"6675c61e34179cbb71cdafc29c960ceef6f898ff","unresolved":false,"context_lines":[{"line_number":144,"context_line":"In addition, the Deployables and Accelerators will be changed to the following"},{"line_number":145,"context_line":"scheme::"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    CREATE TABLE Deployables"},{"line_number":148,"context_line":"      ("},{"line_number":149,"context_line":"        id           INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":150,"context_line":"        parent_id    INTEGER ,              /*Pointer to the parent deployable\u0027s primary key*/"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_0bdd153e","line":147,"in_reply_to":"3f79a3b5_f4057f69","updated":"2018-11-23 04:20:48.000000000","message":"This is a DB spec, so it only discusses the DB scheme. How to implement the Object is a different story.","commit_id":"20332303ed9a0bb6934c9da5a106e0384592781d"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"6d7e668b798fa060bdbd906069575d8b14409b4c","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        name         VARCHAR2 (32 BYTE) ,   /*Name of the deployable*/"},{"line_number":154,"context_line":"        uuid         VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the deployable itself*/"},{"line_number":155,"context_line":"        node_id      VARCHAR2 (32 BYTE) ,   /*uuid v4 format to identify which host this deployable is located*/"},{"line_number":156,"context_line":"        board        VARCHAR2 (16 BYTE) ,   /*Identify the model of the deployable(e.g. KU115)*/"},{"line_number":157,"context_line":"        vendor       VARCHAR2 (16 BYTE) ,   /*Identify the vendor of the deployable(e.g. Xilinx)*/"},{"line_number":158,"context_line":"        version      VARCHAR2 (32 BYTE) ,   /*Identify the version of the deployable(e.g. 1.2a)*/"},{"line_number":159,"context_line":"        type         VARCHAR2 (32) ,        /*Identify the type of the deployable(e.g. FPGA/GPU/NPU)*/"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_d41c03c5","line":156,"updated":"2018-11-15 22:49:14.000000000","message":"A Deployable is not a PCI card. It does not have board info, vendor, etc. Those data are in Device table.","commit_id":"20332303ed9a0bb6934c9da5a106e0384592781d"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"6d7e668b798fa060bdbd906069575d8b14409b4c","unresolved":false,"context_lines":[{"line_number":163,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_devices_FK FOREIGN KEY ( device_id ) REFERENCES devices ( id ) ON"},{"line_number":164,"context_line":"    DELETE CASCADE ;"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    CREATE TABLE AttachHandles"},{"line_number":167,"context_line":"      ("},{"line_number":168,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":169,"context_line":"        name             VARCHAR2 (32 BYTE) ,   /*Name of the accelerator*/"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_3471b714","line":166,"updated":"2018-11-15 22:49:14.000000000","message":"How would you express the fact that AttachHandlePCI is a subclass of AttachHandle class?\n\nWe need to add DeviceID class and its subclasses as well.","commit_id":"20332303ed9a0bb6934c9da5a106e0384592781d"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"6675c61e34179cbb71cdafc29c960ceef6f898ff","unresolved":false,"context_lines":[{"line_number":163,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_devices_FK FOREIGN KEY ( device_id ) REFERENCES devices ( id ) ON"},{"line_number":164,"context_line":"    DELETE CASCADE ;"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    CREATE TABLE AttachHandles"},{"line_number":167,"context_line":"      ("},{"line_number":168,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":169,"context_line":"        name             VARCHAR2 (32 BYTE) ,   /*Name of the accelerator*/"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_cbe2bdff","line":166,"in_reply_to":"3f79a3b5_3471b714","updated":"2018-11-23 04:20:48.000000000","message":"That would be in the Object class code not a DB scheme thing.","commit_id":"20332303ed9a0bb6934c9da5a106e0384592781d"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"6d7e668b798fa060bdbd906069575d8b14409b4c","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    CREATE TABLE AttachHandles"},{"line_number":167,"context_line":"      ("},{"line_number":168,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":169,"context_line":"        name             VARCHAR2 (32 BYTE) ,   /*Name of the accelerator*/"},{"line_number":170,"context_line":"        attach_info      VARCHAR2 (32 BYTE) ,   /*information needed to attach the accelerator to VMs*/"},{"line_number":171,"context_line":"        instance_id      VARCHAR2 (32 BYTE) ,   /*Represent which instance this accelerator has been assigned to*/"},{"line_number":172,"context_line":"        uuid             VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the AttachHandle itself*/"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_946beb1a","line":169,"updated":"2018-11-15 22:49:14.000000000","message":"What is the name field?","commit_id":"20332303ed9a0bb6934c9da5a106e0384592781d"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"da01633432b3333e8da194b46ef497a2db328ce4","unresolved":false,"context_lines":[{"line_number":175,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT AttachHandles_PK PRIMARY KEY ( id ) ;"},{"line_number":176,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT AttachHandles_devices_FK FOREIGN KEY ( deployable_id ) REFERENCES deployables ( id ) ON"},{"line_number":177,"context_line":"    DELETE CASCADE ;"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"RPC API impact"},{"line_number":180,"context_line":"---------------"},{"line_number":181,"context_line":"The existing two sets of conductor APIs should not be changed. 1 set for"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_2f8059f6","line":178,"updated":"2018-11-20 02:56:39.000000000","message":"How do we handle the Quota and Reservation tables?","commit_id":"20332303ed9a0bb6934c9da5a106e0384592781d"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"6d7e668b798fa060bdbd906069575d8b14409b4c","unresolved":false,"context_lines":[{"line_number":190,"context_line":""},{"line_number":191,"context_line":"API for retrieving AttachHandles\u0027s information::"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    Url: {base_url}/deployables/attach_handle/{uuid}"},{"line_number":194,"context_line":"    Method: GET"},{"line_number":195,"context_line":"    URL Params:"},{"line_number":196,"context_line":"        GET: uuid --\u003e get attach handle by uuid"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_d44ac3ac","line":193,"updated":"2018-11-15 22:49:14.000000000","message":"Why do we need these REST APIs? Every API imposes a burden of preserving backwards compatibility; so, IMHO, we should keep the API set minimal.\n\nSecondly, this API implicitly associates attach handles with deployables? That is not true for all devices. Some devices may have just a pool of AHs.","commit_id":"20332303ed9a0bb6934c9da5a106e0384592781d"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"6675c61e34179cbb71cdafc29c960ceef6f898ff","unresolved":false,"context_lines":[{"line_number":190,"context_line":""},{"line_number":191,"context_line":"API for retrieving AttachHandles\u0027s information::"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    Url: {base_url}/deployables/attach_handle/{uuid}"},{"line_number":194,"context_line":"    Method: GET"},{"line_number":195,"context_line":"    URL Params:"},{"line_number":196,"context_line":"        GET: uuid --\u003e get attach handle by uuid"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_6bb5a9ef","line":193,"in_reply_to":"3f79a3b5_d44ac3ac","updated":"2018-11-23 04:20:48.000000000","message":"we can discuss the need for rest apis offline.","commit_id":"20332303ed9a0bb6934c9da5a106e0384592781d"},{"author":{"_account_id":22899,"name":"coco-Gao","email":"419546439@qq.com","username":"Coco"},"change_message_id":"942f5894b2696085d521fd7618d3706e900fe700","unresolved":false,"context_lines":[{"line_number":134,"context_line":"As discussed in previous sections, 1 table will be added: Devices::"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    CREATE TABLE Devices"},{"line_number":138,"context_line":"      ("},{"line_number":139,"context_line":"        id                INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":140,"context_line":"        uuid              VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the device itself*/"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_6bacac86","line":137,"range":{"start_line":137,"start_character":17,"end_line":137,"end_character":24},"updated":"2018-12-17 14:25:40.000000000","message":"Can this store \"remotable\" information, or just no need to identify whether this device can be used remotely or not?","commit_id":"a1aa284b3ff7d5855fca8d29a48af0bf47aa4bf5"},{"author":{"_account_id":22899,"name":"coco-Gao","email":"419546439@qq.com","username":"Coco"},"change_message_id":"942f5894b2696085d521fd7618d3706e900fe700","unresolved":false,"context_lines":[{"line_number":138,"context_line":"      ("},{"line_number":139,"context_line":"        id                INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":140,"context_line":"        uuid              VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the device itself*/"},{"line_number":141,"context_line":"        type              VARCHAR2 (32 BYTE) ,   /*Name of the device*/"},{"line_number":142,"context_line":"        std_board_info    TEXT ,   /*A dictionary with standard fields*/"},{"line_number":143,"context_line":"        vendor_board_info TEXT ,   /*a dictionary with driver-specific keys*/"},{"line_number":144,"context_line":"        node_id           VARCHAR2 (32 BYTE)     /*uuid v4 format to identify which host this device is located*/"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_8f403b60","line":141,"range":{"start_line":141,"start_character":8,"end_line":141,"end_character":12},"updated":"2018-12-17 14:25:40.000000000","message":"Is \"type\" field used to identify PCI or mdev?\nbesides, which field is used to store PF\u0027s PCI address? Is that no longer be stored? or in the AttachHandle table\u0027s attach-info field? Think about the manageable PF, which do not have attach-handles, but still have PCI address.","commit_id":"a1aa284b3ff7d5855fca8d29a48af0bf47aa4bf5"},{"author":{"_account_id":22899,"name":"coco-Gao","email":"419546439@qq.com","username":"Coco"},"change_message_id":"4f93f8cc3ccd0851402c6ef92f2fdfe1c230a5ac","unresolved":false,"context_lines":[{"line_number":138,"context_line":"      ("},{"line_number":139,"context_line":"        id                INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":140,"context_line":"        uuid              VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the device itself*/"},{"line_number":141,"context_line":"        type              VARCHAR2 (32 BYTE) ,   /*Name of the device*/"},{"line_number":142,"context_line":"        std_board_info    TEXT ,   /*A dictionary with standard fields*/"},{"line_number":143,"context_line":"        vendor_board_info TEXT ,   /*a dictionary with driver-specific keys*/"},{"line_number":144,"context_line":"        node_id           VARCHAR2 (32 BYTE)     /*uuid v4 format to identify which host this device is located*/"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_b5d8367d","line":141,"range":{"start_line":141,"start_character":8,"end_line":141,"end_character":12},"in_reply_to":"3f79a3b5_8f403b60","updated":"2018-12-17 14:36:49.000000000","message":"Done","commit_id":"a1aa284b3ff7d5855fca8d29a48af0bf47aa4bf5"},{"author":{"_account_id":22899,"name":"coco-Gao","email":"419546439@qq.com","username":"Coco"},"change_message_id":"942f5894b2696085d521fd7618d3706e900fe700","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        id                INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":140,"context_line":"        uuid              VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the device itself*/"},{"line_number":141,"context_line":"        type              VARCHAR2 (32 BYTE) ,   /*Name of the device*/"},{"line_number":142,"context_line":"        std_board_info    TEXT ,   /*A dictionary with standard fields*/"},{"line_number":143,"context_line":"        vendor_board_info TEXT ,   /*a dictionary with driver-specific keys*/"},{"line_number":144,"context_line":"        node_id           VARCHAR2 (32 BYTE)     /*uuid v4 format to identify which host this device is located*/"},{"line_number":145,"context_line":"      ) ;"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_700ed73c","line":142,"range":{"start_line":142,"start_character":8,"end_line":142,"end_character":22},"updated":"2018-12-17 14:25:40.000000000","message":"std_board_info means board or product_id of the hardware? Do we need to store them seperate?","commit_id":"a1aa284b3ff7d5855fca8d29a48af0bf47aa4bf5"},{"author":{"_account_id":22899,"name":"coco-Gao","email":"419546439@qq.com","username":"Coco"},"change_message_id":"4f93f8cc3ccd0851402c6ef92f2fdfe1c230a5ac","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        id                INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":140,"context_line":"        uuid              VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the device itself*/"},{"line_number":141,"context_line":"        type              VARCHAR2 (32 BYTE) ,   /*Name of the device*/"},{"line_number":142,"context_line":"        std_board_info    TEXT ,   /*A dictionary with standard fields*/"},{"line_number":143,"context_line":"        vendor_board_info TEXT ,   /*a dictionary with driver-specific keys*/"},{"line_number":144,"context_line":"        node_id           VARCHAR2 (32 BYTE)     /*uuid v4 format to identify which host this device is located*/"},{"line_number":145,"context_line":"      ) ;"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_15c32a8e","line":142,"range":{"start_line":142,"start_character":8,"end_line":142,"end_character":22},"in_reply_to":"3f79a3b5_700ed73c","updated":"2018-12-17 14:36:49.000000000","message":"Done","commit_id":"a1aa284b3ff7d5855fca8d29a48af0bf47aa4bf5"},{"author":{"_account_id":22899,"name":"coco-Gao","email":"419546439@qq.com","username":"Coco"},"change_message_id":"942f5894b2696085d521fd7618d3706e900fe700","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        id           INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":154,"context_line":"        parent_id    INTEGER ,              /*Pointer to the parent deployable\u0027s primary key*/"},{"line_number":155,"context_line":"        root_id      INTEGER ,              /*Pointer to the root deployable\u0027s primary key*/"},{"line_number":156,"context_line":"        num_accelerators   INTEGER ,        /*Pointer to the root deployable\u0027s primary key*/"},{"line_number":157,"context_line":"        name         VARCHAR2 (32 BYTE) ,   /*Name of the deployable*/"},{"line_number":158,"context_line":"        uuid         VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the deployable itself*/"},{"line_number":159,"context_line":"        node_id      VARCHAR2 (32 BYTE) ,   /*uuid v4 format to identify which host this deployable is located*/"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_210c9b38","line":156,"range":{"start_line":156,"start_character":45,"end_line":156,"end_character":92},"updated":"2018-12-17 14:25:40.000000000","message":"Attach Handler\u0027s number?","commit_id":"a1aa284b3ff7d5855fca8d29a48af0bf47aa4bf5"},{"author":{"_account_id":22899,"name":"coco-Gao","email":"419546439@qq.com","username":"Coco"},"change_message_id":"4f93f8cc3ccd0851402c6ef92f2fdfe1c230a5ac","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        id           INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":154,"context_line":"        parent_id    INTEGER ,              /*Pointer to the parent deployable\u0027s primary key*/"},{"line_number":155,"context_line":"        root_id      INTEGER ,              /*Pointer to the root deployable\u0027s primary key*/"},{"line_number":156,"context_line":"        num_accelerators   INTEGER ,        /*Pointer to the root deployable\u0027s primary key*/"},{"line_number":157,"context_line":"        name         VARCHAR2 (32 BYTE) ,   /*Name of the deployable*/"},{"line_number":158,"context_line":"        uuid         VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the deployable itself*/"},{"line_number":159,"context_line":"        node_id      VARCHAR2 (32 BYTE) ,   /*uuid v4 format to identify which host this deployable is located*/"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_d5bcd209","line":156,"range":{"start_line":156,"start_character":45,"end_line":156,"end_character":92},"in_reply_to":"3f79a3b5_210c9b38","updated":"2018-12-17 14:36:49.000000000","message":"Done","commit_id":"a1aa284b3ff7d5855fca8d29a48af0bf47aa4bf5"},{"author":{"_account_id":22899,"name":"coco-Gao","email":"419546439@qq.com","username":"Coco"},"change_message_id":"942f5894b2696085d521fd7618d3706e900fe700","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        node_id      VARCHAR2 (32 BYTE) ,   /*uuid v4 format to identify which host this deployable is located*/"},{"line_number":160,"context_line":"        version      VARCHAR2 (32 BYTE) ,   /*Identify the version of the deployable(e.g. 1.2a)*/"},{"line_number":161,"context_line":"        type         VARCHAR2 (32) ,        /*Identify the type of the deployable(e.g. FPGA/GPU/NPU)*/"},{"line_number":162,"context_line":"        device_id    INTEGER NOT NULL       /*foreign key references to the accelerator table*/"},{"line_number":163,"context_line":"      ) ;"},{"line_number":164,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_PK PRIMARY KEY ( id ) ;"},{"line_number":165,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_devices_FK FOREIGN KEY ( device_id ) REFERENCES devices ( id ) ON"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_cf187384","line":162,"range":{"start_line":162,"start_character":76,"end_line":162,"end_character":87},"updated":"2018-12-17 14:25:40.000000000","message":"Device?","commit_id":"a1aa284b3ff7d5855fca8d29a48af0bf47aa4bf5"},{"author":{"_account_id":22899,"name":"coco-Gao","email":"419546439@qq.com","username":"Coco"},"change_message_id":"4f93f8cc3ccd0851402c6ef92f2fdfe1c230a5ac","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        node_id      VARCHAR2 (32 BYTE) ,   /*uuid v4 format to identify which host this deployable is located*/"},{"line_number":160,"context_line":"        version      VARCHAR2 (32 BYTE) ,   /*Identify the version of the deployable(e.g. 1.2a)*/"},{"line_number":161,"context_line":"        type         VARCHAR2 (32) ,        /*Identify the type of the deployable(e.g. FPGA/GPU/NPU)*/"},{"line_number":162,"context_line":"        device_id    INTEGER NOT NULL       /*foreign key references to the accelerator table*/"},{"line_number":163,"context_line":"      ) ;"},{"line_number":164,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_PK PRIMARY KEY ( id ) ;"},{"line_number":165,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_devices_FK FOREIGN KEY ( device_id ) REFERENCES devices ( id ) ON"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_b5b1162f","line":162,"range":{"start_line":162,"start_character":76,"end_line":162,"end_character":87},"in_reply_to":"3f79a3b5_cf187384","updated":"2018-12-17 14:36:49.000000000","message":"Done","commit_id":"a1aa284b3ff7d5855fca8d29a48af0bf47aa4bf5"},{"author":{"_account_id":22899,"name":"coco-Gao","email":"419546439@qq.com","username":"Coco"},"change_message_id":"942f5894b2696085d521fd7618d3706e900fe700","unresolved":false,"context_lines":[{"line_number":168,"context_line":"    CREATE TABLE AttachHandles"},{"line_number":169,"context_line":"      ("},{"line_number":170,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":171,"context_line":"        attach_info      VARCHAR2 (32 BYTE) ,   /*information needed to attach the accelerator to VMs*/"},{"line_number":172,"context_line":"        instance_id      VARCHAR2 (32 BYTE) ,   /*Represent which instance this accelerator has been assigned to*/"},{"line_number":173,"context_line":"        uuid             VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the AttachHandle itself*/"},{"line_number":174,"context_line":"        deployable_id    INTEGER NOT NULL     /*foreign key references to the deployables table*/"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_411bd782","line":171,"range":{"start_line":171,"start_character":8,"end_line":171,"end_character":19},"updated":"2018-12-17 14:25:40.000000000","message":"Like PCI address or mdev path?","commit_id":"a1aa284b3ff7d5855fca8d29a48af0bf47aa4bf5"},{"author":{"_account_id":22899,"name":"coco-Gao","email":"419546439@qq.com","username":"Coco"},"change_message_id":"4f93f8cc3ccd0851402c6ef92f2fdfe1c230a5ac","unresolved":false,"context_lines":[{"line_number":168,"context_line":"    CREATE TABLE AttachHandles"},{"line_number":169,"context_line":"      ("},{"line_number":170,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":171,"context_line":"        attach_info      VARCHAR2 (32 BYTE) ,   /*information needed to attach the accelerator to VMs*/"},{"line_number":172,"context_line":"        instance_id      VARCHAR2 (32 BYTE) ,   /*Represent which instance this accelerator has been assigned to*/"},{"line_number":173,"context_line":"        uuid             VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the AttachHandle itself*/"},{"line_number":174,"context_line":"        deployable_id    INTEGER NOT NULL     /*foreign key references to the deployables table*/"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_353bc69a","line":171,"range":{"start_line":171,"start_character":8,"end_line":171,"end_character":19},"in_reply_to":"3f79a3b5_411bd782","updated":"2018-12-17 14:36:49.000000000","message":"Done","commit_id":"a1aa284b3ff7d5855fca8d29a48af0bf47aa4bf5"},{"author":{"_account_id":22899,"name":"coco-Gao","email":"419546439@qq.com","username":"Coco"},"change_message_id":"942f5894b2696085d521fd7618d3706e900fe700","unresolved":false,"context_lines":[{"line_number":321,"context_line":"Implementation"},{"line_number":322,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"Assignee(s)"},{"line_number":325,"context_line":"-----------"},{"line_number":326,"context_line":"Primary assignee:"},{"line_number":327,"context_line":"  Zhenghao Wang \u003cwangzh21@lenovo.com\u003e"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_44c7653e","line":324,"range":{"start_line":324,"start_character":0,"end_line":324,"end_character":11},"updated":"2018-12-17 14:25:40.000000000","message":"Better to add Xinran so as to check whether the new DB schema is suitable for Nova attachment and placement update.","commit_id":"a1aa284b3ff7d5855fca8d29a48af0bf47aa4bf5"}],"specs/stein/approved/cyborg-database-model-proposal.rst":[{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":50,"context_line":"Second one is AttachHandles, which tracks the attachment information needed to"},{"line_number":51,"context_line":"attach an accelerator to a VM. Thrid one is ControlPathID table, which"},{"line_number":52,"context_line":"essentially is containing device specific information on where the"},{"line_number":53,"context_line":"accelerator is located and ready to be attached. The forth one is ARQs"},{"line_number":54,"context_line":"(accelerator requests) table. It is a syncing point with Nova for accelerator"},{"line_number":55,"context_line":"requests. At last, DeviceProfiles table is also added. It tracks the set of"},{"line_number":56,"context_line":"requirements for accelerators."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_7257ff29","line":53,"range":{"start_line":53,"start_character":53,"end_line":53,"end_character":58},"updated":"2018-12-05 13:47:07.000000000","message":"Nit:typo","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":50,"context_line":"Second one is AttachHandles, which tracks the attachment information needed to"},{"line_number":51,"context_line":"attach an accelerator to a VM. Thrid one is ControlPathID table, which"},{"line_number":52,"context_line":"essentially is containing device specific information on where the"},{"line_number":53,"context_line":"accelerator is located and ready to be attached. The forth one is ARQs"},{"line_number":54,"context_line":"(accelerator requests) table. It is a syncing point with Nova for accelerator"},{"line_number":55,"context_line":"requests. At last, DeviceProfiles table is also added. It tracks the set of"},{"line_number":56,"context_line":"requirements for accelerators."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_92873b16","line":53,"range":{"start_line":53,"start_character":66,"end_line":53,"end_character":70},"updated":"2018-12-05 13:47:07.000000000","message":"This will be the ExtARQ table, where each row contains the fields of the ARQ, as well as Cyborg-private fields.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":50,"context_line":"Second one is AttachHandles, which tracks the attachment information needed to"},{"line_number":51,"context_line":"attach an accelerator to a VM. Thrid one is ControlPathID table, which"},{"line_number":52,"context_line":"essentially is containing device specific information on where the"},{"line_number":53,"context_line":"accelerator is located and ready to be attached. The forth one is ARQs"},{"line_number":54,"context_line":"(accelerator requests) table. It is a syncing point with Nova for accelerator"},{"line_number":55,"context_line":"requests. At last, DeviceProfiles table is also added. It tracks the set of"},{"line_number":56,"context_line":"requirements for accelerators."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_302c0648","line":53,"range":{"start_line":53,"start_character":53,"end_line":53,"end_character":58},"in_reply_to":"3f79a3b5_7257ff29","updated":"2018-12-06 05:06:26.000000000","message":"Done","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":50,"context_line":"Second one is AttachHandles, which tracks the attachment information needed to"},{"line_number":51,"context_line":"attach an accelerator to a VM. Thrid one is ControlPathID table, which"},{"line_number":52,"context_line":"essentially is containing device specific information on where the"},{"line_number":53,"context_line":"accelerator is located and ready to be attached. The forth one is ARQs"},{"line_number":54,"context_line":"(accelerator requests) table. It is a syncing point with Nova for accelerator"},{"line_number":55,"context_line":"requests. At last, DeviceProfiles table is also added. It tracks the set of"},{"line_number":56,"context_line":"requirements for accelerators."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_f008ced7","line":53,"range":{"start_line":53,"start_character":66,"end_line":53,"end_character":70},"in_reply_to":"3f79a3b5_92873b16","updated":"2018-12-06 05:06:26.000000000","message":"I remember we agreed there will be only one table. but expose different fields by having 2 different objects (ARQ and ExtARQ)","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"c9b535271857bc7b587261625d0968d5ef240b2b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"Second one is AttachHandles, which tracks the attachment information needed to"},{"line_number":51,"context_line":"attach an accelerator to a VM. Thrid one is ControlPathID table, which"},{"line_number":52,"context_line":"essentially is containing device specific information on where the"},{"line_number":53,"context_line":"accelerator is located and ready to be attached. The forth one is ARQs"},{"line_number":54,"context_line":"(accelerator requests) table. It is a syncing point with Nova for accelerator"},{"line_number":55,"context_line":"requests. At last, DeviceProfiles table is also added. It tracks the set of"},{"line_number":56,"context_line":"requirements for accelerators."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_f59732e8","line":53,"range":{"start_line":53,"start_character":66,"end_line":53,"end_character":70},"in_reply_to":"3f79a3b5_f008ced7","updated":"2018-12-10 18:47:58.000000000","message":"Yes. That one table is the ExtARQ table, since it contains Cyborg-private fields too.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":73,"context_line":"case the Cyborg driver needs to know how to handle these."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"ARQs table tracks the accelerator requests which are sent by Nova. It contains"},{"line_number":76,"context_line":"fields both Nova acknowledgeable as well as only Cyborg specific. For the fileds"},{"line_number":77,"context_line":"that are Nova acknowledgeable, they will be used to form ARQ objects. On the"},{"line_number":78,"context_line":"other hand, for cyborg specifc fields, they will be used to form ARQExt objects."},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_7275bf33","line":76,"range":{"start_line":76,"start_character":74,"end_line":76,"end_character":80},"updated":"2018-12-05 13:47:07.000000000","message":"Nit: typo","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":73,"context_line":"case the Cyborg driver needs to know how to handle these."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"ARQs table tracks the accelerator requests which are sent by Nova. It contains"},{"line_number":76,"context_line":"fields both Nova acknowledgeable as well as only Cyborg specific. For the fileds"},{"line_number":77,"context_line":"that are Nova acknowledgeable, they will be used to form ARQ objects. On the"},{"line_number":78,"context_line":"other hand, for cyborg specifc fields, they will be used to form ARQExt objects."},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_b017b6ef","line":76,"range":{"start_line":76,"start_character":74,"end_line":76,"end_character":80},"in_reply_to":"3f79a3b5_7275bf33","updated":"2018-12-06 05:06:26.000000000","message":"Done","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":75,"context_line":"ARQs table tracks the accelerator requests which are sent by Nova. It contains"},{"line_number":76,"context_line":"fields both Nova acknowledgeable as well as only Cyborg specific. For the fileds"},{"line_number":77,"context_line":"that are Nova acknowledgeable, they will be used to form ARQ objects. On the"},{"line_number":78,"context_line":"other hand, for cyborg specifc fields, they will be used to form ARQExt objects."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"DeviceProfiles table tracks  the set of requirements for accelerators. A device"},{"line_number":81,"context_line":"profile is a named set of the user requirements for one or more"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_326f4762","line":78,"range":{"start_line":78,"start_character":65,"end_line":78,"end_character":71},"updated":"2018-12-05 13:47:07.000000000","message":"ExtARQ","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":75,"context_line":"ARQs table tracks the accelerator requests which are sent by Nova. It contains"},{"line_number":76,"context_line":"fields both Nova acknowledgeable as well as only Cyborg specific. For the fileds"},{"line_number":77,"context_line":"that are Nova acknowledgeable, they will be used to form ARQ objects. On the"},{"line_number":78,"context_line":"other hand, for cyborg specifc fields, they will be used to form ARQExt objects."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"DeviceProfiles table tracks  the set of requirements for accelerators. A device"},{"line_number":81,"context_line":"profile is a named set of the user requirements for one or more"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_5010a2f5","line":78,"range":{"start_line":78,"start_character":65,"end_line":78,"end_character":71},"in_reply_to":"3f79a3b5_326f4762","updated":"2018-12-06 05:06:26.000000000","message":"Done","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":77,"context_line":"that are Nova acknowledgeable, they will be used to form ARQ objects. On the"},{"line_number":78,"context_line":"other hand, for cyborg specifc fields, they will be used to form ARQExt objects."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"DeviceProfiles table tracks  the set of requirements for accelerators. A device"},{"line_number":81,"context_line":"profile is a named set of the user requirements for one or more"},{"line_number":82,"context_line":"accelerators. It can be viewed as a flavor for devices. Broadly it includes"},{"line_number":83,"context_line":"two things: the desired amounts of specific resource classes and the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_b2903743","line":80,"range":{"start_line":80,"start_character":0,"end_line":80,"end_character":14},"updated":"2018-12-05 13:47:07.000000000","message":"It would be good to reference the device profiles spec.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":77,"context_line":"that are Nova acknowledgeable, they will be used to form ARQ objects. On the"},{"line_number":78,"context_line":"other hand, for cyborg specifc fields, they will be used to form ARQExt objects."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"DeviceProfiles table tracks  the set of requirements for accelerators. A device"},{"line_number":81,"context_line":"profile is a named set of the user requirements for one or more"},{"line_number":82,"context_line":"accelerators. It can be viewed as a flavor for devices. Broadly it includes"},{"line_number":83,"context_line":"two things: the desired amounts of specific resource classes and the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_70e27e01","line":80,"range":{"start_line":80,"start_character":0,"end_line":80,"end_character":14},"in_reply_to":"3f79a3b5_b2903743","updated":"2018-12-06 05:06:26.000000000","message":"Done","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":127,"context_line":"          /             \\       deployable_id | |--|Attribute A|"},{"line_number":128,"context_line":"         /deployable_id  \\                    |    -------------"},{"line_number":129,"context_line":"    -----------------     -----------------   |     -------------"},{"line_number":130,"context_line":"    |Attach Handle A|     |Attach Handle B|   |---- |Attribute B|"},{"line_number":131,"context_line":"    -----------------     -----------------         -------------"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Attributes table should stay the same as before, which consists of a key and a"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_f2222f0e","line":130,"range":{"start_line":130,"start_character":5,"end_line":130,"end_character":18},"updated":"2018-12-05 13:47:07.000000000","message":"Attach Handle and Control Path IDs go with Device, not Deployable.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":127,"context_line":"          /             \\       deployable_id | |--|Attribute A|"},{"line_number":128,"context_line":"         /deployable_id  \\                    |    -------------"},{"line_number":129,"context_line":"    -----------------     -----------------   |     -------------"},{"line_number":130,"context_line":"    |Attach Handle A|     |Attach Handle B|   |---- |Attribute B|"},{"line_number":131,"context_line":"    -----------------     -----------------         -------------"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Attributes table should stay the same as before, which consists of a key and a"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_309f2665","line":130,"range":{"start_line":130,"start_character":5,"end_line":130,"end_character":18},"in_reply_to":"3f79a3b5_f2222f0e","updated":"2018-12-06 05:06:26.000000000","message":"I remember Attach Handle spawns when the request of the accelerator comes in. We can discuss this offline","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":154,"context_line":"scripts for them. Overall the maintenance work is tedious."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Data model impact"},{"line_number":157,"context_line":"-----------------"},{"line_number":158,"context_line":"As discussed in previous sections, 1 table will be added: Devices::"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_0d00f0af","line":157,"updated":"2018-12-05 13:47:07.000000000","message":"Control Path Interface table needs to be added.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":154,"context_line":"scripts for them. Overall the maintenance work is tedious."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Data model impact"},{"line_number":157,"context_line":"-----------------"},{"line_number":158,"context_line":"As discussed in previous sections, 1 table will be added: Devices::"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_1088ea17","line":157,"in_reply_to":"3f79a3b5_0d00f0af","updated":"2018-12-06 05:06:26.000000000","message":"Done","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":158,"context_line":"As discussed in previous sections, 1 table will be added: Devices::"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    CREATE TABLE Devices"},{"line_number":162,"context_line":"      ("},{"line_number":163,"context_line":"        id                INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":164,"context_line":"        uuid              VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the device itself*/"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_b23d97e7","line":161,"updated":"2018-12-05 13:47:07.000000000","message":"IMHO, the SQL syntax is not the best way to specify/document the db tables, for 2 reasons:\n* It doesn\u0027t let us express data types accurately (e.g. whether a string is a name or UUID or whatever). Only the name of the field can reflect that.\n* The code uses other syntax, whether models.py or the alembic migration scripts.\n\nAlso, there is no info in these tables on nullable, unique, etc.\n\nBut, if that\u0027s what you are comfortable with, we can go with it.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    CREATE TABLE Devices"},{"line_number":162,"context_line":"      ("},{"line_number":163,"context_line":"        id                INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":164,"context_line":"        uuid              VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the device itself*/"},{"line_number":165,"context_line":"        std_board_info    TEXT ,   /*A dictionary with standard fields*/"},{"line_number":166,"context_line":"        vendor_board_info TEXT ,   /*A dictionary with driver-specific keys*/"},{"line_number":167,"context_line":"        type              VARCHAR2 (30 BYTE)     /*Device Type*/"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_ede7b4ad","line":164,"updated":"2018-12-05 13:47:07.000000000","message":"A string representation of a UUID takes 36 bytes.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    CREATE TABLE Devices"},{"line_number":162,"context_line":"      ("},{"line_number":163,"context_line":"        id                INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":164,"context_line":"        uuid              VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the device itself*/"},{"line_number":165,"context_line":"        std_board_info    TEXT ,   /*A dictionary with standard fields*/"},{"line_number":166,"context_line":"        vendor_board_info TEXT ,   /*A dictionary with driver-specific keys*/"},{"line_number":167,"context_line":"        type              VARCHAR2 (30 BYTE)     /*Device Type*/"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_70ccbe5e","line":164,"in_reply_to":"3f79a3b5_ede7b4ad","updated":"2018-12-06 05:06:26.000000000","message":"Done","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        num_accelerators   INTEGER ,        /*Number of accelerators contained in this deployable*/"},{"line_number":183,"context_line":"        name         VARCHAR2 (32 BYTE) ,   /*Name of the deployable*/"},{"line_number":184,"context_line":"        uuid         VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the deployable itself*/"},{"line_number":185,"context_line":"        version      VARCHAR2 (32 BYTE) ,   /*Identify the version of the deployable(e.g. 1.2a)*/"},{"line_number":186,"context_line":"        type         VARCHAR2 (32) ,        /*Identify the type of the deployable(e.g. FPGA/GPU/NPU)*/"},{"line_number":187,"context_line":"        device_id    INTEGER NOT NULL       /*foreign key references to the accelerator table*/"},{"line_number":188,"context_line":"      ) ;"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_f20b0f7c","line":185,"range":{"start_line":185,"start_character":8,"end_line":185,"end_character":15},"updated":"2018-12-05 13:47:07.000000000","message":"What does this field signify? I don\u0027t think we need this.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        num_accelerators   INTEGER ,        /*Number of accelerators contained in this deployable*/"},{"line_number":183,"context_line":"        name         VARCHAR2 (32 BYTE) ,   /*Name of the deployable*/"},{"line_number":184,"context_line":"        uuid         VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the deployable itself*/"},{"line_number":185,"context_line":"        version      VARCHAR2 (32 BYTE) ,   /*Identify the version of the deployable(e.g. 1.2a)*/"},{"line_number":186,"context_line":"        type         VARCHAR2 (32) ,        /*Identify the type of the deployable(e.g. FPGA/GPU/NPU)*/"},{"line_number":187,"context_line":"        device_id    INTEGER NOT NULL       /*foreign key references to the accelerator table*/"},{"line_number":188,"context_line":"      ) ;"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_d08d9228","line":185,"range":{"start_line":185,"start_character":8,"end_line":185,"end_character":15},"in_reply_to":"3f79a3b5_f20b0f7c","updated":"2018-12-06 05:06:26.000000000","message":"Done","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        name         VARCHAR2 (32 BYTE) ,   /*Name of the deployable*/"},{"line_number":184,"context_line":"        uuid         VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the deployable itself*/"},{"line_number":185,"context_line":"        version      VARCHAR2 (32 BYTE) ,   /*Identify the version of the deployable(e.g. 1.2a)*/"},{"line_number":186,"context_line":"        type         VARCHAR2 (32) ,        /*Identify the type of the deployable(e.g. FPGA/GPU/NPU)*/"},{"line_number":187,"context_line":"        device_id    INTEGER NOT NULL       /*foreign key references to the accelerator table*/"},{"line_number":188,"context_line":"      ) ;"},{"line_number":189,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_PK PRIMARY KEY ( id ) ;"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_3240a7a3","line":186,"range":{"start_line":186,"start_character":8,"end_line":186,"end_character":12},"updated":"2018-12-05 13:47:07.000000000","message":"This is already in the Device table. Please remove it.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        name         VARCHAR2 (32 BYTE) ,   /*Name of the deployable*/"},{"line_number":184,"context_line":"        uuid         VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the deployable itself*/"},{"line_number":185,"context_line":"        version      VARCHAR2 (32 BYTE) ,   /*Identify the version of the deployable(e.g. 1.2a)*/"},{"line_number":186,"context_line":"        type         VARCHAR2 (32) ,        /*Identify the type of the deployable(e.g. FPGA/GPU/NPU)*/"},{"line_number":187,"context_line":"        device_id    INTEGER NOT NULL       /*foreign key references to the accelerator table*/"},{"line_number":188,"context_line":"      ) ;"},{"line_number":189,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_PK PRIMARY KEY ( id ) ;"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_f0920e49","line":186,"range":{"start_line":186,"start_character":8,"end_line":186,"end_character":12},"in_reply_to":"3f79a3b5_3240a7a3","updated":"2018-12-06 05:06:26.000000000","message":"Done","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        uuid         VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the deployable itself*/"},{"line_number":185,"context_line":"        version      VARCHAR2 (32 BYTE) ,   /*Identify the version of the deployable(e.g. 1.2a)*/"},{"line_number":186,"context_line":"        type         VARCHAR2 (32) ,        /*Identify the type of the deployable(e.g. FPGA/GPU/NPU)*/"},{"line_number":187,"context_line":"        device_id    INTEGER NOT NULL       /*foreign key references to the accelerator table*/"},{"line_number":188,"context_line":"      ) ;"},{"line_number":189,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_PK PRIMARY KEY ( id ) ;"},{"line_number":190,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_devices_FK FOREIGN KEY ( device_id ) REFERENCES devices ( id ) ON"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_ad1f7c09","line":187,"range":{"start_line":187,"start_character":76,"end_line":187,"end_character":87},"updated":"2018-12-05 13:47:07.000000000","message":"Devices table.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        uuid         VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the deployable itself*/"},{"line_number":185,"context_line":"        version      VARCHAR2 (32 BYTE) ,   /*Identify the version of the deployable(e.g. 1.2a)*/"},{"line_number":186,"context_line":"        type         VARCHAR2 (32) ,        /*Identify the type of the deployable(e.g. FPGA/GPU/NPU)*/"},{"line_number":187,"context_line":"        device_id    INTEGER NOT NULL       /*foreign key references to the accelerator table*/"},{"line_number":188,"context_line":"      ) ;"},{"line_number":189,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_PK PRIMARY KEY ( id ) ;"},{"line_number":190,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_devices_FK FOREIGN KEY ( device_id ) REFERENCES devices ( id ) ON"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_b0981667","line":187,"range":{"start_line":187,"start_character":76,"end_line":187,"end_character":87},"in_reply_to":"3f79a3b5_ad1f7c09","updated":"2018-12-06 05:06:26.000000000","message":"Done","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        type         VARCHAR2 (32) ,        /*Identify the type of the deployable(e.g. FPGA/GPU/NPU)*/"},{"line_number":187,"context_line":"        device_id    INTEGER NOT NULL       /*foreign key references to the accelerator table*/"},{"line_number":188,"context_line":"      ) ;"},{"line_number":189,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_PK PRIMARY KEY ( id ) ;"},{"line_number":190,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_devices_FK FOREIGN KEY ( device_id ) REFERENCES devices ( id ) ON"},{"line_number":191,"context_line":"    DELETE CASCADE ;"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_adad3ca5","line":189,"updated":"2018-12-05 13:47:07.000000000","message":"SQL allows us to express primary/foreign keys inline, which IMHO is clearer than using ALTER TABLE syntax. E.g.\nPRIMARY KEY (id),\nFOREIGN KEY (device_id) REFERENCES Devices(id)\n\nBut, if this is what you are comfortable with, we can let this be.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        type         VARCHAR2 (32) ,        /*Identify the type of the deployable(e.g. FPGA/GPU/NPU)*/"},{"line_number":187,"context_line":"        device_id    INTEGER NOT NULL       /*foreign key references to the accelerator table*/"},{"line_number":188,"context_line":"      ) ;"},{"line_number":189,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_PK PRIMARY KEY ( id ) ;"},{"line_number":190,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_devices_FK FOREIGN KEY ( device_id ) REFERENCES devices ( id ) ON"},{"line_number":191,"context_line":"    DELETE CASCADE ;"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_d0db521c","line":189,"in_reply_to":"3f79a3b5_adad3ca5","updated":"2018-12-06 05:06:26.000000000","message":"Done","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":188,"context_line":"      ) ;"},{"line_number":189,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_PK PRIMARY KEY ( id ) ;"},{"line_number":190,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_devices_FK FOREIGN KEY ( device_id ) REFERENCES devices ( id ) ON"},{"line_number":191,"context_line":"    DELETE CASCADE ;"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    CREATE TABLE AttachHandles"},{"line_number":194,"context_line":"      ("}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_927bbbce","line":191,"range":{"start_line":191,"start_character":11,"end_line":191,"end_character":18},"updated":"2018-12-05 13:47:07.000000000","message":"This should be RESTRICT, not CASCADE, for several reasons:\n* When a row in Device gets deleted, we should first check if the Deployable is in use before deleting it.\n* When db rows get automatically deleted, that will not necessarily reflect in the objects layer, so we may have \u0027orphaned\u0027 objects.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":188,"context_line":"      ) ;"},{"line_number":189,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_PK PRIMARY KEY ( id ) ;"},{"line_number":190,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_devices_FK FOREIGN KEY ( device_id ) REFERENCES devices ( id ) ON"},{"line_number":191,"context_line":"    DELETE CASCADE ;"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    CREATE TABLE AttachHandles"},{"line_number":194,"context_line":"      ("}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_f0e0cecc","line":191,"range":{"start_line":191,"start_character":11,"end_line":191,"end_character":18},"in_reply_to":"3f79a3b5_927bbbce","updated":"2018-12-06 05:06:26.000000000","message":"Done","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":190,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_devices_FK FOREIGN KEY ( device_id ) REFERENCES devices ( id ) ON"},{"line_number":191,"context_line":"    DELETE CASCADE ;"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    CREATE TABLE AttachHandles"},{"line_number":194,"context_line":"      ("},{"line_number":195,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":196,"context_line":"        attach_info      VARCHAR2 (32 BYTE) ,   /*information needed to attach the accelerator to VMs*/"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_2d14cc41","line":193,"range":{"start_line":193,"start_character":17,"end_line":193,"end_character":30},"updated":"2018-12-05 13:47:07.000000000","message":"This table also needs a handle_type, which is an enum, such as PCI, mdev, etc. The contents of the attach_info field depend on this. We could have a string instead of an enum.\n\nAlso, this table needs an in_use (boolean) field. Cyborg has to track which attach handles are in use.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":190,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT Deployables_devices_FK FOREIGN KEY ( device_id ) REFERENCES devices ( id ) ON"},{"line_number":191,"context_line":"    DELETE CASCADE ;"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    CREATE TABLE AttachHandles"},{"line_number":194,"context_line":"      ("},{"line_number":195,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":196,"context_line":"        attach_info      VARCHAR2 (32 BYTE) ,   /*information needed to attach the accelerator to VMs*/"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_10ff8a69","line":193,"range":{"start_line":193,"start_character":17,"end_line":193,"end_character":30},"in_reply_to":"3f79a3b5_2d14cc41","updated":"2018-12-06 05:06:26.000000000","message":"Done","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":193,"context_line":"    CREATE TABLE AttachHandles"},{"line_number":194,"context_line":"      ("},{"line_number":195,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":196,"context_line":"        attach_info      VARCHAR2 (32 BYTE) ,   /*information needed to attach the accelerator to VMs*/"},{"line_number":197,"context_line":"        instance_id      VARCHAR2 (32 BYTE) ,   /*Represent which instance this accelerator has been assigned to*/"},{"line_number":198,"context_line":"        uuid             VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the AttachHandle itself*/"},{"line_number":199,"context_line":"        deployable_id    INTEGER NOT NULL     /*foreign key references to the deployables table*/"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_ad7a1cec","line":196,"range":{"start_line":196,"start_character":35,"end_line":196,"end_character":37},"updated":"2018-12-05 13:47:07.000000000","message":"32 bytes is not enough. But we can address that in the real code.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":193,"context_line":"    CREATE TABLE AttachHandles"},{"line_number":194,"context_line":"      ("},{"line_number":195,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":196,"context_line":"        attach_info      VARCHAR2 (32 BYTE) ,   /*information needed to attach the accelerator to VMs*/"},{"line_number":197,"context_line":"        instance_id      VARCHAR2 (32 BYTE) ,   /*Represent which instance this accelerator has been assigned to*/"},{"line_number":198,"context_line":"        uuid             VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the AttachHandle itself*/"},{"line_number":199,"context_line":"        deployable_id    INTEGER NOT NULL     /*foreign key references to the deployables table*/"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_b0efb6b0","line":196,"range":{"start_line":196,"start_character":35,"end_line":196,"end_character":37},"in_reply_to":"3f79a3b5_ad7a1cec","updated":"2018-12-06 05:06:26.000000000","message":"Done","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":194,"context_line":"      ("},{"line_number":195,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":196,"context_line":"        attach_info      VARCHAR2 (32 BYTE) ,   /*information needed to attach the accelerator to VMs*/"},{"line_number":197,"context_line":"        instance_id      VARCHAR2 (32 BYTE) ,   /*Represent which instance this accelerator has been assigned to*/"},{"line_number":198,"context_line":"        uuid             VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the AttachHandle itself*/"},{"line_number":199,"context_line":"        deployable_id    INTEGER NOT NULL     /*foreign key references to the deployables table*/"},{"line_number":200,"context_line":"      ) ;"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_92a41b4f","line":197,"range":{"start_line":197,"start_character":8,"end_line":197,"end_character":19},"updated":"2018-12-05 13:47:07.000000000","message":"This does not belong in this table. An ARQ will track which instance it has been assigned to.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":194,"context_line":"      ("},{"line_number":195,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":196,"context_line":"        attach_info      VARCHAR2 (32 BYTE) ,   /*information needed to attach the accelerator to VMs*/"},{"line_number":197,"context_line":"        instance_id      VARCHAR2 (32 BYTE) ,   /*Represent which instance this accelerator has been assigned to*/"},{"line_number":198,"context_line":"        uuid             VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the AttachHandle itself*/"},{"line_number":199,"context_line":"        deployable_id    INTEGER NOT NULL     /*foreign key references to the deployables table*/"},{"line_number":200,"context_line":"      ) ;"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_50e8a2a6","line":197,"range":{"start_line":197,"start_character":8,"end_line":197,"end_character":19},"in_reply_to":"3f79a3b5_92a41b4f","updated":"2018-12-06 05:06:26.000000000","message":"Done","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":196,"context_line":"        attach_info      VARCHAR2 (32 BYTE) ,   /*information needed to attach the accelerator to VMs*/"},{"line_number":197,"context_line":"        instance_id      VARCHAR2 (32 BYTE) ,   /*Represent which instance this accelerator has been assigned to*/"},{"line_number":198,"context_line":"        uuid             VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the AttachHandle itself*/"},{"line_number":199,"context_line":"        deployable_id    INTEGER NOT NULL     /*foreign key references to the deployables table*/"},{"line_number":200,"context_line":"      ) ;"},{"line_number":201,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT AttachHandles_PK PRIMARY KEY ( id ) ;"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_b232770d","line":198,"range":{"start_line":198,"start_character":8,"end_line":198,"end_character":12},"updated":"2018-12-05 13:47:07.000000000","message":"Why do we need a UUID for this?","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":196,"context_line":"        attach_info      VARCHAR2 (32 BYTE) ,   /*information needed to attach the accelerator to VMs*/"},{"line_number":197,"context_line":"        instance_id      VARCHAR2 (32 BYTE) ,   /*Represent which instance this accelerator has been assigned to*/"},{"line_number":198,"context_line":"        uuid             VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the AttachHandle itself*/"},{"line_number":199,"context_line":"        deployable_id    INTEGER NOT NULL     /*foreign key references to the deployables table*/"},{"line_number":200,"context_line":"      ) ;"},{"line_number":201,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT AttachHandles_PK PRIMARY KEY ( id ) ;"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_70e59ece","line":198,"range":{"start_line":198,"start_character":8,"end_line":198,"end_character":12},"in_reply_to":"3f79a3b5_b232770d","updated":"2018-12-06 05:06:26.000000000","message":"Done","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        attach_info      VARCHAR2 (32 BYTE) ,   /*information needed to attach the accelerator to VMs*/"},{"line_number":197,"context_line":"        instance_id      VARCHAR2 (32 BYTE) ,   /*Represent which instance this accelerator has been assigned to*/"},{"line_number":198,"context_line":"        uuid             VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the AttachHandle itself*/"},{"line_number":199,"context_line":"        deployable_id    INTEGER NOT NULL     /*foreign key references to the deployables table*/"},{"line_number":200,"context_line":"      ) ;"},{"line_number":201,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT AttachHandles_PK PRIMARY KEY ( id ) ;"},{"line_number":202,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT AttachHandles_devices_FK FOREIGN KEY ( deployable_id ) REFERENCES deployables ( id ) ON"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_d235b3f6","line":199,"range":{"start_line":199,"start_character":8,"end_line":199,"end_character":21},"updated":"2018-12-05 13:47:07.000000000","message":"This should go with Devices, not Deployables.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        attach_info      VARCHAR2 (32 BYTE) ,   /*information needed to attach the accelerator to VMs*/"},{"line_number":197,"context_line":"        instance_id      VARCHAR2 (32 BYTE) ,   /*Represent which instance this accelerator has been assigned to*/"},{"line_number":198,"context_line":"        uuid             VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the AttachHandle itself*/"},{"line_number":199,"context_line":"        deployable_id    INTEGER NOT NULL     /*foreign key references to the deployables table*/"},{"line_number":200,"context_line":"      ) ;"},{"line_number":201,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT AttachHandles_PK PRIMARY KEY ( id ) ;"},{"line_number":202,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT AttachHandles_devices_FK FOREIGN KEY ( deployable_id ) REFERENCES deployables ( id ) ON"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_302966f0","line":199,"range":{"start_line":199,"start_character":8,"end_line":199,"end_character":21},"in_reply_to":"3f79a3b5_d235b3f6","updated":"2018-12-06 05:06:26.000000000","message":"Let\u0027s discuss this.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        uuid             VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the AttachHandle itself*/"},{"line_number":199,"context_line":"        deployable_id    INTEGER NOT NULL     /*foreign key references to the deployables table*/"},{"line_number":200,"context_line":"      ) ;"},{"line_number":201,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT AttachHandles_PK PRIMARY KEY ( id ) ;"},{"line_number":202,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT AttachHandles_devices_FK FOREIGN KEY ( deployable_id ) REFERENCES deployables ( id ) ON"},{"line_number":203,"context_line":"    DELETE CASCADE ;"},{"line_number":204,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_6d8c043a","line":201,"updated":"2018-12-05 13:47:07.000000000","message":"This needs restating. It states that Deployables table has a foreign key in AttachHandles table, whereas AttachHandles table should have a foreign key reference to Devices table.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        uuid             VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the AttachHandle itself*/"},{"line_number":199,"context_line":"        deployable_id    INTEGER NOT NULL     /*foreign key references to the deployables table*/"},{"line_number":200,"context_line":"      ) ;"},{"line_number":201,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT AttachHandles_PK PRIMARY KEY ( id ) ;"},{"line_number":202,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT AttachHandles_devices_FK FOREIGN KEY ( deployable_id ) REFERENCES deployables ( id ) ON"},{"line_number":203,"context_line":"    DELETE CASCADE ;"},{"line_number":204,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_b0349648","line":201,"in_reply_to":"3f79a3b5_6d8c043a","updated":"2018-12-06 05:06:26.000000000","message":"Done","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":200,"context_line":"      ) ;"},{"line_number":201,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT AttachHandles_PK PRIMARY KEY ( id ) ;"},{"line_number":202,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT AttachHandles_devices_FK FOREIGN KEY ( deployable_id ) REFERENCES deployables ( id ) ON"},{"line_number":203,"context_line":"    DELETE CASCADE ;"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    CREATE TABLE DeviceProfiles"},{"line_number":206,"context_line":"      ("}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_8dcf20b5","line":203,"range":{"start_line":203,"start_character":11,"end_line":203,"end_character":18},"updated":"2018-12-05 13:47:07.000000000","message":"RESTRICT. Please see above. Applies to all. The current Attributes table has a CASCADE relationship with Deployables, but that is probably ok because Attributes have no lifetime outside of the owning Deployable.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":200,"context_line":"      ) ;"},{"line_number":201,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT AttachHandles_PK PRIMARY KEY ( id ) ;"},{"line_number":202,"context_line":"    ALTER TABLE Deployables ADD CONSTRAINT AttachHandles_devices_FK FOREIGN KEY ( deployable_id ) REFERENCES deployables ( id ) ON"},{"line_number":203,"context_line":"    DELETE CASCADE ;"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    CREATE TABLE DeviceProfiles"},{"line_number":206,"context_line":"      ("}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_100d4a91","line":203,"range":{"start_line":203,"start_character":11,"end_line":203,"end_character":18},"in_reply_to":"3f79a3b5_8dcf20b5","updated":"2018-12-06 05:06:26.000000000","message":"Done","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":210,"context_line":"        json             TEXT ,                 /*JSON blob with all the deivce/vendor specifc information*/"},{"line_number":211,"context_line":"      ) ;"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    CREATE TABLE ARQs"},{"line_number":214,"context_line":"      ("},{"line_number":215,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":216,"context_line":"        uuid             VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the ARQ itself*/"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_8deba0ec","line":213,"range":{"start_line":213,"start_character":17,"end_line":213,"end_character":21},"updated":"2018-12-05 13:47:07.000000000","message":"This should be called ExtARQ, because only some of these fields form the ARQ object that is exposed to Nova. Others are internal to Cyborg.\n\nAlso, we probably will need more fields like substate and bitstream info, but we can add them later as needed.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":210,"context_line":"        json             TEXT ,                 /*JSON blob with all the deivce/vendor specifc information*/"},{"line_number":211,"context_line":"      ) ;"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    CREATE TABLE ARQs"},{"line_number":214,"context_line":"      ("},{"line_number":215,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":216,"context_line":"        uuid             VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the ARQ itself*/"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_d0027260","line":213,"range":{"start_line":213,"start_character":17,"end_line":213,"end_character":21},"in_reply_to":"3f79a3b5_8deba0ec","updated":"2018-12-06 05:06:26.000000000","message":"We can discuss this.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":228,"context_line":"    ALTER TABLE AttachHandles ADD CONSTRAINT ARQs_PK PRIMARY KEY ( id ) ;"},{"line_number":229,"context_line":"    ALTER TABLE AttachHandles ADD CONSTRAINT ARQs_devices_FK FOREIGN KEY ( attach_handle_id ) REFERENCES AttachHandles ( id ) ON"},{"line_number":230,"context_line":"    DELETE CASCADE ;"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"RPC API impact"},{"line_number":233,"context_line":"---------------"},{"line_number":234,"context_line":"The existing two sets of conductor APIs should not be changed. 1 set for"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_53aafe1a","line":231,"updated":"2018-12-05 13:47:07.000000000","message":"It would be good to have a generic disclaimer that more fields may be added to specific tables and the schema may evolve a little as the implementation progresses. That way we are not locking ourselves in.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":228,"context_line":"    ALTER TABLE AttachHandles ADD CONSTRAINT ARQs_PK PRIMARY KEY ( id ) ;"},{"line_number":229,"context_line":"    ALTER TABLE AttachHandles ADD CONSTRAINT ARQs_devices_FK FOREIGN KEY ( attach_handle_id ) REFERENCES AttachHandles ( id ) ON"},{"line_number":230,"context_line":"    DELETE CASCADE ;"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"RPC API impact"},{"line_number":233,"context_line":"---------------"},{"line_number":234,"context_line":"The existing two sets of conductor APIs should not be changed. 1 set for"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_b01d76c0","line":231,"in_reply_to":"3f79a3b5_53aafe1a","updated":"2018-12-06 05:06:26.000000000","message":"Done","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7feee126a669fa930d79ba4c341ad0b11300341f","unresolved":false,"context_lines":[{"line_number":234,"context_line":"The existing two sets of conductor APIs should not be changed. 1 set for"},{"line_number":235,"context_line":"deployable functions, 1 set for accelerator functions."},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"REST API impact"},{"line_number":238,"context_line":"---------------"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Rest API for retrieving accelerators will be removed."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_2da4cca3","line":237,"updated":"2018-12-05 13:47:07.000000000","message":"This is not in alignment with this spec or other specs. My suggestion is to drop all these REST APIs -- every API imposes a backwards compatibility and maintenance burden for the future, so we should add an API only if there is a strong need for it.","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"d5c2df7f0d515571354837bba39045df227cd664","unresolved":false,"context_lines":[{"line_number":234,"context_line":"The existing two sets of conductor APIs should not be changed. 1 set for"},{"line_number":235,"context_line":"deployable functions, 1 set for accelerator functions."},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"REST API impact"},{"line_number":238,"context_line":"---------------"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Rest API for retrieving accelerators will be removed."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_501662a4","line":237,"in_reply_to":"3f79a3b5_2da4cca3","updated":"2018-12-06 05:06:26.000000000","message":"Done","commit_id":"d91b6baf507634fa4cc36c6e62455e11645c4138"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"c9b535271857bc7b587261625d0968d5ef240b2b","unresolved":false,"context_lines":[{"line_number":131,"context_line":"    -----------------     -----------------         -------------"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Attributes table should stay the same as before, which consists of a key and a"},{"line_number":134,"context_line":"value columns to represent arbitrary k-v pairs. it has"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"For instance, bitstream_id and function kpi can be tracked in this table."},{"line_number":137,"context_line":"In addition, a foreign key deployable_id refers to the Deployables table and"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_b5a69a54","line":134,"range":{"start_line":134,"start_character":48,"end_line":134,"end_character":54},"updated":"2018-12-10 18:47:58.000000000","message":"Nit: incomplete sentence.","commit_id":"31949ad2f2f8877725baa705fd5461795a635c86"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"53b660dd13b83d2ce002de4f135541338f9a0ce6","unresolved":false,"context_lines":[{"line_number":131,"context_line":"    -----------------     -----------------         -------------"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Attributes table should stay the same as before, which consists of a key and a"},{"line_number":134,"context_line":"value columns to represent arbitrary k-v pairs. it has"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"For instance, bitstream_id and function kpi can be tracked in this table."},{"line_number":137,"context_line":"In addition, a foreign key deployable_id refers to the Deployables table and"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_06685f54","line":134,"range":{"start_line":134,"start_character":48,"end_line":134,"end_character":54},"in_reply_to":"3f79a3b5_b5a69a54","updated":"2018-12-11 03:53:35.000000000","message":"Done","commit_id":"31949ad2f2f8877725baa705fd5461795a635c86"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"c9b535271857bc7b587261625d0968d5ef240b2b","unresolved":false,"context_lines":[{"line_number":175,"context_line":"      ("},{"line_number":176,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":177,"context_line":"        attach_info      VARCHAR2 (255 BYTE) ,   /*information needed to attach the accelerator to VMs*/"},{"line_number":178,"context_line":"        deployable_id    INTEGER NOT NULL       /*foreign key references to the deployables table*/"},{"line_number":179,"context_line":"        handle_type      INTEGER NOT NULL ,     /*An enum to indicate the handle type, such as PCI, mdev, etc*/"},{"line_number":180,"context_line":"      ) ;"},{"line_number":181,"context_line":"    PRIMARY KEY (id),"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_f53e52e0","line":178,"range":{"start_line":178,"start_character":8,"end_line":178,"end_character":21},"updated":"2018-12-10 18:47:58.000000000","message":"Same comment as last time: should go with Devices.","commit_id":"31949ad2f2f8877725baa705fd5461795a635c86"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"53b660dd13b83d2ce002de4f135541338f9a0ce6","unresolved":false,"context_lines":[{"line_number":175,"context_line":"      ("},{"line_number":176,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":177,"context_line":"        attach_info      VARCHAR2 (255 BYTE) ,   /*information needed to attach the accelerator to VMs*/"},{"line_number":178,"context_line":"        deployable_id    INTEGER NOT NULL       /*foreign key references to the deployables table*/"},{"line_number":179,"context_line":"        handle_type      INTEGER NOT NULL ,     /*An enum to indicate the handle type, such as PCI, mdev, etc*/"},{"line_number":180,"context_line":"      ) ;"},{"line_number":181,"context_line":"    PRIMARY KEY (id),"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_a6888b19","line":178,"range":{"start_line":178,"start_character":8,"end_line":178,"end_character":21},"in_reply_to":"3f79a3b5_f53e52e0","updated":"2018-12-11 03:53:35.000000000","message":"Done","commit_id":"31949ad2f2f8877725baa705fd5461795a635c86"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"c9b535271857bc7b587261625d0968d5ef240b2b","unresolved":false,"context_lines":[{"line_number":180,"context_line":"      ) ;"},{"line_number":181,"context_line":"    PRIMARY KEY (id),"},{"line_number":182,"context_line":"    FOREIGN KEY (deployable_id) REFERENCES deployables(id) ON"},{"line_number":183,"context_line":"    DELETE CASCADE ;"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    CREATE TABLE DeviceProfiles"},{"line_number":186,"context_line":"      ("}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_95703edd","line":183,"range":{"start_line":183,"start_character":11,"end_line":183,"end_character":18},"updated":"2018-12-10 18:47:58.000000000","message":"RESTRICT","commit_id":"31949ad2f2f8877725baa705fd5461795a635c86"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"53b660dd13b83d2ce002de4f135541338f9a0ce6","unresolved":false,"context_lines":[{"line_number":180,"context_line":"      ) ;"},{"line_number":181,"context_line":"    PRIMARY KEY (id),"},{"line_number":182,"context_line":"    FOREIGN KEY (deployable_id) REFERENCES deployables(id) ON"},{"line_number":183,"context_line":"    DELETE CASCADE ;"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    CREATE TABLE DeviceProfiles"},{"line_number":186,"context_line":"      ("}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_c68b4713","line":183,"range":{"start_line":183,"start_character":11,"end_line":183,"end_character":18},"in_reply_to":"3f79a3b5_95703edd","updated":"2018-12-11 03:53:35.000000000","message":"Done","commit_id":"31949ad2f2f8877725baa705fd5461795a635c86"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"c9b535271857bc7b587261625d0968d5ef240b2b","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        hostname          VARCHAR2 (32 BYTE)     /*host name to identify which host this request is targeting*/"},{"line_number":200,"context_line":"        device_rp_uuid   VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the resource provider which this ARQ is pointing to*/"},{"line_number":201,"context_line":"        instance_uuid    VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the instance which this ARQ is pointing to*/"},{"line_number":202,"context_line":"        attach_handle_id INTEGER NOT NULL       /*foreign key references to the device identifier table*/"},{"line_number":203,"context_line":"      ) ;"},{"line_number":204,"context_line":"    PRIMARY KEY (id),"},{"line_number":205,"context_line":"    FOREIGN KEY (device_profile_id) REFERENCES DeviceProfiles(id),"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_554f068c","line":202,"range":{"start_line":202,"start_character":80,"end_line":202,"end_character":97},"updated":"2018-12-10 18:47:58.000000000","message":"copy-n-paste?","commit_id":"31949ad2f2f8877725baa705fd5461795a635c86"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"53b660dd13b83d2ce002de4f135541338f9a0ce6","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        hostname          VARCHAR2 (32 BYTE)     /*host name to identify which host this request is targeting*/"},{"line_number":200,"context_line":"        device_rp_uuid   VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the resource provider which this ARQ is pointing to*/"},{"line_number":201,"context_line":"        instance_uuid    VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the instance which this ARQ is pointing to*/"},{"line_number":202,"context_line":"        attach_handle_id INTEGER NOT NULL       /*foreign key references to the device identifier table*/"},{"line_number":203,"context_line":"      ) ;"},{"line_number":204,"context_line":"    PRIMARY KEY (id),"},{"line_number":205,"context_line":"    FOREIGN KEY (device_profile_id) REFERENCES DeviceProfiles(id),"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_668ef325","line":202,"range":{"start_line":202,"start_character":80,"end_line":202,"end_character":97},"in_reply_to":"3f79a3b5_554f068c","updated":"2018-12-11 03:53:35.000000000","message":"Done","commit_id":"31949ad2f2f8877725baa705fd5461795a635c86"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"c9b535271857bc7b587261625d0968d5ef240b2b","unresolved":false,"context_lines":[{"line_number":206,"context_line":"    FOREIGN KEY (attach_handle_id) REFERENCES AttachHandles(id) ON"},{"line_number":207,"context_line":"    DELETE RESTRICT ;"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    CREATE TABLE AttachHandles"},{"line_number":210,"context_line":"      ("},{"line_number":211,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":212,"context_line":"        uuid             VARCHAR2 (36 BYTE) ,   /*uuid v4 format for the DeviceProfile itself*/"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_f565f21b","line":209,"updated":"2018-12-10 18:47:58.000000000","message":"Defined earlier. Did you mean \u0027ControlPathID\u0027 table? Also, this needs a JSON blob to hold the subclass info.","commit_id":"31949ad2f2f8877725baa705fd5461795a635c86"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"53b660dd13b83d2ce002de4f135541338f9a0ce6","unresolved":false,"context_lines":[{"line_number":206,"context_line":"    FOREIGN KEY (attach_handle_id) REFERENCES AttachHandles(id) ON"},{"line_number":207,"context_line":"    DELETE RESTRICT ;"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    CREATE TABLE AttachHandles"},{"line_number":210,"context_line":"      ("},{"line_number":211,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":212,"context_line":"        uuid             VARCHAR2 (36 BYTE) ,   /*uuid v4 format for the DeviceProfile itself*/"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_269c7b5a","line":209,"in_reply_to":"3f79a3b5_f565f21b","updated":"2018-12-11 03:53:35.000000000","message":"Done","commit_id":"31949ad2f2f8877725baa705fd5461795a635c86"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"c9b535271857bc7b587261625d0968d5ef240b2b","unresolved":false,"context_lines":[{"line_number":209,"context_line":"    CREATE TABLE AttachHandles"},{"line_number":210,"context_line":"      ("},{"line_number":211,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":212,"context_line":"        uuid             VARCHAR2 (36 BYTE) ,   /*uuid v4 format for the DeviceProfile itself*/"},{"line_number":213,"context_line":"        type_name        VARCHAR2 (255 BYTE) ,  /*Name of the DeviceProfile*/"},{"line_number":214,"context_line":"        device_id        INTEGER NOT NULL ,     /*Foreign Key to point to the device*/"},{"line_number":215,"context_line":"        in_use           INTEGER NOT NULL ,     /*Indicate if the device is in used*/"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_754a427c","line":212,"range":{"start_line":212,"start_character":8,"end_line":212,"end_character":12},"updated":"2018-12-10 18:47:58.000000000","message":"This doesn\u0027t need a UUID.","commit_id":"31949ad2f2f8877725baa705fd5461795a635c86"},{"author":{"_account_id":27458,"name":"Li Liu","email":"liliueecg@gmail.com","username":"liliu"},"change_message_id":"53b660dd13b83d2ce002de4f135541338f9a0ce6","unresolved":false,"context_lines":[{"line_number":209,"context_line":"    CREATE TABLE AttachHandles"},{"line_number":210,"context_line":"      ("},{"line_number":211,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":212,"context_line":"        uuid             VARCHAR2 (36 BYTE) ,   /*uuid v4 format for the DeviceProfile itself*/"},{"line_number":213,"context_line":"        type_name        VARCHAR2 (255 BYTE) ,  /*Name of the DeviceProfile*/"},{"line_number":214,"context_line":"        device_id        INTEGER NOT NULL ,     /*Foreign Key to point to the device*/"},{"line_number":215,"context_line":"        in_use           INTEGER NOT NULL ,     /*Indicate if the device is in used*/"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_46973738","line":212,"range":{"start_line":212,"start_character":8,"end_line":212,"end_character":12},"in_reply_to":"3f79a3b5_754a427c","updated":"2018-12-11 03:53:35.000000000","message":"Done","commit_id":"31949ad2f2f8877725baa705fd5461795a635c86"},{"author":{"_account_id":22899,"name":"coco-Gao","email":"419546439@qq.com","username":"Coco"},"change_message_id":"f9999dc9546a4fb7dbc0843dc0544048959640ac","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        type              VARCHAR2 (30 BYTE)     /*Device Type*/"},{"line_number":168,"context_line":"        vendor            VARCHAR2 (255 BYTE)    /*Device vendor*/"},{"line_number":169,"context_line":"        model             VARCHAR2 (255 BYTE)    /*Device model*/"},{"line_number":170,"context_line":"        hostname          VARCHAR2 (32 BYTE)     /*host name to identify which host this device is located*/"},{"line_number":171,"context_line":"      ) ;"},{"line_number":172,"context_line":"    ALTER TABLE Devices ADD CONSTRAINT Devices_PK PRIMARY KEY ( id ) ;"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"3f79a3b5_d56052d4","line":170,"range":{"start_line":170,"start_character":36,"end_line":170,"end_character":38},"updated":"2018-12-17 14:33:01.000000000","message":"In nova db, this field\u0027s length is 255.","commit_id":"3f3404d161e9badb475c4676187de9a5657108d5"},{"author":{"_account_id":22899,"name":"coco-Gao","email":"419546439@qq.com","username":"Coco"},"change_message_id":"942f5894b2696085d521fd7618d3706e900fe700","unresolved":false,"context_lines":[{"line_number":174,"context_line":"    CREATE TABLE AttachHandles"},{"line_number":175,"context_line":"      ("},{"line_number":176,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":177,"context_line":"        attach_info      VARCHAR2 (255 BYTE) ,   /*information needed to attach the accelerator to VMs*/"},{"line_number":178,"context_line":"        device_id        INTEGER NOT NULL       /*foreign key references to the devices table*/"},{"line_number":179,"context_line":"        handle_type      INTEGER NOT NULL ,     /*An enum to indicate the handle type, such as PCI, mdev, etc*/"},{"line_number":180,"context_line":"      ) ;"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3f79a3b5_7a0a947b","line":177,"range":{"start_line":177,"start_character":8,"end_line":177,"end_character":19},"updated":"2018-12-17 14:25:40.000000000","message":"Is this a json(text type)? Which contains \"domain\",\"bus\",\"device\"? OR is this same as ControlPathID\u0027s json filed?","commit_id":"3f3404d161e9badb475c4676187de9a5657108d5"},{"author":{"_account_id":22899,"name":"coco-Gao","email":"419546439@qq.com","username":"Coco"},"change_message_id":"f9999dc9546a4fb7dbc0843dc0544048959640ac","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        uuid             VARCHAR2 (36 BYTE) ,   /*uuid v4 format for the ARQ itself*/"},{"line_number":197,"context_line":"        state            VARCHAR2 (32 BYTE) ,   /*represents current state of the request*/"},{"line_number":198,"context_line":"        device_profile_id    INTEGER NOT NULL     /*foreign key references to the device profile table*/"},{"line_number":199,"context_line":"        hostname          VARCHAR2 (32 BYTE)     /*host name to identify which host this request is targeting*/"},{"line_number":200,"context_line":"        device_rp_uuid   VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the resource provider which this ARQ is pointing to*/"},{"line_number":201,"context_line":"        instance_uuid    VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the instance which this ARQ is pointing to*/"},{"line_number":202,"context_line":"        attach_handle_id INTEGER NOT NULL       /*foreign key references to the attach handle table*/"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3f79a3b5_95af3ae0","line":199,"range":{"start_line":199,"start_character":36,"end_line":199,"end_character":38},"updated":"2018-12-17 14:33:01.000000000","message":"255","commit_id":"3f3404d161e9badb475c4676187de9a5657108d5"},{"author":{"_account_id":22899,"name":"coco-Gao","email":"419546439@qq.com","username":"Coco"},"change_message_id":"942f5894b2696085d521fd7618d3706e900fe700","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        state            VARCHAR2 (32 BYTE) ,   /*represents current state of the request*/"},{"line_number":198,"context_line":"        device_profile_id    INTEGER NOT NULL     /*foreign key references to the device profile table*/"},{"line_number":199,"context_line":"        hostname          VARCHAR2 (32 BYTE)     /*host name to identify which host this request is targeting*/"},{"line_number":200,"context_line":"        device_rp_uuid   VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the resource provider which this ARQ is pointing to*/"},{"line_number":201,"context_line":"        instance_uuid    VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the instance which this ARQ is pointing to*/"},{"line_number":202,"context_line":"        attach_handle_id INTEGER NOT NULL       /*foreign key references to the attach handle table*/"},{"line_number":203,"context_line":"      ) ;"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3f79a3b5_7ad37409","line":200,"range":{"start_line":200,"start_character":35,"end_line":200,"end_character":37},"updated":"2018-12-17 14:25:40.000000000","message":"length of uuid is 36.","commit_id":"3f3404d161e9badb475c4676187de9a5657108d5"},{"author":{"_account_id":22899,"name":"coco-Gao","email":"419546439@qq.com","username":"Coco"},"change_message_id":"942f5894b2696085d521fd7618d3706e900fe700","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        device_profile_id    INTEGER NOT NULL     /*foreign key references to the device profile table*/"},{"line_number":199,"context_line":"        hostname          VARCHAR2 (32 BYTE)     /*host name to identify which host this request is targeting*/"},{"line_number":200,"context_line":"        device_rp_uuid   VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the resource provider which this ARQ is pointing to*/"},{"line_number":201,"context_line":"        instance_uuid    VARCHAR2 (32 BYTE) ,   /*uuid v4 format for the instance which this ARQ is pointing to*/"},{"line_number":202,"context_line":"        attach_handle_id INTEGER NOT NULL       /*foreign key references to the attach handle table*/"},{"line_number":203,"context_line":"      ) ;"},{"line_number":204,"context_line":"    PRIMARY KEY (id),"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3f79a3b5_9ad690f7","line":201,"range":{"start_line":201,"start_character":35,"end_line":201,"end_character":37},"updated":"2018-12-17 14:25:40.000000000","message":"36","commit_id":"3f3404d161e9badb475c4676187de9a5657108d5"},{"author":{"_account_id":22899,"name":"coco-Gao","email":"419546439@qq.com","username":"Coco"},"change_message_id":"942f5894b2696085d521fd7618d3706e900fe700","unresolved":false,"context_lines":[{"line_number":209,"context_line":"    CREATE TABLE ControlPathID"},{"line_number":210,"context_line":"      ("},{"line_number":211,"context_line":"        id               INTEGER NOT NULL ,     /*Primary Key*/"},{"line_number":212,"context_line":"        type_name        VARCHAR2 (255 BYTE) ,  /*Name of the DeviceProfile*/"},{"line_number":213,"context_line":"        device_id        INTEGER NOT NULL ,     /*Foreign Key to point to the device*/"},{"line_number":214,"context_line":"        json             TEXT ,                 /*JSON blob for type specific information*/"},{"line_number":215,"context_line":"      ) ;"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3f79a3b5_dafac143","line":212,"range":{"start_line":212,"start_character":62,"end_line":212,"end_character":75},"updated":"2018-12-17 14:25:40.000000000","message":"ControlPathID","commit_id":"3f3404d161e9badb475c4676187de9a5657108d5"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"6e07fb6576c48c3e5bb8d0d768bb5b200ac69d40","unresolved":false,"context_lines":[{"line_number":310,"context_line":""},{"line_number":311,"context_line":"   * - Release"},{"line_number":312,"context_line":"     - Description"},{"line_number":313,"context_line":"   * - Queens"},{"line_number":314,"context_line":"     - Introduced"},{"line_number":315,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"3f79a3b5_398be023","line":313,"range":{"start_line":313,"start_character":7,"end_line":313,"end_character":13},"updated":"2018-12-14 15:57:04.000000000","message":"Nit: Please make this Stein.","commit_id":"3f3404d161e9badb475c4676187de9a5657108d5"}]}
