- 02 Nov, 2017 3 commits
-
-
Monty authored
-
Monty authored
- Allocate only enough memory that we need for key status - Saves ~100K temp usage on maria_open
-
Monty authored
The background is that one user had a lot of views and using some complex queries on information schema temporary memory of more than 2G was used. - Added new element 'total_alloc' to MEM_ROOT for easier debugging. - Added MAX_MEMORY_USED to information_schema.processlist. - Added new status variable "Memory_used_initial" that shows how much MariaDB uses at startup. This gives the base value for "Memory_used". - Reuse memory continuously for information schema queries instead of only freeing memory at query end. Other things - Removed some not needed set_notnull() calls for not null columns.
-
- 01 Nov, 2017 3 commits
-
-
Marko Mäkelä authored
-
Monty authored
- Expand paths also for jemalloc - Test also if tcmalloc or jemalloc is in /usr/lib64 - Take into account that .so has a version - Remove automatic adding of flavors ( _minial, _debug). Better to have user specify these directly - Changed documentation link to MariaDB - Don't give extra error if mysqld_safe_helper doesn't exist
-
Marko Mäkelä authored
-
- 31 Oct, 2017 7 commits
-
-
Daniel Bartholomew authored
-
Monty authored
Also don't abort if global_status_var.global_memory_used != 0 on not normal exit as then it's likely that not all memory is released.
-
Monty authored
-
Marko Mäkelä authored
MDEV-13568: Purge is not blocked by LOCK TABLES. Should it? MDEV-13893/MDEV-12699: Crash recovery of corrupted or non-decryptable pages is broken.
-
Daniel Black authored
Signed-off-by: Daniel Black <daniel@linux.vnet.ibm.com>
-
Marko Mäkelä authored
-
Marko Mäkelä authored
When MariaDB 10.1.0 introduced table options for encryption and compression, it unnecessarily changed ha_innobase::check_if_supported_inplace_alter() so that ALGORITHM=COPY is forced when these parameters differ. A better solution is to move the check to innobase_need_rebuild(). In that way, the ALGORITHM=INPLACE interface (yes, the syntax is very misleading) can be used for rebuilding the table much more efficiently, with merge sort, with no undo logging, and allowing concurrent DML operations.
-
- 30 Oct, 2017 10 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
If InnoDB or XtraDB recovered committed transactions at server startup, but the processing of recovered transactions was prevented by innodb_read_only or by innodb_force_recovery, an assertion would fail at shutdown. This bug was originally reproduced when Mariabackup executed InnoDB shutdown after preparing (applying redo log into) a backup. trx_free_prepared(): Allow TRX_STATE_COMMITTED_IN_MEMORY. trx_undo_free_prepared(): Allow any undo log state. For transactions that were resurrected in TRX_STATE_COMMITTED_IN_MEMORY the undo log state would have been reset by trx_undo_set_state_at_finish().
-
Daniel Bartholomew authored
-
Alexander Barkov authored
-
Alexey Botchkov authored
-
Marko Mäkelä authored
-
Alexander Barkov authored
MDEV-13997 Change Item_bool_rowready_func2 to cache const items at fix time rather than evaluation time Side effect: the second debug Note in cache_temporal_4265.result disappeared. Before this change: - During JOIN::cache_const_exprs(), Item::get_cache() for Item_date_add_interval() was called. The data type for date_add('2001-01-01',interval 5 day) is VARCHAR, because the first argument is VARCHAR (not temporal). Item_get_cache() created Item_cache_str('2001-01-06'). - During evaluate_join_record(), get_datetime_value() was called, which called Item::get_date() for Item_cache_str('2001-01-06'). This gave the second Note. Then, get_datetime_value() created a new cache, now Item_cache_temporal for '2001-01-06', so not further str_to_datetime() happened. After this change: - During tem_bool_rowready_func2::fix_length_and_dec(), Arg_comparator::set_cmp_func_datetime() is called, which immediately creates an instance of Item_cache_date for the result of date_add('2001-01-01',interval 5 day). So later no str_to_datetime happens any more, neither during JOIN::cache_const_exprs(), nor during evaluate_join_record().
-
Alexander Barkov authored
-
Elena Stepanova authored
-
Elena Stepanova authored
-
- 29 Oct, 2017 6 commits
-
-
Sergei Petrunia authored
Forgot to put the updated rocksdb.result in
-
Sergei Petrunia authored
Downscale rocksdb.add_index_inplace_sstfilewriter to be 10x smaller
-
Sergei Petrunia authored
-
Sergei Petrunia authored
-
Sergei Petrunia authored
Fix a race condition in the testcase.
-
Sergei Petrunia authored
-
- 27 Oct, 2017 11 commits
-
-
Vladislav Vaintroub authored
ReadFile/WriteFile operations. Innodb opens files with FILE_FLAG_OVERLAPPED. lpNumberOfBytesRead/Written are documented to be potentially inaccurate in this case, (possibly even if async operations complete synchronously?) The fix is to always pass NULL for the correspondng parameters, as recommended by MSDN. Read the actual counts with GetQueuedCompletionStatus() or GetOverlappedResult().
-
Alexander Barkov authored
-
Marko Mäkelä authored
os_file_get_size(): Use fstat() instead of calling lseek() 3 times. In this way, concurrent calls to this function should not interfere with each other. Suggested by Vladislav Vaintroub.
-
Marko Mäkelä authored
The predicate page_is_root() would not hold if btr_create() fails before the root page is fully initialized. Move the debug assertion from btr_free_root_invalidate() to its other caller, btr_free_if_exists(). In that caller, we actually already checked for page_is_root().
-
Marko Mäkelä authored
os_file_set_size(): Sometimes the file already is large enough. Avoid calling posix_fallocate() with a non-positive argument. Also, add a missing space to an error message.
-
Sergei Petrunia authored
Adjust and enable rocksdb.2pc_group_commit test
-
Vladislav Vaintroub authored
With this patch, parameters passed to posix_fallocate() will be the same as they were prior to refactoring in commit b731a5bc In particular, 'offset' parameter for posix_fallocate is again current_file_size and 'length' is new_file_size - current_file_size. This seems to fix crashes on ancient Linux (kernel 2.6).
-
Sergei Petrunia authored
-
Marko Mäkelä authored
The assertion failure was relaxed in commit 02ba15a9 but it was not enough, because another assertion would fail. trx_undo_free_prepared(): Allow any undo log state. For transactions that were resurrected in TRX_STATE_COMMITTED_IN_MEMORY the undo log state would have been reset by trx_undo_set_state_at_finish().
-
Marko Mäkelä authored
The redo log record MLOG_UNDO_HDR_DISCARD is never written, and the function trx_undo_discard_latest_update_undo() is never called outside crash recovery. Starting with MariaDB 10.2.2, crash recovery from an older InnoDB version is refused. Therefore, we can safely remove the code for parsing this long-unused redo log record type. The use of MLOG_UNDO_HDR_DISCARD was removed by Heikki Tuuri, the original designer and author of InnoDB, more than 13 years ago: commit 3caab0f3 Author: unknown <heikki@hundin.mysql.fi> Date: Thu Mar 18 14:57:22 2004 +0200 trx0undo.h, trx0undo.c, trx0trx.c: Update an obsolete comment about trx commit: we can no longer call trx_undo_update_cleanup_by_discard(), and actually, the idea to call it was erroneous, it cannot work
-
Marko Mäkelä authored
trx_free_prepared(): The function trx_resurrect_insert() can resurrect a committed transaction when the TRX_UNDO_STATE field is not TRX_UNDO_ACTIVE or TRX_UNDO_PREPARED. (In the examined failure of mariabackup.xb_compressed_encrypted, assertion failure in --apply-log shutdown at line 25, the TRX_UNDO_STATE strangely contained the value 0xffff.) In any case, the assertion must allow the state TRX_STATE_COMMITTED_IN_MEMORY for resurrected transactions.
-