-
Notifications
You must be signed in to change notification settings - Fork 711
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Online/inplace DDL operations #47
Comments
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes #182 Also part of #47 Future improvements are planned in a separate diff, to support SSTFileWriter API. @update-submodule: rocksdb Test Plan: add_index_inplace test file which currently has basic tests to cover several corner cases + a crash recovery test using DBUG_SUICIDE Performance test results are included in the quip document here https://fb.quip.com/l3gDA9IjGUVw Also ran checksum tests to ensure that data matched between two instances, one which did inplace index creation and another that was initially created with the indexes Reviewers: yoshinorim, jkedgar, spetrunia, hermanlee4 Reviewed By: hermanlee4 Subscribers: sdong, webscalesql-eng Differential Revision: https://reviews.facebook.net/D60837
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook/mysql-5.6@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook/mysql-5.6#182 Also part of facebook/mysql-5.6#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. @update-submodule: rocksdb Test Plan: add_index_inplace test file which currently has basic tests to cover several corner cases + a crash recovery test using DBUG_SUICIDE Performance test results are included in the quip document here https://fb.quip.com/l3gDA9IjGUVw Also ran checksum tests to ensure that data matched between two instances, one which did inplace index creation and another that was initially created with the indexes Reviewers: yoshinorim, jkedgar, spetrunia, hermanlee4 Reviewed By: hermanlee4 Subscribers: sdong, webscalesql-eng Differential Revision: https://reviews.facebook.net/D60837
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook/mysql-5.6@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook/mysql-5.6#182 Also part of facebook/mysql-5.6#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. @update-submodule: rocksdb Test Plan: add_index_inplace test file which currently has basic tests to cover several corner cases + a crash recovery test using DBUG_SUICIDE Performance test results are included in the quip document here https://fb.quip.com/l3gDA9IjGUVw Also ran checksum tests to ensure that data matched between two instances, one which did inplace index creation and another that was initially created with the indexes Reviewers: yoshinorim, jkedgar, spetrunia, hermanlee4 Reviewed By: hermanlee4 Subscribers: sdong, webscalesql-eng Differential Revision: https://reviews.facebook.net/D60837
https://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html we need to revisit exactly which of these we can/want to support. Also on the roadmap would be renaming columns, default value changes, changing default auto increment value, adding/dropping columns. |
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes #182 Also part of #47 Future improvements are planned in a separate diff, to support SSTFileWriter API. @update-submodule: rocksdb Test Plan: add_index_inplace test file which currently has basic tests to cover several corner cases + a crash recovery test using DBUG_SUICIDE Performance test results are included in the quip document here https://fb.quip.com/l3gDA9IjGUVw Also ran checksum tests to ensure that data matched between two instances, one which did inplace index creation and another that was initially created with the indexes Reviewers: yoshinorim, jkedgar, spetrunia, hermanlee4 Reviewed By: hermanlee4 Subscribers: sdong, webscalesql-eng Differential Revision: https://reviews.facebook.net/D60837 Differential Revision: https://reviews.facebook.net/D61659 Differential Revision: https://reviews.facebook.net/D62331
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. @update-submodule: rocksdb Test Plan: add_index_inplace test file which currently has basic tests to cover several corner cases + a crash recovery test using DBUG_SUICIDE Performance test results are included in the quip document here https://fb.quip.com/l3gDA9IjGUVw Also ran checksum tests to ensure that data matched between two instances, one which did inplace index creation and another that was initially created with the indexes Reviewers: yoshinorim, jkedgar, spetrunia, hermanlee4 Reviewed By: hermanlee4 Subscribers: sdong, webscalesql-eng Differential Revision: https://reviews.facebook.net/D60837 Differential Revision: https://reviews.facebook.net/D61659 Differential Revision: https://reviews.facebook.net/D62331
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook/mysql-5.6@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook/mysql-5.6#182 Also part of facebook/mysql-5.6#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. @update-submodule: rocksdb Test Plan: add_index_inplace test file which currently has basic tests to cover several corner cases + a crash recovery test using DBUG_SUICIDE Performance test results are included in the quip document here https://fb.quip.com/l3gDA9IjGUVw Also ran checksum tests to ensure that data matched between two instances, one which did inplace index creation and another that was initially created with the indexes Reviewers: yoshinorim, jkedgar, spetrunia, hermanlee4 Reviewed By: hermanlee4 Subscribers: sdong, webscalesql-eng Differential Revision: https://reviews.facebook.net/D60837 Differential Revision: https://reviews.facebook.net/D61659 Differential Revision: https://reviews.facebook.net/D62331
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook/mysql-5.6@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook/mysql-5.6#182 Also part of facebook/mysql-5.6#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. @update-submodule: rocksdb Test Plan: add_index_inplace test file which currently has basic tests to cover several corner cases + a crash recovery test using DBUG_SUICIDE Performance test results are included in the quip document here https://fb.quip.com/l3gDA9IjGUVw Also ran checksum tests to ensure that data matched between two instances, one which did inplace index creation and another that was initially created with the indexes Reviewers: yoshinorim, jkedgar, spetrunia, hermanlee4 Reviewed By: hermanlee4 Subscribers: sdong, webscalesql-eng Differential Revision: https://reviews.facebook.net/D60837 Differential Revision: https://reviews.facebook.net/D61659 Differential Revision: https://reviews.facebook.net/D62331
hello @alxyang . what's going on with online DDL feature? |
Currently we have higher priorities for 1. supporting MyRocks in MySQL 8.0 and 2. improving MyRocks/RocksDB performance. About online schema change, there are several existing solutions like https://github.com/github/gh-ost so it is not the highest priority. We will be likely to start supporting major features like online schema change based on MySQL 8.0, not 5.6. |
@yoshinorim Thank you. we are going to add this feature in MySQL 5.7, if it work perfectly, we can summit a path for you |
@baotiao That is great. Please submit a pull request once it is ready! |
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes #182 Also part of #47 Future improvements are planned in a separate diff, to support SSTFileWriter API. update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331 fbshipit-source-id: f777e7e
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331 fbshipit-source-id: f777e7e
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331 fbshipit-source-id: f777e7e
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331 fbshipit-source-id: f777e7e
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331 fbshipit-source-id: f777e7e
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331 fbshipit-source-id: f777e7e
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes #182 Also part of #47 Future improvements are planned in a separate diff, to support SSTFileWriter API. update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331 fbshipit-source-id: 9e59950687b
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331 fbshipit-source-id: 9e59950687b
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331 fbshipit-source-id: 9e59950687b
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331 fbshipit-source-id: 9e59950687b
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331 fbshipit-source-id: 9e59950687b
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331 fbshipit-source-id: 9e59950687b
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. @update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. @update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. @update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook/mysql-5.6@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook/mysql-5.6#182 Also part of facebook/mysql-5.6#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. @update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. @update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. @update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. @update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. @update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. @update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook#182 Also part of facebook#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. @update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331
Summary: This is part 2 of the changes required to support fast secondary index creation. See Part 1 here (facebook/mysql-5.6@fbbd4aa). Previously adding an index would require copying over the entire table and recreating all the indexes. This diff implements the functionality required to add an index "online", without having to rebuild the table. Fixes facebook/mysql-5.6#182 Also part of facebook/mysql-5.6#47 Future improvements are planned in a separate diff, to support SSTFileWriter API. @update-submodule: rocksdb Differential Revision: https://reviews.facebook.net/D62331
Tuesday Jun 30, 2015 at 17:57 GMT
Originally opened as MySQLOnRocksDB#87
This task is about adding support for online (and/or in-place) DDL operations for MyRocks.
What can be supported
** Default value changes
** N in char(N)
** possibly something else
** Should we try support for adding/removing non-key fields?
** The most important are ADD INDEX/DROP INDEX
How to support it
SQL layer will make the following calls:
h->check_if_supported_inplace_alter() // = HA_ALTER_INPLACE...
h->prepare_inplace_alter_table()
...
h->commit_inplace_alter_table
The first is to inquire whether the storage engine supports in-place operation for the given ALTER TABLE command. The latter are to actually made the change.
The text was updated successfully, but these errors were encountered: