Hi Guilhem
Guilhem Bichot wrote:
> Hello Marc,
>
> I see that for files, object_instance_begin is always 0 in my tests:
>
> mysql> select * from EVENTS_WAITS_SUMMARY_BY_INSTANCE where
> object_instance_begin=0 order by 1 ;
>
> +---------------------------------------------+-----------------------+------------+----------------+----------------+----------------+----------------+
>
> | EVENT_NAME | OBJECT_INSTANCE_BEGIN |
> COUNT_STAR | SUM_TIMER_WAIT | MIN_TIMER_WAIT | AVG_TIMER_WAIT |
> MAX_TIMER_WAIT |
>
> +---------------------------------------------+-----------------------+------------+----------------+----------------+----------------+----------------+
>
> | wait/io/file/maria/control | 0 |
> 6 | 113417304 | 1987986 | 18902884 | 62948886 |
> | wait/io/file/maria/log_descriptor_directory | 0 |
> 2 | 85008924 | 5579574 | 42504462 | 79429350 |
> | wait/io/file/maria/recovery_trace | 0 |
> 7 | 182696514 | 780780 | 26099502 | 60282222 |
> | wait/io/file/myisam/dfile | 0 |
> 1 | 12882870 | 12882870 | 12882870 | 12882870 |
> | wait/io/file/myisam/dfile | 0 |
> 1 | 12924912 | 12924912 | 12924912 | 12924912 |
> | wait/io/file/myisam/dfile | 0 |
> 4 | 24180156 | 1285284 | 6045039 | 13159146 |
> | wait/io/file/myisam/dfile | 0 |
> 3 | 17951934 | 1327326 | 5983978 | 13975962 |
>
> As this is a "by_instance" table (one line per MyISAM data file, the
> dfile lines above), I expected a discriminating information to be
> present, so that I can know, among the 3 dfile above, which one belongs
> to what; for this, I expected file names to show up.
> I see that for mutex instances, the column is not 0.
object_instance_begin is only an address, it can not be a file name.
For files, there is no "identity" pointer that can be used, since there
is no file object the code can use (FILE* is a file handle, not
representative of the underlying file itself).
So, I used the address of the PFS_FILE* structure itself for:
- EVENTS_WAITS_CURRENT.OBJECT_INSTANCE_BEGIN
- EVENTS_WAITS_HISTORY.OBJECT_INSTANCE_BEGIN
- EVENTS_WAITS_HISTORY_LONG.OBJECT_INSTANCE_BEGIN
- EVENTS_WAITS_SUMMARY_BY_INSTANCE.OBJECT_INSTANCE_BEGIN
so that there is always a discriminant in OBJECT_INSTANCE_BEGIN,
globally unique
Now, this raise the question about adding an OBJECT_INSTANCE_BEGIN
column in FILE_INSTANCES, so that we have both the file name and
address, to join data ...
The same question will arise for tables, where a table can be named:
- either by schema + name
- or by object_instance_begin (the address of the table share),
when we get to something like TABLE_INSTANCES, and summary by tables.
Peter, any opinion ?