102 std::string
path()
const;
139 using Pool = std::list<Tablespace *, ut::allocator<Tablespace *>>;
170 template <
typename F>
uint32_t space_id_t
Tablespace identifier.
Definition: api0api.h:48
Pool of session temporary tablespaces.
Definition: srv0tmp.h:137
void acquire()
Acquire the mutex.
Definition: srv0tmp.h:192
~Tablespace_pool()
Destructor.
Definition: srv0tmp.cc:186
bool m_pool_initialized
True after the pool has been initialized.
Definition: srv0tmp.h:210
void delete_old_pool(bool create_new_db)
Delete old session temporary tablespaces found on startup.
Definition: srv0tmp.cc:297
void iterate_tbsp(F &&f)
Iterate through the list of tablespaces and perform specified operation on the tablespace on every it...
Definition: srv0tmp.h:171
size_t m_init_size
Initial size of pool.
Definition: srv0tmp.h:212
void release()
Release the mutex.
Definition: srv0tmp.h:195
dberr_t initialize(bool create_new_db)
Initialize the pool on startup.
Definition: srv0tmp.cc:249
dberr_t expand(size_t size)
Expand the pool to the requested size.
Definition: srv0tmp.cc:276
Tablespace_pool(size_t init_size)
Tablespace_pool constructor.
Definition: srv0tmp.cc:178
size_t get_size()
Gets current pool size.
Definition: srv0tmp.h:182
Tablespace * get(my_thread_id id, enum tbsp_purpose purpose)
Return a session temporary tablespace.
Definition: srv0tmp.cc:199
Pool * m_free
Vector of tablespaces that are unused.
Definition: srv0tmp.h:214
void free_ts(Tablespace *ts)
Truncate and release the tablespace back to the pool.
Definition: srv0tmp.cc:226
ib_mutex_t m_mutex
Mutex to protect concurrent operations on the pool.
Definition: srv0tmp.h:218
Pool * m_active
Vector of tablespaces that are being used.
Definition: srv0tmp.h:216
Session Temporary tablespace.
Definition: srv0tmp.h:50
const space_id_t m_space_id
space_id of the current tablespace
Definition: srv0tmp.h:113
std::string file_name() const
Definition: srv0tmp.cc:160
bool close() const
Close the .ibt file.
Definition: srv0tmp.cc:128
std::string path() const
Definition: srv0tmp.cc:166
bool m_inited
True only after .ibt file is created.
Definition: srv0tmp.h:120
Tablespace()
Session Temporary tablespace.
Definition: srv0tmp.cc:68
bool truncate()
Truncate the tablespace.
Definition: srv0tmp.cc:137
my_thread_id m_thread_id
Tablespace belongs to this Session id
Definition: srv0tmp.h:123
static space_id_t m_last_used_space_id
Next available space_id for tablespace.
Definition: srv0tmp.h:117
enum tbsp_purpose purpose() const
Definition: srv0tmp.h:99
void reset_thread_id_and_purpose()
Reset the thread id while returning the tablespace to the pool.
Definition: srv0tmp.h:89
uint32_t file_id() const
The id used for name on disk temp_1.ibt, temp_2.ibt, etc.
Definition: srv0tmp.cc:156
void set_thread_id_and_purpose(my_thread_id thread_id, enum tbsp_purpose purpose)
Set the thread id of the thread and the purpose of using the tablespace.
Definition: srv0tmp.h:81
space_id_t space_id() const
Definition: srv0tmp.h:75
~Tablespace()
Definition: srv0tmp.cc:74
enum tbsp_purpose m_purpose
Purpose for this tablespace.
Definition: srv0tmp.h:126
dberr_t create()
Create the .IBT file with pattern "temp_*.ibt".
Definition: srv0tmp.cc:94
bool operator==(const Tablespace &other)
comparator for two tablespace objects
Definition: srv0tmp.h:70
my_thread_id thread_id() const
Definition: srv0tmp.h:96
dberr_t
Definition: db0err.h:39
uint32 my_thread_id
Definition: my_thread_local.h:34
void for_each(const Shards< COUNT > &shards, Function &&f) noexcept
Iterate over the shards.
Definition: ut0counter.h:323
char * srv_temp_dir
Server temp tablespaces directory, can be absolute path.
Definition: srv0tmp.cc:65
dberr_t open_or_create(bool create_new_db)
Create the session temporary tablespaces on startup.
Definition: srv0tmp.cc:364
class Tablespace_pool * tbsp_pool
Pool of temporary tablespace.
Definition: srv0tmp.cc:62
void free_tmp(Tablespace *ts)
Release a tablespace back to the pool.
Definition: srv0tmp.cc:381
void close_files()
Close all files in the pool.
Definition: srv0tmp.cc:388
void delete_pool_manager()
Delete the pool manager.
Definition: srv0tmp.cc:386
tbsp_purpose
Purpose for using tablespace.
Definition: srv0tmp.h:34
@ TBSP_NONE
Tablespace is not being used for any temporary table.
Definition: srv0tmp.h:35
@ TBSP_INTRINSIC
Tablespace is used for intrinsic tables.
Definition: srv0tmp.h:39
@ TBSP_SLAVE
Tablespace is used by the slave node in a replication setup.
Definition: srv0tmp.h:41
@ TBSP_USER
Tablespace is used for user temporary tables.
Definition: srv0tmp.h:37
Tablespace * get_rpl_slave_tblsp()
Definition: srv0tmp.cc:394
const char * begin(const char *const c)
Definition: base64.h:44
size_t size(const char *const c)
Definition: base64.h:46
Allocate the memory for the object in blocks.
Definition: ut0pool.h:47
#define ut_ad(EXPR)
Debug assertion.
Definition: ut0dbg.h:105
#define mutex_exit(M)
Definition: ut0mutex.h:123
#define mutex_enter(M)
Definition: ut0mutex.h:117