MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Ndbd_mem_manager Class Reference

Public Types

enum  AllocZone { NDB_ZONE_LO = 0, NDB_ZONE_ANY = 1 }

Public Member Functions

void set_resource_limit (const Resource_limit &rl)
bool get_resource_limit (Uint32 id, Resource_limit &rl) const
bool init (Uint32 *watchCounter, bool allow_alloc_less_than_requested=true)
void map (Uint32 *watchCounter, bool memlock=false, Uint32 resources[]=0)
void * get_memroot () const
void dump () const
void * alloc_page (Uint32 type, Uint32 *i, enum AllocZone)
void release_page (Uint32 type, Uint32 i)
void alloc_pages (Uint32 type, Uint32 *i, Uint32 *cnt, Uint32 min=1)
void release_pages (Uint32 type, Uint32 i, Uint32 cnt)

Static Public Member Functions

static Uint32 ndb_log2 (Uint32 size)

Detailed Description

Definition at line 61 of file ndbd_malloc_impl.hpp.

Member Function Documentation

bool Ndbd_mem_manager::init ( Uint32 *  watchCounter,
bool  allow_alloc_less_than_requested = true 
)

Do malloc

Sort chunks...

Definition at line 338 of file ndbd_malloc_impl.cpp.

Here is the call graph for this function:

void Ndbd_mem_manager::map ( Uint32 *  watchCounter,
bool  memlock = false,
Uint32  resources[] = 0 
)

Split chunk

memlock pages that I added...

Don't memlock everything in one go... cause then process won't be killable

Definition at line 479 of file ndbd_malloc_impl.cpp.

Uint32 Ndbd_mem_manager::ndb_log2 ( Uint32  size)
static

Compute 2log of size

Note
size = 0 -> 0
size > 65536 -> 16

Definition at line 208 of file ndbd_malloc_impl.cpp.

void Ndbd_mem_manager::set_resource_limit ( const Resource_limit rl)

resource 0 has following semantics:

m_min - remaining reserved for other resources m_curr - sum(m_curr) for other resources (i.e total in use) m_max - totally allocated from OS

resource N has following semantics:

m_min = reserved m_curr = currently used m_max = max alloc, 0 = no limit

Definition at line 263 of file ndbd_malloc_impl.cpp.


The documentation for this class was generated from the following files: