Commit graph

1668 commits

Author SHA1 Message Date
Jan Lindström
2d340f9a67 Fixed bug on free buffer space calculation when LZO is used.
Fixed bug on function call when InnoDB plugin is used.
2014-04-23 19:23:11 +03:00
Jan Lindström
271ea3c86e Merge lp:maria/10.0 up to mariadb-10.0.10 revision 4140. 2014-04-17 08:22:54 +03:00
Jan Lindström
2f46e5b9fc MDEV-6070: FusionIO: Failure to create a table with ATOMIC_WRITES
option leaves the database in inconsistent state,

Analysis: Problem was that atomic writes variable had incorrect
type on same places leading to fact that e.g. OFF option was
not regognized. Furthermore, some error check code was missing
from both InnoDB and XtraDB engines. Finally, when table is
created we have already created the .ibd file and if we can't
set atomic writes it stays there.

Fix: Fix atomic writes variable type to ulint as it should be.
Fix: Add proper error code checking on os errors on both InnoDB
and XtraDB
Fix: Remove the .idb file when atomic writes can't be enabled
to a new table.
2014-04-16 16:55:36 +03:00
Jan Lindström
13c73c31c3 Added support for LZO compression method.
Removed: innodb_use_lz4 configuration parameter

Added: innodb_compression_algorithm configuration parameter
0 = no compression, 1 = ZLIB, 2 = LZ4, 3 = LZO

Fixed issue with incorrect trim calculations
2014-04-15 14:28:25 +03:00
Jan Lindström
3b61030dc1 Fix error on innodb_mtflush_threads parameter. 2014-03-28 08:42:53 +02:00
Jan Lindström
0b92fe9c18 Fixed windows compiler errors. 2014-03-27 12:21:16 +02:00
Jan Lindström
5027338039 Fix bug https://code.launchpad.net/~laurynas-biveinis/percona-server/bug1295268
(Inadequate background LRU flushing for write workloads with InnoDB compression).
  
  If InnoDB compression is used and the workload has writes, the
  following situation is possible. The LRU flusher issues an LRU flush
  request for an instance.  buf_do_LRU_batch decides to perform
  unzip_LRU eviction and this eviction might fully satisfy the
  request. Then buf_flush_LRU_tail checks the number of flushed pages in
  the last iteration, finds it to be zero, and wrongly decides not to
  flush that instance anymore.
  
  Fixed by maintaining unzip_LRU eviction counter in struct
  flush_counter_t variables, and checking it in buf_flush_LRU_tail when
  deciding whether to stop flushing the current instance.

Added test cases for new configuration files to get mysql-test-run suite sys_vars
to pass. Fix some small errors.
2014-03-27 09:35:24 +02:00
Jan Lindström
6a756b3a44 Code cleanup: Removed some unnecessary outputs from standard builds (available on
special builds UNIV_PAGECOMPRESS_DEBUG and UNIV_MTFLUSH_DEBUG).

Added a new status variable compress_pages_page_compression_error to count possible
compression errors.
2014-03-21 15:46:36 +02:00
unknown
b352969118 MDEV-5914: Parallel replication deadlock due to InnoDB lock conflicts
Due to how gap locks work, two transactions could group commit together on the
master, but get lock conflicts and then deadlock due to different thread
scheduling order on slave.

For now, remove these deadlocks by running the parallel slave in READ
COMMITTED mode. And let InnoDB/XtraDB allow statement-based binlogging for the
parallel slave in READ COMMITTED.

We are also investigating a different solution long-term, which is based on
relaxing the gap locks only between the transactions running in parallel for
one slave, but not against possibly external transactions.
2014-03-21 13:30:55 +01:00
Jan Lindström
f1ca1f37c9 MDEV-5878: Failing assertion: mutex_own(mutex) with innodb_use_fallocate=ON.
Analysis: This was merge error on file fil0fil.cc. fil_system mutex was taken twice because of this.

Fix: Remove unnecessary mutex_enter and fixed the issue with slow posix_fallocate usage.
2014-03-17 15:49:41 +02:00
Jan Lindström
3ea72a2ba9 Removed options innodb_compress_index_pages and innodb_trim_pct. Both are
unnecessary. There is a lot more index pages than there is normal pages.
Earlier all pages were compressed and this provided best performance and
compression ratio. Added status variable to show how many non index pages
are written.
2014-03-12 14:47:38 +02:00
Jan Lindström
e7df30b8dd Merge lp:maria/10.0 up to revision 4040 = MariaDB 10.0.9 RC 2014-03-11 07:57:54 +02:00
Sergei Golubchik
68916bcab3 workaround for xtradb on gcc 4.1.2 RHEL5/x86, gcc atomic ops only work under -march=i686 2014-03-07 17:47:47 +01:00
Sergei Golubchik
a5fdd75980 XtraDB made the default 2014-03-07 15:21:07 +01:00
Jan Lindström
c556b9d817 Changed so that innodb_compress_index pages means that if true also index
pages are compressed if false index pages are not compressed.

Fixed small output error when page_compression_level was incorrectly
given.
2014-03-07 08:20:43 +02:00
Jan Lindström
3a4b8879e5 Set index page page compression on by default and remove innodb_trim_pct
as it is not used/implemented.
2014-03-04 20:12:32 +02:00
Jan Lindström
d64fa1d651 Additional merge to lp:maria/10.0 2014-03-04 18:56:18 +02:00
Jan Lindström
7322270a05 Set actual compressed page size also on read code path to buffer pool so
that we can later use it to avoid unnecessary trim operations.
2014-03-04 17:14:08 +02:00
Jan Lindström
fd38dca5d5 Fixed a hang. The core issues is with the heap-thrashing by the
individual queue's. Tried to minimize memory allocation from heap
whenever it is unnecessary.
2014-03-03 18:14:29 +02:00
Jan Lindström
81318f04c8 Yet more windows fixes. 2014-03-03 15:51:54 +02:00
Jan Lindström
b8e0bc3a67 Additional windows fixes. 2014-03-03 15:26:58 +02:00
Jan Lindström
6cde211d8d Fix typo. 2014-03-03 15:15:00 +02:00
Jan Lindström
ec45160e3b Fix windows compiler erros. 2014-03-03 15:02:39 +02:00
Jan Lindström
be50724d89 Fix compiler error on windows. 2014-03-03 14:45:45 +02:00
Jan Lindström
96100d6652 Merge: lp:maria/10.0 latest. 2014-03-03 14:27:56 +02:00
Jan Lindström
b67892cf59 Turn all new features off by default. 2014-03-03 12:34:33 +02:00
Sergei Golubchik
45236704e8 update InnoDB version 2014-02-28 21:46:43 +01:00
Jan Lindström
e667c0f926 Fix compiler error. 2014-02-28 09:05:36 +02:00
Jan Lindström
c88a0d48c6 Temporal fix for flush thread hang.
Added option to disable multi-threaded flush with innodb_use_mtflush = 0
option, by default multi-threaded flush is used.

Updated innochecksum tool, still it does not support new checksums.
2014-02-28 08:53:09 +02:00
Sergei Golubchik
15ee97214d InnoDB 5.6.15 merge.
update test results
2014-02-26 19:36:33 +01:00
Sergei Golubchik
f92058a23e null-merge from innodb-5.6 mergetree (as of 5.6.14) 2014-02-26 19:22:48 +01:00
Jan Lindström
b620e7368f Small fixes to work_item handling. 2014-02-26 19:00:24 +02:00
Jan Lindström
24235e99d8 Fixed memory leak on queue nodes by using local memory heap on normal
execution and global memory heap on shutdown.

Added a funcition to get work items from queue without waiting and
additional info when there is no work to do for a extended periods.
2014-02-25 13:15:55 +02:00
Jan Lindström
3c77143017 Write size was not correctly alligned to SECT_SIZE. This lead to situation
where trim corrupted the database. Fixed the issue and added temporal 
guards against unalligned write/trim.
2014-02-21 10:20:18 +02:00
Jan Lindström
24bc0314c2 Removed unnecessary memory initialization of page compressed buffer
and added guard against unalligned trim size.
2014-02-19 20:25:55 +02:00
Jan Lindström
25318038a9 Fixed hang seen on TPC-C measure phase. We should not use timedwait on threads
waiting for a job. They should sleep and let other threads to their work. At
shutdown, we know that we put "work" and that is handled as soon as possible.
2014-02-15 09:51:06 +02:00
Jan Lindström
cae21c52f6 Fix timing on queues, this could clearly lead to starvation. 2014-02-14 15:02:26 +02:00
Jan Lindström
9c614665ee Fixed compiler warnings. 2014-02-13 12:35:37 +02:00
Jan Lindström
dfc2950356 Fixed small issue with dictionary. 2014-02-13 12:23:55 +02:00
Jan Lindström
d17ecff410 Fixed issue on data dictionary corruption.
Fixed issue on multi-threaded flush at shutdown.
Removed unnecessary startup option innodb_compress_pages.
Added a new startup option innodb_mtflush_threads, default 8.
2014-02-13 09:13:56 +02:00
Jan Lindström
da927da04d Fixed issue on atomic writes and system tables. Atomic writes can be used
also on system tables but not per table.
2014-02-12 18:00:03 +02:00
Jan Lindström
1fa19bf777 Fixed issue on atomic writes setup and atomic blobs setup on system
tables.
2014-02-12 12:52:34 +02:00
Jan Lindström
f6ad325883 Code cleanup. Removed those questions that are now addressed. 2014-02-12 10:55:45 +02:00
Jan Lindström
184e302ab4 Fix compiler error if lz4 is not found on the system. 2014-02-12 07:09:06 +02:00
Jan Lindström
fa9f5f63e9 Removed unnecessary files and set lz4 under HAVE_LZ4 compiler
option using cmake find_library. Fixed bunch of compiler
warnings.
2014-02-11 20:05:09 +02:00
Jan Lindström
a5cf3a800e Merged latest mt-flush code to xtradb. Cleaned up thread statistic output
code.
2014-02-07 15:31:31 +02:00
Jan Lindström
18353c6a4d Fixed issue on file space extension. File space should be extended from
current offset to desired size if posix_fallocate is used.
2014-02-06 17:49:55 +02:00
Sergei Golubchik
1b3c15f199 merge with 10.0-monty 2014-02-06 16:38:40 +01:00
Alexey Botchkov
bf050b1db2 MDEV-4439 ALTER TABLE .. [ADD|DROP] FOREIGN KEY IF [NOT] EXISTS does not work if constraint name is not used.
Patches for server and the Innodb engine.
  Server is fixed so it does nothing if no indexes left to alter.
  Innodb parser is fixed so it looks for the IF [NOT] EXISTS option in a string.
  Another change is that it uses the index name for the internal dictionary.
  Prior to that it only used the CONSTRAINT name for it.
2014-02-06 16:27:05 +01:00
Jan Lindström
7f3950a2ae Moved mt-flush code to buf0mtflu.[cc|h] and cleaned it up. This is for
InnoDB.
2014-02-06 17:25:26 +02:00