)]}'
{"doc/source/specs/generic-database-bank.rst":[{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"45c618e0f70eed2fd42dc8486664e1f278513509","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":"Currently we only support Swift as a bank implementation. This means that"},{"line_number":16,"context_line":"anyone that uses Karbor must also install Swift.  The users use Karbor in a"},{"line_number":17,"context_line":"single site deployment. They might not want to install a extra storage(swift)"},{"line_number":18,"context_line":"in their clouds as the back-end of the bank . Bank is only used for saving"},{"line_number":19,"context_line":"checkpoint metadata. They prefer a database based bank. The database is the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a89bdaa_52deeb6d","line":16,"range":{"start_line":16,"start_character":49,"end_line":16,"end_character":50},"updated":"2016-09-06 10:09:37.000000000","message":"delete the redundant blank.","commit_id":"61d8a40e276a9a0382d1127ba46f69625d973286"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"343b06a7db46a85d6f7c041630fd4d001b39564a","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":"Currently we only support Swift as a bank implementation. This means that"},{"line_number":16,"context_line":"anyone that uses Karbor must also install Swift.  The users use Karbor in a"},{"line_number":17,"context_line":"single site deployment. They might not want to install a extra storage(swift)"},{"line_number":18,"context_line":"in their clouds as the back-end of the bank . Bank is only used for saving"},{"line_number":19,"context_line":"checkpoint metadata. They prefer a database based bank. The database is the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a89bdaa_33ac0434","line":16,"range":{"start_line":16,"start_character":49,"end_line":16,"end_character":50},"in_reply_to":"9a89bdaa_52deeb6d","updated":"2016-09-06 12:07:29.000000000","message":"Done","commit_id":"61d8a40e276a9a0382d1127ba46f69625d973286"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"45c618e0f70eed2fd42dc8486664e1f278513509","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":"Currently we only support Swift as a bank implementation. This means that"},{"line_number":16,"context_line":"anyone that uses Karbor must also install Swift.  The users use Karbor in a"},{"line_number":17,"context_line":"single site deployment. They might not want to install a extra storage(swift)"},{"line_number":18,"context_line":"in their clouds as the back-end of the bank . Bank is only used for saving"},{"line_number":19,"context_line":"checkpoint metadata. They prefer a database based bank. The database is the"},{"line_number":20,"context_line":"on premise software in their clouds."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a89bdaa_b2bad708","line":17,"range":{"start_line":17,"start_character":55,"end_line":17,"end_character":56},"updated":"2016-09-06 10:09:37.000000000","message":"s/a/an","commit_id":"61d8a40e276a9a0382d1127ba46f69625d973286"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"343b06a7db46a85d6f7c041630fd4d001b39564a","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":"Currently we only support Swift as a bank implementation. This means that"},{"line_number":16,"context_line":"anyone that uses Karbor must also install Swift.  The users use Karbor in a"},{"line_number":17,"context_line":"single site deployment. They might not want to install a extra storage(swift)"},{"line_number":18,"context_line":"in their clouds as the back-end of the bank . Bank is only used for saving"},{"line_number":19,"context_line":"checkpoint metadata. They prefer a database based bank. The database is the"},{"line_number":20,"context_line":"on premise software in their clouds."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a89bdaa_13ad4031","line":17,"range":{"start_line":17,"start_character":55,"end_line":17,"end_character":56},"in_reply_to":"9a89bdaa_b2bad708","updated":"2016-09-06 12:07:29.000000000","message":"Done","commit_id":"61d8a40e276a9a0382d1127ba46f69625d973286"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"45c618e0f70eed2fd42dc8486664e1f278513509","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Currently we only support Swift as a bank implementation. This means that"},{"line_number":16,"context_line":"anyone that uses Karbor must also install Swift.  The users use Karbor in a"},{"line_number":17,"context_line":"single site deployment. They might not want to install a extra storage(swift)"},{"line_number":18,"context_line":"in their clouds as the back-end of the bank . Bank is only used for saving"},{"line_number":19,"context_line":"checkpoint metadata. They prefer a database based bank. The database is the"},{"line_number":20,"context_line":"on premise software in their clouds."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a89bdaa_92c9537b","line":18,"range":{"start_line":18,"start_character":43,"end_line":18,"end_character":46},"updated":"2016-09-06 10:09:37.000000000","message":"several redundant blanks","commit_id":"61d8a40e276a9a0382d1127ba46f69625d973286"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"343b06a7db46a85d6f7c041630fd4d001b39564a","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Currently we only support Swift as a bank implementation. This means that"},{"line_number":16,"context_line":"anyone that uses Karbor must also install Swift.  The users use Karbor in a"},{"line_number":17,"context_line":"single site deployment. They might not want to install a extra storage(swift)"},{"line_number":18,"context_line":"in their clouds as the back-end of the bank . Bank is only used for saving"},{"line_number":19,"context_line":"checkpoint metadata. They prefer a database based bank. The database is the"},{"line_number":20,"context_line":"on premise software in their clouds."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a89bdaa_b3b73485","line":18,"range":{"start_line":18,"start_character":43,"end_line":18,"end_character":46},"in_reply_to":"9a89bdaa_92c9537b","updated":"2016-09-06 12:07:29.000000000","message":"Done","commit_id":"61d8a40e276a9a0382d1127ba46f69625d973286"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"45c618e0f70eed2fd42dc8486664e1f278513509","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Currently we only support Swift as a bank implementation. This means that"},{"line_number":16,"context_line":"anyone that uses Karbor must also install Swift.  The users use Karbor in a"},{"line_number":17,"context_line":"single site deployment. They might not want to install a extra storage(swift)"},{"line_number":18,"context_line":"in their clouds as the back-end of the bank . Bank is only used for saving"},{"line_number":19,"context_line":"checkpoint metadata. They prefer a database based bank. The database is the"},{"line_number":20,"context_line":"on premise software in their clouds."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Add a generic database based bank implementation. It will use database tables"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a89bdaa_325ec776","line":19,"range":{"start_line":18,"start_character":46,"end_line":19,"end_character":55},"updated":"2016-09-06 10:09:37.000000000","message":"I think it is better to say like this: If the bank is only used \nto save checkpoint metadata, they prefer a database based bank.","commit_id":"61d8a40e276a9a0382d1127ba46f69625d973286"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"343b06a7db46a85d6f7c041630fd4d001b39564a","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Currently we only support Swift as a bank implementation. This means that"},{"line_number":16,"context_line":"anyone that uses Karbor must also install Swift.  The users use Karbor in a"},{"line_number":17,"context_line":"single site deployment. They might not want to install a extra storage(swift)"},{"line_number":18,"context_line":"in their clouds as the back-end of the bank . Bank is only used for saving"},{"line_number":19,"context_line":"checkpoint metadata. They prefer a database based bank. The database is the"},{"line_number":20,"context_line":"on premise software in their clouds."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Add a generic database based bank implementation. It will use database tables"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a89bdaa_fc6d0e05","line":19,"range":{"start_line":18,"start_character":46,"end_line":19,"end_character":55},"in_reply_to":"9a89bdaa_325ec776","updated":"2016-09-06 12:07:29.000000000","message":"won\u0027t use if. This is the description of a scene.","commit_id":"61d8a40e276a9a0382d1127ba46f69625d973286"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"45c618e0f70eed2fd42dc8486664e1f278513509","unresolved":false,"context_lines":[{"line_number":17,"context_line":"single site deployment. They might not want to install a extra storage(swift)"},{"line_number":18,"context_line":"in their clouds as the back-end of the bank . Bank is only used for saving"},{"line_number":19,"context_line":"checkpoint metadata. They prefer a database based bank. The database is the"},{"line_number":20,"context_line":"on premise software in their clouds."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Add a generic database based bank implementation. It will use database tables"},{"line_number":23,"context_line":"for checkpoint objects storing data and metadata."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a89bdaa_d2dd9b15","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":10},"updated":"2016-09-06 10:09:37.000000000","message":"on-premise","commit_id":"61d8a40e276a9a0382d1127ba46f69625d973286"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"343b06a7db46a85d6f7c041630fd4d001b39564a","unresolved":false,"context_lines":[{"line_number":17,"context_line":"single site deployment. They might not want to install a extra storage(swift)"},{"line_number":18,"context_line":"in their clouds as the back-end of the bank . Bank is only used for saving"},{"line_number":19,"context_line":"checkpoint metadata. They prefer a database based bank. The database is the"},{"line_number":20,"context_line":"on premise software in their clouds."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Add a generic database based bank implementation. It will use database tables"},{"line_number":23,"context_line":"for checkpoint objects storing data and metadata."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a89bdaa_5390a8ec","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":10},"in_reply_to":"9a89bdaa_d2dd9b15","updated":"2016-09-06 12:07:29.000000000","message":"Done","commit_id":"61d8a40e276a9a0382d1127ba46f69625d973286"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"45c618e0f70eed2fd42dc8486664e1f278513509","unresolved":false,"context_lines":[{"line_number":20,"context_line":"on premise software in their clouds."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Add a generic database based bank implementation. It will use database tables"},{"line_number":23,"context_line":"for checkpoint objects storing data and metadata."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Use Cases"},{"line_number":26,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a89bdaa_1558cd31","line":23,"range":{"start_line":23,"start_character":23,"end_line":23,"end_character":30},"updated":"2016-09-06 10:09:37.000000000","message":"is it better to use \u0027involving\u0027 instead.","commit_id":"61d8a40e276a9a0382d1127ba46f69625d973286"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"45c618e0f70eed2fd42dc8486664e1f278513509","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Deployers might not want or will be unable to install a extra storage(swift)"},{"line_number":29,"context_line":"in their clouds. Deployers use the vendor\u0027s storage device as the back-end of"},{"line_number":30,"context_line":"backup software for saving backup copies in their solutions. The bank is not"},{"line_number":31,"context_line":"used for saving backup copies. It is only used for saving checkpoint metadata."},{"line_number":32,"context_line":"They want to save checkpoint metadata in the database. The database nearly"},{"line_number":33,"context_line":"is same as the database of Karbor api service."},{"line_number":34,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a89bdaa_35b4f1cf","line":31,"range":{"start_line":30,"start_character":61,"end_line":31,"end_character":78},"updated":"2016-09-06 10:09:37.000000000","message":"Is it better to say like this: The bank is not used for saving\nbackup copies, bug only for saving checkpoint metadata.","commit_id":"61d8a40e276a9a0382d1127ba46f69625d973286"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"343b06a7db46a85d6f7c041630fd4d001b39564a","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Deployers might not want or will be unable to install a extra storage(swift)"},{"line_number":29,"context_line":"in their clouds. Deployers use the vendor\u0027s storage device as the back-end of"},{"line_number":30,"context_line":"backup software for saving backup copies in their solutions. The bank is not"},{"line_number":31,"context_line":"used for saving backup copies. It is only used for saving checkpoint metadata."},{"line_number":32,"context_line":"They want to save checkpoint metadata in the database. The database nearly"},{"line_number":33,"context_line":"is same as the database of Karbor api service."},{"line_number":34,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a89bdaa_335a4450","line":31,"range":{"start_line":30,"start_character":61,"end_line":31,"end_character":78},"in_reply_to":"9a89bdaa_35b4f1cf","updated":"2016-09-06 12:07:29.000000000","message":"Done","commit_id":"61d8a40e276a9a0382d1127ba46f69625d973286"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"45c618e0f70eed2fd42dc8486664e1f278513509","unresolved":false,"context_lines":[{"line_number":41,"context_line":"The database bank is mainly used for saving the checkpoint metadata. Saving"},{"line_number":42,"context_line":"backup copies(image chunks) is not recommended. It is optional. So a check"},{"line_number":43,"context_line":"about whether the plugin use bank to save data should be added when the plugin"},{"line_number":44,"context_line":"is loading."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The BLOB type is supported by Mysql and Postgresql. So we can use BLOB column"},{"line_number":47,"context_line":"in the database to save backup copies, binary large objects."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a89bdaa_d57905fe","line":44,"range":{"start_line":44,"start_character":3,"end_line":44,"end_character":10},"updated":"2016-09-06 10:09:37.000000000","message":"s/loading/loaded","commit_id":"61d8a40e276a9a0382d1127ba46f69625d973286"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"343b06a7db46a85d6f7c041630fd4d001b39564a","unresolved":false,"context_lines":[{"line_number":41,"context_line":"The database bank is mainly used for saving the checkpoint metadata. Saving"},{"line_number":42,"context_line":"backup copies(image chunks) is not recommended. It is optional. So a check"},{"line_number":43,"context_line":"about whether the plugin use bank to save data should be added when the plugin"},{"line_number":44,"context_line":"is loading."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The BLOB type is supported by Mysql and Postgresql. So we can use BLOB column"},{"line_number":47,"context_line":"in the database to save backup copies, binary large objects."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a89bdaa_1610ce4d","line":44,"range":{"start_line":44,"start_character":3,"end_line":44,"end_character":10},"in_reply_to":"9a89bdaa_d57905fe","updated":"2016-09-06 12:07:29.000000000","message":"Done","commit_id":"61d8a40e276a9a0382d1127ba46f69625d973286"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"45c618e0f70eed2fd42dc8486664e1f278513509","unresolved":false,"context_lines":[{"line_number":74,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":75,"context_line":"| checkpoint_id      | uuid         | NO   | PRI | NULL    |                |"},{"line_number":76,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":77,"context_line":"| project_id         | varchar(36)  | NO   |     | NULL    |                |"},{"line_number":78,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":79,"context_line":"| checkpoint_status  | varchar(36)  | NO   |     | NULL    |                |"},{"line_number":80,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a89bdaa_a88c2880","line":77,"range":{"start_line":77,"start_character":2,"end_line":77,"end_character":12},"updated":"2016-09-06 10:09:37.000000000","message":"It is better to add a filed as \u0027user_id\u0027. Because If add it, we can query checkpoint by user, not only by project.","commit_id":"61d8a40e276a9a0382d1127ba46f69625d973286"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"45c618e0f70eed2fd42dc8486664e1f278513509","unresolved":false,"context_lines":[{"line_number":82,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":83,"context_line":"| plan_id            | varchar(36)  | NO   |     | NULL    |                |"},{"line_number":84,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":85,"context_line":"| operation_id       | varchar(36)  | YES  |     | NULL    |                |"},{"line_number":86,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":87,"context_line":"| create_by          | varchar(36)  | YES  |     | NULL    |                |"},{"line_number":88,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a89bdaa_7573d9e7","line":85,"range":{"start_line":85,"start_character":2,"end_line":85,"end_character":14},"updated":"2016-09-06 10:09:37.000000000","message":"what does it reference?","commit_id":"61d8a40e276a9a0382d1127ba46f69625d973286"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"343b06a7db46a85d6f7c041630fd4d001b39564a","unresolved":false,"context_lines":[{"line_number":82,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":83,"context_line":"| plan_id            | varchar(36)  | NO   |     | NULL    |                |"},{"line_number":84,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":85,"context_line":"| operation_id       | varchar(36)  | YES  |     | NULL    |                |"},{"line_number":86,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":87,"context_line":"| create_by          | varchar(36)  | YES  |     | NULL    |                |"},{"line_number":88,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a89bdaa_96be9ed2","line":85,"range":{"start_line":85,"start_character":2,"end_line":85,"end_character":14},"in_reply_to":"9a89bdaa_7573d9e7","updated":"2016-09-06 12:07:29.000000000","message":"It is the x-\u003capplication\u003e--\u003ckey-name\u003e field of extra-info.","commit_id":"61d8a40e276a9a0382d1127ba46f69625d973286"},{"author":{"_account_id":19346,"name":"yinwei","email":"yinweiishere@icloud.com","username":"yinwei"},"change_message_id":"943b18dd13caf039eba3716dcf419d9f8002c901","unresolved":false,"context_lines":[{"line_number":30,"context_line":"backup software for saving backup copies in their solutions. The bank is not"},{"line_number":31,"context_line":"used for saving backup copies, but only for saving checkpoint metadata."},{"line_number":32,"context_line":"They want to save checkpoint metadata in the database. The database nearly"},{"line_number":33,"context_line":"is same as the database of Karbor api service."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Proposed change"},{"line_number":36,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a89bdaa_c4d04cf9","line":33,"updated":"2016-09-07 01:55:07.000000000","message":"should describe the replication capability and limitation of db based bank? \nThe design point of bank is to replicate checkpoint, we need clarify the capability of different bank backends. Plus, shall we add config for db replication config (could be the next step)?","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"6e978a78c27a56b3bb9fa445ccd2231724c9aed8","unresolved":false,"context_lines":[{"line_number":30,"context_line":"backup software for saving backup copies in their solutions. The bank is not"},{"line_number":31,"context_line":"used for saving backup copies, but only for saving checkpoint metadata."},{"line_number":32,"context_line":"They want to save checkpoint metadata in the database. The database nearly"},{"line_number":33,"context_line":"is same as the database of Karbor api service."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Proposed change"},{"line_number":36,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5201f7_59c83775","line":33,"in_reply_to":"9a89bdaa_9d5a0e29","updated":"2016-12-29 09:31:43.000000000","message":"hi yinwei, replication capability of database back-end could be considered in the next step. In this spec, the database is  used as the back-end of bank in a single site deployment.","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12e3545e76686cb5110c21ad45d1c667f3a95510","unresolved":false,"context_lines":[{"line_number":30,"context_line":"backup software for saving backup copies in their solutions. The bank is not"},{"line_number":31,"context_line":"used for saving backup copies, but only for saving checkpoint metadata."},{"line_number":32,"context_line":"They want to save checkpoint metadata in the database. The database nearly"},{"line_number":33,"context_line":"is same as the database of Karbor api service."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Proposed change"},{"line_number":36,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a89bdaa_9d5a0e29","line":33,"in_reply_to":"9a89bdaa_c4d04cf9","updated":"2016-09-07 06:48:21.000000000","message":"Do you mean that we may need the replication capability of database in the cross-site restoration scene?","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":15069,"name":"zhonghuali","email":"lizhonghua.li@huawei.com","username":"sloblee"},"change_message_id":"e127df1403c12e0f007178fba144fb754cb8bcfb","unresolved":false,"context_lines":[{"line_number":35,"context_line":"Proposed change"},{"line_number":36,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"A generic database based bank implementation, suppose to support the most"},{"line_number":39,"context_line":"popular databases as the back-end of the bank. Such as Mysql, Postgresql."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The database bank is mainly used for saving the checkpoint metadata. Saving"},{"line_number":42,"context_line":"backup copies(image chunks) is not recommended. It is optional. So a check"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a89bdaa_26acb733","line":39,"range":{"start_line":38,"start_character":46,"end_line":39,"end_character":72},"updated":"2016-09-06 15:37:06.000000000","message":"could you please declare the support list?","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":19346,"name":"yinwei","email":"yinweiishere@icloud.com","username":"yinwei"},"change_message_id":"943b18dd13caf039eba3716dcf419d9f8002c901","unresolved":false,"context_lines":[{"line_number":35,"context_line":"Proposed change"},{"line_number":36,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"A generic database based bank implementation, suppose to support the most"},{"line_number":39,"context_line":"popular databases as the back-end of the bank. Such as Mysql, Postgresql."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The database bank is mainly used for saving the checkpoint metadata. Saving"},{"line_number":42,"context_line":"backup copies(image chunks) is not recommended. It is optional. So a check"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a89bdaa_6456a0cf","line":39,"range":{"start_line":38,"start_character":46,"end_line":39,"end_character":72},"in_reply_to":"9a89bdaa_26acb733","updated":"2016-09-07 01:55:07.000000000","message":"is the intent to support most sql based database?","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"e3e8fced741610013b042f29cf096c31034e27e4","unresolved":false,"context_lines":[{"line_number":35,"context_line":"Proposed change"},{"line_number":36,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"A generic database based bank implementation, suppose to support the most"},{"line_number":39,"context_line":"popular databases as the back-end of the bank. Such as Mysql, Postgresql."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The database bank is mainly used for saving the checkpoint metadata. Saving"},{"line_number":42,"context_line":"backup copies(image chunks) is not recommended. It is optional. So a check"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a89bdaa_db0bc628","line":39,"range":{"start_line":38,"start_character":46,"end_line":39,"end_character":72},"in_reply_to":"9a89bdaa_6456a0cf","updated":"2016-09-07 03:58:11.000000000","message":"suppose to support most sql based database. But we need BLOB type of database to write binary backup data. So I need do a check about most popular sql based database.","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":19346,"name":"yinwei","email":"yinweiishere@icloud.com","username":"yinwei"},"change_message_id":"943b18dd13caf039eba3716dcf419d9f8002c901","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The database bank is mainly used for saving the checkpoint metadata. Saving"},{"line_number":42,"context_line":"backup copies(image chunks) is not recommended. It is optional. So a check"},{"line_number":43,"context_line":"about whether the plugin use bank to save data should be added when the plugin"},{"line_number":44,"context_line":"is loaded."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The BLOB type is supported by Mysql and Postgresql. So we can use BLOB column"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a89bdaa_e418f020","line":43,"updated":"2016-09-07 01:55:07.000000000","message":"Why there is the check?  I take the \u0027optional\u0027 as user is free to choose save data or not although it\u0027s not recommended. It means that the db based bank is ready for saving data thought not efficient.\nPls. clarify what\u0027s the case to check here.","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"e3e8fced741610013b042f29cf096c31034e27e4","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The database bank is mainly used for saving the checkpoint metadata. Saving"},{"line_number":42,"context_line":"backup copies(image chunks) is not recommended. It is optional. So a check"},{"line_number":43,"context_line":"about whether the plugin use bank to save data should be added when the plugin"},{"line_number":44,"context_line":"is loaded."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The BLOB type is supported by Mysql and Postgresql. So we can use BLOB column"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a89bdaa_2ed2b25c","line":43,"in_reply_to":"9a89bdaa_e418f020","updated":"2016-09-07 03:58:11.000000000","message":"If the database in supoort list all suport write binary data, the check is not needed. I will delete this description.","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":23068,"name":"Wang Hui","email":"wanghui71@huawei.com","username":"krejwang"},"change_message_id":"be10573db672344db68729dc5673f1706773219b","unresolved":false,"context_lines":[{"line_number":43,"context_line":"about whether the plugin use bank to save data should be added when the plugin"},{"line_number":44,"context_line":"is loaded."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The BLOB type is supported by Mysql and Postgresql. So we can use BLOB column"},{"line_number":47,"context_line":"in the database to save backup copies, binary large objects."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"A new configuration item about the database instance connection is added to"},{"line_number":50,"context_line":"the karbor.conf:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a89bdaa_8e0c9e3c","line":47,"range":{"start_line":46,"start_character":0,"end_line":47,"end_character":60},"updated":"2016-09-07 03:37:17.000000000","message":"In my opinion,in swift bank implementation we can use container to save backup copies,then is there some difference when using BLOB type to save backup copies in database bank?If so,what\u0027s the feature of BLOB type?","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":15069,"name":"zhonghuali","email":"lizhonghua.li@huawei.com","username":"sloblee"},"change_message_id":"e127df1403c12e0f007178fba144fb754cb8bcfb","unresolved":false,"context_lines":[{"line_number":50,"context_line":"the karbor.conf:"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"[bank_database]"},{"line_number":53,"context_line":"connection \u003d mysql+pymysql://root:stackdb@127.0.0.5/karbor_bank?charset\u003dutf8"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"The bank database instance connection is initialized when the bank is loaded."},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a89bdaa_210581bb","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":76},"updated":"2016-09-06 15:37:06.000000000","message":"can the bank back-end(DB instance) be the same as generic db instance?","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"e3e8fced741610013b042f29cf096c31034e27e4","unresolved":false,"context_lines":[{"line_number":50,"context_line":"the karbor.conf:"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"[bank_database]"},{"line_number":53,"context_line":"connection \u003d mysql+pymysql://root:stackdb@127.0.0.5/karbor_bank?charset\u003dutf8"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"The bank database instance connection is initialized when the bank is loaded."},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a89bdaa_ae740268","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":76},"in_reply_to":"9a89bdaa_210581bb","updated":"2016-09-07 03:58:11.000000000","message":"The database connection of bank can be same as the datbase base karbor. It is supported.","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":19346,"name":"yinwei","email":"yinweiishere@icloud.com","username":"yinwei"},"change_message_id":"943b18dd13caf039eba3716dcf419d9f8002c901","unresolved":false,"context_lines":[{"line_number":50,"context_line":"the karbor.conf:"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"[bank_database]"},{"line_number":53,"context_line":"connection \u003d mysql+pymysql://root:stackdb@127.0.0.5/karbor_bank?charset\u003dutf8"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"The bank database instance connection is initialized when the bank is loaded."},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a89bdaa_a497c846","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":76},"in_reply_to":"9a89bdaa_210581bb","updated":"2016-09-07 01:55:07.000000000","message":"should comment this is for example?\ntogether there should be a concrete data base type in case we need a concrete db class to implement the specific connect and initialize functions?","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"e3e8fced741610013b042f29cf096c31034e27e4","unresolved":false,"context_lines":[{"line_number":50,"context_line":"the karbor.conf:"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"[bank_database]"},{"line_number":53,"context_line":"connection \u003d mysql+pymysql://root:stackdb@127.0.0.5/karbor_bank?charset\u003dutf8"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"The bank database instance connection is initialized when the bank is loaded."},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a89bdaa_cef78689","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":76},"in_reply_to":"9a89bdaa_a497c846","updated":"2016-09-07 03:58:11.000000000","message":"IMO, we use the public library about database initialization and operation. So a common db class module can support all database.","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":15069,"name":"zhonghuali","email":"lizhonghua.li@huawei.com","username":"sloblee"},"change_message_id":"228878556d1b10189bc5ef13c0bb432e8a7ac5a6","unresolved":false,"context_lines":[{"line_number":94,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"**checkpoint_item**"},{"line_number":98,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":99,"context_line":"| Field              | Type         | Null | Key | Default |      Extra     |"},{"line_number":100,"context_line":"+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a89bdaa_a1a330ff","line":97,"range":{"start_line":97,"start_character":1,"end_line":97,"end_character":19},"updated":"2016-09-07 07:21:09.000000000","message":"if I understand correctly, this table will be used for storing backup copy datas(business data), and this is optional table only for someone wants to write his data into DB instance.am I right or something else I had overlooked?","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"6e978a78c27a56b3bb9fa445ccd2231724c9aed8","unresolved":false,"context_lines":[{"line_number":94,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"**checkpoint_item**"},{"line_number":98,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":99,"context_line":"| Field              | Type         | Null | Key | Default |      Extra     |"},{"line_number":100,"context_line":"+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5201f7_b9ba03bf","line":97,"range":{"start_line":97,"start_character":1,"end_line":97,"end_character":19},"in_reply_to":"9a89bdaa_a1a330ff","updated":"2016-12-29 09:31:43.000000000","message":"It is not only used for storing backup copy datas(business data). It is also used for saving the status and extra-info about the resources protecttion.  Storing backup copy data is optional. In the swift bank container, the metadata about every resource in a plan are separated files.","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":15069,"name":"zhonghuali","email":"lizhonghua.li@huawei.com","username":"sloblee"},"change_message_id":"228878556d1b10189bc5ef13c0bb432e8a7ac5a6","unresolved":false,"context_lines":[{"line_number":98,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":99,"context_line":"| Field              | Type         | Null | Key | Default |      Extra     |"},{"line_number":100,"context_line":"+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":101,"context_line":"| created_at         | datetime     | YES  |     | NULL    |                |"},{"line_number":102,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":103,"context_line":"| updated_at         | datetime     | YES  |     | NULL    |                |"},{"line_number":104,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":105,"context_line":"| deleted_at         | datetime     | YES  |     | NULL    |                |"},{"line_number":106,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":107,"context_line":"| deleted            | tinyint(1)   | NO   |     | NULL    |                |"},{"line_number":108,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":109,"context_line":"| id                 | Integer      | NO   | PRI | NULL    |                |"},{"line_number":110,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a89bdaa_9da20e4a","line":107,"range":{"start_line":101,"start_character":1,"end_line":107,"end_character":68},"updated":"2016-09-07 07:21:09.000000000","message":"what\u0027s the difference between these fields in this table and with the same names that in the \"checkpoint\" table?","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"1da4ecc2377b53db2120e8bda00fcf788331e7bc","unresolved":false,"context_lines":[{"line_number":98,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":99,"context_line":"| Field              | Type         | Null | Key | Default |      Extra     |"},{"line_number":100,"context_line":"+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":101,"context_line":"| created_at         | datetime     | YES  |     | NULL    |                |"},{"line_number":102,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":103,"context_line":"| updated_at         | datetime     | YES  |     | NULL    |                |"},{"line_number":104,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":105,"context_line":"| deleted_at         | datetime     | YES  |     | NULL    |                |"},{"line_number":106,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":107,"context_line":"| deleted            | tinyint(1)   | NO   |     | NULL    |                |"},{"line_number":108,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"},{"line_number":109,"context_line":"| id                 | Integer      | NO   | PRI | NULL    |                |"},{"line_number":110,"context_line":"+--------------------+--------------+------+-----+---------+----------------+"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a89bdaa_abd05d54","line":107,"range":{"start_line":101,"start_character":1,"end_line":107,"end_character":68},"in_reply_to":"9a89bdaa_9da20e4a","updated":"2016-09-13 03:11:27.000000000","message":"These fields have nothing to do with checkpoint metadata. They are maintained by karbor database base class.","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":15069,"name":"zhonghuali","email":"lizhonghua.li@huawei.com","username":"sloblee"},"change_message_id":"e127df1403c12e0f007178fba144fb754cb8bcfb","unresolved":false,"context_lines":[{"line_number":176,"context_line":"Work Items"},{"line_number":177,"context_line":"----------"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* Write Bank Plugin"},{"line_number":180,"context_line":"* Add documentation"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a89bdaa_45ea9010","line":179,"range":{"start_line":179,"start_character":1,"end_line":179,"end_character":19},"updated":"2016-09-06 15:37:06.000000000","message":"it seems the BankPlugin interface was designed only for object storing,  I recommend to add an abstract layer so that can satisfy both and others.","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"6e978a78c27a56b3bb9fa445ccd2231724c9aed8","unresolved":false,"context_lines":[{"line_number":176,"context_line":"Work Items"},{"line_number":177,"context_line":"----------"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* Write Bank Plugin"},{"line_number":180,"context_line":"* Add documentation"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5201f7_392293ba","line":179,"range":{"start_line":179,"start_character":1,"end_line":179,"end_character":19},"in_reply_to":"9a89bdaa_2102c0b4","updated":"2016-12-29 09:31:43.000000000","message":"An abstract layer about BankPlugin maybe is need here. Now the definition of BankPlugin is only suitable for swift, not for database.","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"e3e8fced741610013b042f29cf096c31034e27e4","unresolved":false,"context_lines":[{"line_number":176,"context_line":"Work Items"},{"line_number":177,"context_line":"----------"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* Write Bank Plugin"},{"line_number":180,"context_line":"* Add documentation"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a89bdaa_4ea8d68d","line":179,"range":{"start_line":179,"start_character":1,"end_line":179,"end_character":19},"in_reply_to":"9a89bdaa_45ea9010","updated":"2016-09-07 03:58:11.000000000","message":"So far, the BankPlugin interface for object storing can be userd for database bank plugins. If it is unsatisfied, I will consider adding an abstract layer about the BankPlugin interface.","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"},{"author":{"_account_id":15069,"name":"zhonghuali","email":"lizhonghua.li@huawei.com","username":"sloblee"},"change_message_id":"228878556d1b10189bc5ef13c0bb432e8a7ac5a6","unresolved":false,"context_lines":[{"line_number":176,"context_line":"Work Items"},{"line_number":177,"context_line":"----------"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* Write Bank Plugin"},{"line_number":180,"context_line":"* Add documentation"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a89bdaa_2102c0b4","line":179,"range":{"start_line":179,"start_character":1,"end_line":179,"end_character":19},"in_reply_to":"9a89bdaa_4ea8d68d","updated":"2016-09-07 07:21:09.000000000","message":"it would be satisfy if only think about the function.while they are really different.I confused much about the meaning of \"create_object\" for database.","commit_id":"90f55b443f01957c0d2b856aeb5bbbd01ef52fb3"}]}
