Zardosht Kasheff <zardosht@gmail.com> writes:
I am hoping to resurrect this discussion. Has there been any discussion on implementing the feature of allowing handlers to do fast schema changes in MariaDB (on any version)?
I have put this patch on MySQL 5.1, and I think I have it working. I started looking at MariaDB 5.2, but I do not understand some of the virtual column stuff and field->option_struct and key->option_struct. I am guessing they are related to the new create table syntax, but I do not understand it well enough to be able to integrate this patch in.
I am sorry you had to wait for an answer for so long. I was kind of hoping that someone else would step in with an opinion also. As no-one did, I will just have to re-state my opinion. As I understand from the previous discussion, you patch does not attempt to fully integrate the fast schema changes in the source code. Rather, it adds an extra code path, so that the server contains both the old and the new alter table framework, with some flag to select between one or the other. I did not look at the patch, but I believe this makes it unsuable for including in MariaDB, whatever the version. For this, we will need a complete patch with a clean integration that can be maintained going forward. I would really like to see fast/online ALTER TABLE in MariaDB, but it needs to be done correctly. I fully understand that this is hard work. If you have concrete questions/problems I will do my best to try to get them answered, but if the full task is too much, then my opinion is that it will have to wait. - Kristian.
On Thu, Nov 18, 2010 at 2:53 PM, Zardosht Kasheff <zardosht@gmail.com> wrote:
Hello,
I am wondering if we can resurrect this discussion. In summary, I have a patch that I think I can apply to 5.1, although I realize it is not the ideal solution. It is a solution that I could code that minimizes the risk of introducing a regression for storage engines that do not use this.
The fix is basically to have a new alter table for storage engines that want this feature, and the old alter table for others.
The two biggest reasons I did it this way was: - I did not want to complicate the fix by handling storage engines that implement handler::add_index. - I did not understand the partitioning fixes required.
That being said, what do people think are the next steps that should be taken? I would love to see this feature in MariaDB 5.3, but I do not have the expertise to be able to complete the feature. I am just moving code from one MySQL branch to another.