148 using Thread_ctxs = std::vector<Thread_data, ut::allocator<Thread_data>>;
163 return index->
name();
178 bool &allocate_in_pages)
const;
199 for (
auto &thr :
m_ctxs) {
201 error = thr.get_error_string();
210 for (
auto &thr :
m_ctxs) {
211 errcode = thr.get_error_code();
221 for (
auto &thr :
m_ctxs) {
Multi Threaded Index Build (MTIB) using BUF_BLOCK_MEMORY and dedicated Bulk_flusher threads.
Definition: btr0mtib.h:682
Definition: btr0mtib.h:386
Implements the row and column memory management for parse and load operations.
Definition: bulk_data_service.h:86
Definition: ddl0bulk.h:41
std::ostringstream m_sout
Definition: ddl0bulk.h:113
void free()
Free thread specific data.
Definition: ddl0bulk.cc:259
dberr_t m_err
Error code at thread level.
Definition: ddl0bulk.h:109
dberr_t fill_tuple(const row_prebuilt_t *prebuilt, const Rows_mysql &rows, size_t row_index)
Fill the tuple to set the column data.
Definition: ddl0bulk.cc:374
std::string get_error_string() const
Definition: ddl0bulk.h:61
dtuple_t * m_entry
Tuple for inserting row to cluster index.
Definition: ddl0bulk.h:100
dtuple_t * m_row
Tuple for converting input data to table row.
Definition: ddl0bulk.h:97
int get_error_code() const
Get the client error code (eg.
Definition: ddl0bulk.h:65
mem_heap_t * m_heap
Heap for allocating tuple memory.
Definition: ddl0bulk.h:94
int m_errcode
Definition: ddl0bulk.h:111
unsigned char m_rollptr_data[DATA_ROLL_PTR_LEN]
Column data for system column Roll pointer.
Definition: ddl0bulk.h:106
dberr_t load(const row_prebuilt_t *prebuilt, Btree_multi::Btree_load *sub_tree, const Rows_mysql &rows, Bulk_load::Stat_callbacks &wait_cbk)
Load rows to a sub-tree for a specific thread.
Definition: ddl0bulk.cc:142
void init(const row_prebuilt_t *prebuilt)
Initialize thread specific data.
Definition: ddl0bulk.cc:44
dberr_t get_error() const
Definition: ddl0bulk.h:60
void fill_index_entry(const row_prebuilt_t *prebuilt)
Fill he cluster index entry from tuple data.
Definition: ddl0bulk.cc:352
void fill_system_columns(const row_prebuilt_t *prebuilt)
Fill system columns for index entry to be loaded.
Definition: ddl0bulk.cc:334
bool store_int_col(const Column_mysql &col, byte *data_ptr, size_t &data_len)
Store integer column in Innodb format.
Definition: ddl0bulk.cc:435
unsigned char m_trx_data[DATA_TRX_ID_LEN]
Column data for system column transaction ID.
Definition: ddl0bulk.h:103
Definition: ddl0bulk.h:39
std::vector< Btree_multi::Btree_load *, ut::allocator< Btree_multi::Btree_load * > > Btree_loads
Definition: ddl0bulk.h:147
Btree_loads m_sub_tree_loads
Sub-tree loading contexts.
Definition: ddl0bulk.h:188
void get_queue_size(size_t memory, size_t &flush_queue_size, bool &allocate_in_pages) const
Calculate the flush queue size to be used based on the available memory.
Definition: ddl0bulk.cc:69
dberr_t merge_subtrees(const row_prebuilt_t *prebuilt)
Merge the sub-trees to build the cluster index.
Definition: ddl0bulk.cc:499
dberr_t end(const row_prebuilt_t *prebuilt, bool is_error)
Finish bulk load operation, combining the sub-trees produced by concurrent threads.
Definition: ddl0bulk.cc:266
Loader(size_t num_threads)
Loader context constructor.
Definition: ddl0bulk.h:118
const char * get_index_name() const
Definition: ddl0bulk.h:161
dberr_t begin(const row_prebuilt_t *prebuilt, size_t data_size, size_t memory)
Prepare bulk loading by multiple threads.
Definition: ddl0bulk.cc:93
Btree_multi::Bulk_extent_allocator m_extent_allocator
Allocator to extend tablespace and allocate extents.
Definition: ddl0bulk.h:194
size_t m_num_threads
Number of threads for bulk loading.
Definition: ddl0bulk.h:182
dberr_t load(const row_prebuilt_t *prebuilt, size_t thread_index, const Rows_mysql &rows, Bulk_load::Stat_callbacks &wait_cbk)
Load rows to a sub-tree by a thread.
Definition: ddl0bulk.cc:130
const char * get_table_name() const
Definition: ddl0bulk.h:158
int get_error_code() const
Get the client error code (e.g.
Definition: ddl0bulk.h:208
dict_table_t * m_table
Innodb dictionary table object.
Definition: ddl0bulk.h:191
dberr_t get_error() const
Definition: ddl0bulk.h:219
std::string get_error_string() const
Definition: ddl0bulk.h:197
std::vector< Thread_data, ut::allocator< Thread_data > > Thread_ctxs
Definition: ddl0bulk.h:148
Thread_ctxs m_ctxs
All thread specific data.
Definition: ddl0bulk.h:185
Allocator that allows std::* containers to manage their memory through ut::malloc* and ut::free libra...
Definition: ut0new.h:2181
constexpr size_t DATA_ROLL_PTR_LEN
Rollback data pointer type size in bytes.
Definition: data0type.h:191
constexpr size_t DATA_TRX_ID_LEN
Transaction ID type size in bytes.
Definition: data0type.h:185
dberr_t
Definition: db0err.h:39
@ DB_SUCCESS
Definition: db0err.h:43
void error(const char *format,...)
Definition: ddl0bulk.cc:42
Definition: aligned_atomic.h:44
std::basic_ostringstream< char, std::char_traits< char >, ut::allocator< char > > ostringstream
Specialization of basic_ostringstream which uses ut::allocator.
Definition: ut0new.h:2870
std::vector< T, ut::allocator< T > > vector
Specialization of vector which uses allocator.
Definition: ut0new.h:2874
Interface between Innobase row operations and MySQL.
Callbacks for collecting time statistics.
Definition: bulk_data_service.h:324
Definition: bulk_data_service.h:61
id_name_t name
index name
Definition: dict0mem.h:1054
Data structure for a database table.
Definition: dict0mem.h:1909
table_name_t name
Table name.
Definition: dict0mem.h:1984
const dict_index_t * first_index() const
Definition: dict0mem.h:2467
Structure for an SQL data tuple of fields (logical record)
Definition: data0data.h:682
The info structure stored at the beginning of a heap block.
Definition: mem0mem.h:302
A struct for (sometimes lazily) prebuilt structures in an Innobase table handle used within MySQL; th...
Definition: row0mysql.h:515
char * m_name
The name in internal representation.
Definition: dict0mem.h:472