mirror of
https://github.com/MariaDB/server.git
synced 2026-05-15 19:37:16 +02:00
5.6.30
This commit is contained in:
parent
220e70fadc
commit
f1aae861ee
8 changed files with 354 additions and 129 deletions
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2011, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
|
@ -724,6 +724,13 @@ fts_optimize_remove_table(
|
|||
/*======================*/
|
||||
dict_table_t* table); /*!< in: table to remove */
|
||||
|
||||
/** Send sync fts cache for the table.
|
||||
@param[in] table table to sync */
|
||||
UNIV_INTERN
|
||||
void
|
||||
fts_optimize_request_sync_table(
|
||||
dict_table_t* table);
|
||||
|
||||
/**********************************************************************//**
|
||||
Signal the optimize thread to prepare for shutdown. */
|
||||
UNIV_INTERN
|
||||
|
|
@ -826,15 +833,18 @@ fts_drop_index_split_tables(
|
|||
dict_index_t* index) /*!< in: fts instance */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
|
||||
/****************************************************************//**
|
||||
Run SYNC on the table, i.e., write out data from the cache to the
|
||||
FTS auxiliary INDEX table and clear the cache at the end. */
|
||||
/** Run SYNC on the table, i.e., write out data from the cache to the
|
||||
FTS auxiliary INDEX table and clear the cache at the end.
|
||||
@param[in,out] table fts table
|
||||
@param[in] unlock_cache whether unlock cache when write node
|
||||
@param[in] wait whether wait for existing sync to finish
|
||||
@return DB_SUCCESS on success, error code on failure. */
|
||||
UNIV_INTERN
|
||||
dberr_t
|
||||
fts_sync_table(
|
||||
/*===========*/
|
||||
dict_table_t* table) /*!< in: table */
|
||||
__attribute__((nonnull));
|
||||
dict_table_t* table,
|
||||
bool unlock_cache,
|
||||
bool wait);
|
||||
|
||||
/****************************************************************//**
|
||||
Free the query graph but check whether dict_sys->mutex is already
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2007, 2011, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
|
@ -122,7 +122,11 @@ struct fts_sync_t {
|
|||
doc_id_t max_doc_id; /*!< The doc id at which the cache was
|
||||
noted as being full, we use this to
|
||||
set the upper_limit field */
|
||||
ib_time_t start_time; /*!< SYNC start time */
|
||||
ib_time_t start_time; /*!< SYNC start time */
|
||||
bool in_progress; /*!< flag whether sync is in progress.*/
|
||||
bool unlock_cache; /*!< flag whether unlock cache when
|
||||
write fts node */
|
||||
os_event_t event; /*!< sync finish event */
|
||||
};
|
||||
|
||||
/** The cache for the FTS system. It is a memory-based inverted index
|
||||
|
|
@ -165,7 +169,6 @@ struct fts_cache_t {
|
|||
objects, they are recreated after
|
||||
a SYNC is completed */
|
||||
|
||||
|
||||
ib_alloc_t* self_heap; /*!< This heap is the heap out of
|
||||
which an instance of the cache itself
|
||||
was created. Objects created using
|
||||
|
|
@ -212,6 +215,7 @@ struct fts_node_t {
|
|||
ulint ilist_size_alloc;
|
||||
/*!< Allocated size of ilist in
|
||||
bytes */
|
||||
bool synced; /*!< flag whether the node is synced */
|
||||
};
|
||||
|
||||
/** A tokenizer word. Contains information about one word. */
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2008, Google Inc.
|
||||
|
||||
Portions of this file contain modifications contributed and copyrighted by
|
||||
|
|
@ -449,28 +449,7 @@ amount to decrement. */
|
|||
# define os_atomic_decrement_uint64(ptr, amount) \
|
||||
os_atomic_decrement(ptr, amount)
|
||||
|
||||
# if defined(HAVE_IB_GCC_ATOMIC_TEST_AND_SET)
|
||||
|
||||
/** Do an atomic test-and-set.
|
||||
@param[in,out] ptr Memory location to set to non-zero
|
||||
@return the previous value */
|
||||
inline
|
||||
lock_word_t
|
||||
os_atomic_test_and_set(volatile lock_word_t* ptr)
|
||||
{
|
||||
return(__atomic_test_and_set(ptr, __ATOMIC_ACQUIRE));
|
||||
}
|
||||
|
||||
/** Do an atomic clear.
|
||||
@param[in,out] ptr Memory location to set to zero */
|
||||
inline
|
||||
void
|
||||
os_atomic_clear(volatile lock_word_t* ptr)
|
||||
{
|
||||
__atomic_clear(ptr, __ATOMIC_RELEASE);
|
||||
}
|
||||
|
||||
# elif defined(IB_STRONG_MEMORY_MODEL)
|
||||
# if defined(IB_STRONG_MEMORY_MODEL)
|
||||
|
||||
/** Do an atomic test and set.
|
||||
@param[in,out] ptr Memory location to set to non-zero
|
||||
|
|
@ -499,6 +478,27 @@ os_atomic_clear(volatile lock_word_t* ptr)
|
|||
return(__sync_lock_test_and_set(ptr, 0));
|
||||
}
|
||||
|
||||
# elif defined(HAVE_IB_GCC_ATOMIC_TEST_AND_SET)
|
||||
|
||||
/** Do an atomic test-and-set.
|
||||
@param[in,out] ptr Memory location to set to non-zero
|
||||
@return the previous value */
|
||||
inline
|
||||
lock_word_t
|
||||
os_atomic_test_and_set(volatile lock_word_t* ptr)
|
||||
{
|
||||
return(__atomic_test_and_set(ptr, __ATOMIC_ACQUIRE));
|
||||
}
|
||||
|
||||
/** Do an atomic clear.
|
||||
@param[in,out] ptr Memory location to set to zero */
|
||||
inline
|
||||
void
|
||||
os_atomic_clear(volatile lock_word_t* ptr)
|
||||
{
|
||||
__atomic_clear(ptr, __ATOMIC_RELEASE);
|
||||
}
|
||||
|
||||
# else
|
||||
|
||||
# error "Unsupported platform"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue