List:Internals« Previous MessageNext Message »
From:Zardosht Kasheff Date:January 17 2011 3:48pm
Subject:Re: Renaming of handler flags for index creation/deletion
View as plain text  
If the only change is in variable names (and therefore very safe), I
think it would be nice if the changes for these changes to be in 5.1
as well. Otherwise, storage engine developers will need to use one set
of flags when compiling their handlerton against 5.1, and another
while compiling against 5.5.

Is there any reason to not have this in 5.1?

-Zardosht

On Mon, Jan 17, 2011 at 10:43 AM, Jon Olav Hauglid
<jon.hauglid@stripped> wrote:
> Hello,
>
> In the scope of the fix for Bug#42230 "during add index, cannot do queries
> on storage engines that implement add_index" we are renaming some of the
> flags defined in handler.h to better reflect their current behavior. This
> change will affect MySQL version 5.5+ (not 5.1).
>
> The purpose of this e-mail is to explain the changes to any external storage
> engine developers that might be affected, and also ask if anyone wants us to
> keep backward compatible defines.
>
> In the patch, we're changing some of the terminology used in the server code
> related to ALTER TABLE - namely "online" and "fast". According to comments
> in handler.h, "online" means "without a table lock" However, the 5.5 ALTER
> TABLE implementation currently always blocks writes and requires exclusive
> table access for the final step(s). The term "online" therefore seems
> misleading.
>
> "fast ALTER TABLE" is described as "off-line without re-create of the table
> (but with a table lock)". In other words, not using a temporary table. Our
> objection here is that "fast" isn't very descriptive. Another problem is
> that "fast" and "online" seem to be used somewhat interchangeably throughout
> the code.
>
> We have replaced "fast alter table" by "in-place alter table" to indicate
> alter table done without a temporary table. The term was inspired by
> http://en.wikipedia.org/wiki/In-place_algorithm
>
> Generally, "online" was also replaced by "in-place". The only practical
> difference between "online" and "fast" was that "online" allowed for
> concurrent reads and this was seldom relevant in the context "online" was
> used.
>
> This has consequences for flags defined in handler.h. These flags are:
>  HA_ONLINE_ADD_INDEX_NO_WRITES
>  HA_ONLINE_DROP_INDEX_NO_WRITES
>  HA_ONLINE_ADD_UNIQUE_INDEX_NO_WRITES
>  HA_ONLINE_DROP_UNIQUE_INDEX_NO_WRITES
>  HA_ONLINE_ADD_PK_INDEX_NO_WRITES
>  HA_ONLINE_DROP_PK_INDEX_NO_WRITES
> and
>  HA_ONLINE_ADD_INDEX
>  HA_ONLINE_DROP_INDEX
>  HA_ONLINE_ADD_UNIQUE_INDEX
>  HA_ONLINE_DROP_UNIQUE_INDEX
>  HA_ONLINE_ADD_PK_INDEX
>  HA_ONLINE_DROP_PK_INDEX
>
> The first group of flags indicated that a storage engine was capable of
> "fast" but not "online" add/drop of indexes. These have been renamed to
> HA_INPLACE_ADD_INDEX_NO_READ_WRITE (etc.)
>
> The second group of flags were used for "fast" and "online" add/drop of
> indexes. These have been renamed to HA_INPLACE_ADD_INDEX_NO_WRITE (etc.)
>
> No changes have been made to the meaning of the flags.
>
> --- Jon Olav Hauglid
>
> --
> MySQL Internals Mailing List
> For list archives: http://lists.mysql.com/internals
> To unsubscribe:    http://lists.mysql.com/internals?unsub=1
>
>
Thread
Renaming of handler flags for index creation/deletionJon Olav Hauglid17 Jan
  • Re: Renaming of handler flags for index creation/deletionZardosht Kasheff17 Jan
    • Re: Renaming of handler flags for index creation/deletionJon Olav Hauglid18 Jan
      • Re: Renaming of handler flags for index creation/deletionZardosht Kasheff18 Jan