MySQL 26.7.0
Source Code Documentation
pfs_buffer_container.h File Reference

Generic buffer container. More...

Go to the source code of this file.

Classes

class  PFS_buffer_default_array< T >
 
class  PFS_buffer_default_allocator< T >
 
class  PFS_buffer_container< T, U, V >
 
class  PFS_buffer_scalable_container< T, PFS_PAGE_SIZE, PFS_PAGE_COUNT, U, V >
 
class  PFS_buffer_iterator< T, U, V >
 
class  PFS_buffer_scalable_iterator< T, page_size, page_count, U, V >
 
class  PFS_buffer_processor< T >
 
class  PFS_partitioned_buffer_scalable_container< B, PFS_PARTITION_COUNT >
 
class  PFS_partitioned_buffer_scalable_iterator< B, PFS_PARTITION_COUNT >
 
class  PFS_account_array
 
class  PFS_account_allocator
 
class  PFS_host_array
 
class  PFS_host_allocator
 
class  PFS_thread_array
 
class  PFS_thread_allocator
 
class  PFS_user_array
 
class  PFS_user_allocator
 

Typedefs

typedef std::uint16_t pfs_container_id
 
typedef std::uint16_t pfs_page_id
 
typedef std::uint16_t pfs_object_id
 
typedef PFS_buffer_scalable_container< PFS_mutex, 1024, 1024 > PFS_mutex_basic_container
 
typedef PFS_partitioned_buffer_scalable_container< PFS_mutex_basic_container, PFS_MUTEX_PARTITIONSPFS_mutex_container
 
typedef PFS_mutex_container::iterator_type PFS_mutex_iterator
 
typedef PFS_buffer_scalable_container< PFS_rwlock, 1024, 1024 > PFS_rwlock_container
 
typedef PFS_rwlock_container::iterator_type PFS_rwlock_iterator
 
typedef PFS_buffer_scalable_container< PFS_cond, 256, 256 > PFS_cond_container
 
typedef PFS_cond_container::iterator_type PFS_cond_iterator
 
typedef PFS_buffer_scalable_container< PFS_file, 4 *1024, 4 *1024 > PFS_file_container
 
typedef PFS_file_container::iterator_type PFS_file_iterator
 
typedef PFS_buffer_scalable_container< PFS_socket, 256, 256 > PFS_socket_container
 
typedef PFS_socket_container::iterator_type PFS_socket_iterator
 
typedef PFS_buffer_scalable_container< PFS_metadata_lock, 1024, 1024 > PFS_mdl_container
 
typedef PFS_mdl_container::iterator_type PFS_mdl_iterator
 
typedef PFS_buffer_scalable_container< PFS_setup_actor, 128, 1024 > PFS_setup_actor_container
 
typedef PFS_setup_actor_container::iterator_type PFS_setup_actor_iterator
 
typedef PFS_buffer_scalable_container< PFS_setup_object, 128, 1024 > PFS_setup_object_container
 
typedef PFS_setup_object_container::iterator_type PFS_setup_object_iterator
 
typedef PFS_buffer_scalable_container< PFS_table, 1024, 1024 > PFS_table_container
 
typedef PFS_table_container::iterator_type PFS_table_iterator
 
typedef PFS_buffer_scalable_container< PFS_table_share, 4 *1024, 4 *1024 > PFS_table_share_container
 
typedef PFS_table_share_container::iterator_type PFS_table_share_iterator
 
typedef PFS_buffer_scalable_container< PFS_table_share_index, 8 *1024, 8 *1024 > PFS_table_share_index_container
 
typedef PFS_table_share_index_container::iterator_type PFS_table_share_index_iterator
 
typedef PFS_buffer_scalable_container< PFS_table_share_lock, 4 *1024, 4 *1024 > PFS_table_share_lock_container
 
typedef PFS_table_share_lock_container::iterator_type PFS_table_share_lock_iterator
 
typedef PFS_buffer_scalable_container< PFS_program, 1024, 1024 > PFS_program_container
 
typedef PFS_program_container::iterator_type PFS_program_iterator
 
typedef PFS_buffer_scalable_container< PFS_prepared_stmt, 1024, 1024 > PFS_prepared_stmt_container
 
typedef PFS_prepared_stmt_container::iterator_type PFS_prepared_stmt_iterator
 
typedef PFS_buffer_scalable_container< PFS_account, 128, 128, PFS_account_array, PFS_account_allocatorPFS_account_container
 
typedef PFS_account_container::iterator_type PFS_account_iterator
 
typedef PFS_buffer_scalable_container< PFS_host, 128, 128, PFS_host_array, PFS_host_allocatorPFS_host_container
 
typedef PFS_host_container::iterator_type PFS_host_iterator
 
typedef PFS_buffer_scalable_container< PFS_thread, 256, 256, PFS_thread_array, PFS_thread_allocatorPFS_thread_container
 
typedef PFS_thread_container::iterator_type PFS_thread_iterator
 
typedef PFS_buffer_scalable_container< PFS_user, 128, 128, PFS_user_array, PFS_user_allocatorPFS_user_container
 
typedef PFS_user_container::iterator_type PFS_user_iterator
 

Functions

pfs_identity make_identity (pfs_container_id container_id, pfs_page_id page_id, pfs_object_id object_id, pfs_dirty_state *dirty_state)
 Build an artificial object identity, for OBJECT_INSTANCE_BEGIN columns. More...
 

Variables

std::atomic< pfs_container_idglobal_container_id
 
PFS_mutex_container global_mutex_container
 
PFS_rwlock_container global_rwlock_container
 
PFS_cond_container global_cond_container
 
PFS_file_container global_file_container
 
PFS_socket_container global_socket_container
 
PFS_mdl_container global_mdl_container
 
PFS_setup_actor_container global_setup_actor_container
 
PFS_setup_object_container global_setup_object_container
 
PFS_table_container global_table_container
 
PFS_table_share_container global_table_share_container
 
PFS_table_share_index_container global_table_share_index_container
 
PFS_table_share_lock_container global_table_share_lock_container
 
PFS_program_container global_program_container
 
PFS_prepared_stmt_container global_prepared_stmt_container
 
PFS_account_container global_account_container
 
PFS_host_container global_host_container
 
PFS_thread_container global_thread_container
 
PFS_user_container global_user_container
 

Detailed Description

Generic buffer container.

Typedef Documentation

◆ PFS_account_container

◆ PFS_account_iterator

◆ PFS_cond_container

◆ PFS_cond_iterator

◆ pfs_container_id

typedef std::uint16_t pfs_container_id

◆ PFS_file_container

◆ PFS_file_iterator

◆ PFS_host_container

◆ PFS_host_iterator

◆ PFS_mdl_container

◆ PFS_mdl_iterator

◆ PFS_mutex_basic_container

◆ PFS_mutex_container

◆ PFS_mutex_iterator

◆ pfs_object_id

typedef std::uint16_t pfs_object_id

◆ pfs_page_id

typedef std::uint16_t pfs_page_id

◆ PFS_prepared_stmt_container

◆ PFS_prepared_stmt_iterator

◆ PFS_program_container

◆ PFS_program_iterator

◆ PFS_rwlock_container

◆ PFS_rwlock_iterator

◆ PFS_setup_actor_container

◆ PFS_setup_actor_iterator

◆ PFS_setup_object_container

◆ PFS_setup_object_iterator

◆ PFS_socket_container

◆ PFS_socket_iterator

◆ PFS_table_container

◆ PFS_table_iterator

◆ PFS_table_share_container

◆ PFS_table_share_index_container

◆ PFS_table_share_index_iterator

◆ PFS_table_share_iterator

◆ PFS_table_share_lock_container

◆ PFS_table_share_lock_iterator

◆ PFS_thread_container

◆ PFS_thread_iterator

◆ PFS_user_container

◆ PFS_user_iterator

Function Documentation

◆ make_identity()

pfs_identity make_identity ( pfs_container_id  container_id,
pfs_page_id  page_id,
pfs_object_id  object_id,
pfs_dirty_state dirty_state 
)

Build an artificial object identity, for OBJECT_INSTANCE_BEGIN columns.

To be globally unique, identity consists of:

  • the container id, so objects A and B from different containers (instrument classes) will not collide. Note that partitioned containers get a container id per partition.
  • the page id within the container
  • the object index within the page
  • the version number from the pfs_lock dirty_state, to resolve ABA problems

Variable Documentation

◆ global_account_container

PFS_account_container global_account_container
extern

◆ global_cond_container

PFS_cond_container global_cond_container
extern

◆ global_container_id

std::atomic<pfs_container_id> global_container_id
extern

◆ global_file_container

PFS_file_container global_file_container
extern

◆ global_host_container

PFS_host_container global_host_container
extern

◆ global_mdl_container

PFS_mdl_container global_mdl_container
extern

◆ global_mutex_container

PFS_mutex_container global_mutex_container
extern

◆ global_prepared_stmt_container

PFS_prepared_stmt_container global_prepared_stmt_container
extern

◆ global_program_container

PFS_program_container global_program_container
extern

◆ global_rwlock_container

PFS_rwlock_container global_rwlock_container
extern

◆ global_setup_actor_container

PFS_setup_actor_container global_setup_actor_container
extern

◆ global_setup_object_container

PFS_setup_object_container global_setup_object_container
extern

◆ global_socket_container

PFS_socket_container global_socket_container
extern

◆ global_table_container

PFS_table_container global_table_container
extern

◆ global_table_share_container

PFS_table_share_container global_table_share_container
extern

◆ global_table_share_index_container

PFS_table_share_index_container global_table_share_index_container
extern

◆ global_table_share_lock_container

PFS_table_share_lock_container global_table_share_lock_container
extern

◆ global_thread_container

PFS_thread_container global_thread_container
extern

◆ global_user_container

PFS_user_container global_user_container
extern