4777 Marko Mäkelä 2012-12-13 [merge]
Merge mysql-5.5 to mysql-5.6.
modified:
storage/innobase/handler/ha_innodb.cc
4776 Libing Song 2012-12-13
Bug#15980626 POSSIBLE REPLICATION PERFORMANCE DEGRADATION
THROUGH RLI->FLUSH_INFO(TRUE)
Problem:sync_relay_log_info was being ignored when transactional
tables were updated. No matter what number was set, relay log info
file was synced upon committing. This was causing the performance
degradation.
Fix: Sync(or update relay log info table) after each transaction
should happen only when both data and relay log info are stored
in transactional tables. Only this scenario will guarantee crash
safety.
modified:
sql/log_event.cc
=== modified file 'storage/innobase/handler/ha_innodb.cc'
--- a/storage/innobase/handler/ha_innodb.cc revid:libing.song@oracle.com-20121213145052-oiry0io225bjiw6g
+++ b/storage/innobase/handler/ha_innodb.cc revid:marko.makela@stripped-20121213151456-h3xc7nmlwgq2oyhn
@@ -1730,101 +1730,6 @@ innobase_get_lower_case_table_names(void
return(lower_case_table_names);
}
-#if defined (__WIN__)
-extern MYSQL_PLUGIN_IMPORT MY_TMPDIR mysql_tmpdir_list;
-/*******************************************************************//**
-Map an OS error to an errno value. The OS error number is stored in
-_doserrno and the mapped value is stored in errno) */
-void __cdecl
-_dosmaperr(
- unsigned long); /*!< in: OS error value */
-
-/*********************************************************************//**
-Creates a temporary file.
-@return temporary file descriptor, or < 0 on error */
-UNIV_INTERN
-int
-innobase_mysql_tmpfile(void)
-/*========================*/
-{
- int fd; /* handle of opened file */
- HANDLE osfh; /* OS handle of opened file */
- char* tmpdir; /* point to the directory
- where to create file */
- TCHAR path_buf[MAX_PATH - 14]; /* buffer for tmp file path.
- The length cannot be longer
- than MAX_PATH - 14, or
- GetTempFileName will fail. */
- char filename[MAX_PATH]; /* name of the tmpfile */
- DWORD fileaccess = GENERIC_READ /* OS file access */
- | GENERIC_WRITE
- | DELETE;
- DWORD fileshare = FILE_SHARE_READ /* OS file sharing mode */
- | FILE_SHARE_WRITE
- | FILE_SHARE_DELETE;
- DWORD filecreate = CREATE_ALWAYS; /* OS method of open/create */
- DWORD fileattrib = /* OS file attribute flags */
- FILE_ATTRIBUTE_NORMAL
- | FILE_FLAG_DELETE_ON_CLOSE
- | FILE_ATTRIBUTE_TEMPORARY
- | FILE_FLAG_SEQUENTIAL_SCAN;
-
- DBUG_ENTER("innobase_mysql_tmpfile");
-
- DBUG_EXECUTE_IF("innobase_tmpfile_creation_failure", return(-1););
-
- tmpdir = my_tmpdir(&mysql_tmpdir_list);
-
- /* The tmpdir parameter can not be NULL for GetTempFileName. */
- if (!tmpdir) {
- uint ret;
-
- /* Use GetTempPath to determine path for temporary files. */
- ret = GetTempPath(sizeof(path_buf), path_buf);
- if (ret > sizeof(path_buf) || (ret == 0)) {
-
- _dosmaperr(GetLastError()); /* map error */
- DBUG_RETURN(-1);
- }
-
- tmpdir = path_buf;
- }
-
- /* Use GetTempFileName to generate a unique filename. */
- if (!GetTempFileName(tmpdir, "ib", 0, filename)) {
-
- _dosmaperr(GetLastError()); /* map error */
- DBUG_RETURN(-1);
- }
-
- DBUG_PRINT("info", ("filename: %s", filename));
-
- /* Open/Create the file. */
- osfh = CreateFile(filename, fileaccess, fileshare, NULL,
- filecreate, fileattrib, NULL);
- if (osfh == INVALID_HANDLE_VALUE) {
-
- /* open/create file failed! */
- _dosmaperr(GetLastError()); /* map error */
- DBUG_RETURN(-1);
- }
-
- do {
- /* Associates a CRT file descriptor with the OS file handle. */
- fd = _open_osfhandle((intptr_t) osfh, 0);
- } while (fd == -1 && errno == EINTR);
-
- if (fd == -1) {
- /* Open failed, close the file handle. */
-
- _dosmaperr(GetLastError()); /* map error */
- CloseHandle(osfh); /* no need to check if
- CloseHandle fails */
- }
-
- DBUG_RETURN(fd);
-}
-#else
/*********************************************************************//**
Creates a temporary file.
@return temporary file descriptor, or < 0 on error */
@@ -1883,7 +1788,6 @@ innobase_mysql_tmpfile(void)
}
return(fd2);
}
-#endif /* defined (__WIN__) */
/*********************************************************************//**
Wrapper around MySQL's copy_and_convert function.
No bundle (reason: useless for push emails).| Thread |
|---|
| • bzr push into mysql-5.6 branch (marko.makela:4776 to 4777) | marko.makela | 17 Dec |