List:Internals« Previous MessageNext Message »
From:Sergey Vojtovich Date:October 25 2010 3:25pm
Subject:Re: [feedback/review request] Re: index creation and concurrent
reads
View as plain text  
Zardosht,

On Mon, Oct 25, 2010 at 10:55:45AM -0400, Zardosht Kasheff wrote:
> are the worklogs mentioned publicly available? I click on the links
> and get nothing. They state that either they are not public or do not
> exist. It makes understanding the issues difficult.
It seems they're not available. :(

> But the understanding seems to be this:
> InnoDB expects the table to be reopened before index creation, which
> is what "wait_while_table_is_used(thd, table, HA_EXTRA_FORCE_REOPEN);"
> The fix prevents this line from being called, thus causing a bug in
> InnoDB.
> 
> Is my understanding correct?
At least that's what we know so far. Davi is working with InnoDB team to
figure out what's going on.

Regards,
Sergey

> Thanks
> -Zardosht
> 
> 
> On Mon, Oct 25, 2010 at 6:45 AM, Sergey Vojtovich
> <sergey.vojtovich@stripped> wrote:
> > Hi Zardosht, Davi,
> >
> > answers are in bugdb:
> > http://bugs.mysql.com/bug.php?id=42230
> >
> > Regards,
> > Sergey
> >
> > On Fri, Oct 22, 2010 at 10:45:32AM -0400, Zardosht Kasheff wrote:
> >> Yes, we are in agreement here.
> >>
> >> On Fri, Oct 22, 2010 at 10:27 AM, Davi Arnaut <davi.arnaut@stripped>
> wrote:
> >> > On 10/22/10 11:40 AM, Zardosht Kasheff wrote:
> >> >>
> >> >> This is the bug #42230 that is filed.
> >> >>
> >> >
> >> > [..]
> >> >
> >> >>
> >> >> For engines that do not implement add_index, new_table is true and
> >> >> copy_data_between_tables is called, and wait_while_table_is_used
> is
> >> >
> >> > This is a oversimplification, it does not help to understand the
> problem.
> >> > Anyway, who tells whether alter table needs a exclusive metadata lock
> is the
> >> > engine. Alter table uses the handler methods check_if_incompatible_data
> and
> >> > alter_table_flags to verify if the change involves only metadata and
> and if
> >> > online index operations are supported.
> >> >
> >> >> not called. Queries may be run on the table while
> >> >> copy_data_between_tables is being run (a very very long
> operation).
> >> >
> >> > If copy_data_between_tables is called, it means that the table data is
> also
> >> > going to be changed. If only metadata is being changed, there is no
> need to
> >> > copy over the the table data. For example, InnoDB's online index add is
> a
> >> > "metadata only" operation. Eventually, for both cases, a exclusive
> metadata
> >> > lock is always needed because the FRM needs to be modified. If we are
> >> > changing only metadata, this exclusive lock is taken early as later
> the
> >> > table will be renamed. If data is being changed, the exclusive lock is
> >> > delayed to after the table data has been copied.
> >> >
> >> >> For engines that do implement add_index, new_table is false, the
> >> >> 'else' clause is run, and wait_while_table_is_used is called,
> blocking
> >> >> out all queries.
> >> >
> >> > For your engine, data needs to be copied over to a new table on index
> add?
> >> > If not, its a metadata only change and exclusive lock is taken because
> we
> >> > are only going to modify the table metadata (frm).
> >> >
> >> > The point is that it seems that this exclusive lock shouldn't be taken
> so
> >> > early (and this would be the regression introduced by Bug#24395) and
> could
> >> > be delayed to after add/drop_index. But Vojtovich claims that there is
> code
> >> > relying on this exclusive lock that is taken early. So we need to wait
> him
> >> > to identify which code is this.
> >> >
> >> > Regards,
> >> >
> >> > Davi
> >> >
> >>
> >> --
> >> MySQL Internals Mailing List
> >> For list archives: http://lists.mysql.com/internals
> >> To unsubscribe:    http://lists.mysql.com/internals?unsub=1
> >>
> >
> > --
> > Sergey Vojtovich <svoj@stripped>
> > MySQL AB, Software Engineer
> > Izhevsk, Russia, www.mysql.com
> >
> 
> --
> MySQL Internals Mailing List
> For list archives: http://lists.mysql.com/internals
> To unsubscribe:    http://lists.mysql.com/internals?unsub=1
> 

-- 
Sergey Vojtovich <svoj@stripped>
MySQL AB, Software Engineer
Izhevsk, Russia, www.mysql.com
Thread
Re: [feedback/review request] Re: index creation and concurrent readsZardosht Kasheff24 Jul
  • Re: [feedback/review request] Re: index creation and concurrent readsDavi Arnaut24 Jul
    • Re: [feedback/review request] Re: index creation and concurrent readsZardosht Kasheff24 Jul
      • Re: [feedback/review request] Re: index creation and concurrent readsDavi Arnaut24 Jul
        • Re: [feedback/review request] Re: index creation and concurrent readsZardosht Kasheff24 Jul
    • Re: [feedback/review request] Re: index creation and concurrent readsZardosht Kasheff22 Oct
      • Re: [feedback/review request] Re: index creation and concurrent readsDavi Arnaut22 Oct
        • Re: [feedback/review request] Re: index creation and concurrent readsZardosht Kasheff22 Oct
          • Re: [feedback/review request] Re: index creation and concurrent readsDavi Arnaut22 Oct
            • Re: [feedback/review request] Re: index creation and concurrent readsZardosht Kasheff22 Oct
              • Re: [feedback/review request] Re: index creation and concurrentreadsSergey Vojtovich25 Oct
                • Re: [feedback/review request] Re: index creation and concurrent readsZardosht Kasheff25 Oct
                  • Re: [feedback/review request] Re: index creation and concurrentreadsSergey Vojtovich25 Oct