CernVM-FS  2.12.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SqliteMemoryManager::LookasideBufferArena Class Reference

#include <sqlitemem.h>

Public Member Functions

 LookasideBufferArena ()
 ~LookasideBufferArena ()
void * GetBuffer ()
void PutBuffer (void *buffer)
bool IsEmpty ()
bool Contains (void *buffer)

Static Public Attributes

static const unsigned kBufferSize
static const unsigned kBuffersPerArena = 128
static const unsigned kArenaSize = kBuffersPerArena * kBufferSize
static const unsigned kNoBitmaps = kBuffersPerArena / (sizeof(int) * 8)

Private Attributes

void * arena_
int freemap_ [kNoBitmaps]

Detailed Description

A continuous chunk of memory from which fixed-sized chunks are given as lookaside buffers to SQlite database connections. A bitmap indicates used and free buffers. One arena serves 128 database connections and assuming less than 10000 concurrently open catalogs, the number of mmap'd regions stays under 100.

Definition at line 93 of file sqlitemem.h.

Constructor & Destructor Documentation

SqliteMemoryManager::LookasideBufferArena::LookasideBufferArena ( )

Definition at line 54 of file

SqliteMemoryManager::LookasideBufferArena::~LookasideBufferArena ( )

Definition at line 62 of file

Member Function Documentation

bool SqliteMemoryManager::LookasideBufferArena::Contains ( void *  buffer)

Definition at line 45 of file

void * SqliteMemoryManager::LookasideBufferArena::GetBuffer ( )

Definition at line 23 of file

Referenced by SqliteMemoryManager::GetLookasideBuffer().

Here is the caller graph for this function:

bool SqliteMemoryManager::LookasideBufferArena::IsEmpty ( )

Definition at line 36 of file

void SqliteMemoryManager::LookasideBufferArena::PutBuffer ( void *  buffer)

Definition at line 67 of file

Here is the call graph for this function:

Member Data Documentation

void* SqliteMemoryManager::LookasideBufferArena::arena_

An mmap'd memory block.

Definition at line 127 of file sqlitemem.h.

int SqliteMemoryManager::LookasideBufferArena::freemap_[kNoBitmaps]

Indicates free/used slots. A used slot has its bit set to zero, an unused slot has its bit set to 1.

Definition at line 133 of file sqlitemem.h.

Referenced by LookasideBufferArena().

const unsigned SqliteMemoryManager::LookasideBufferArena::kArenaSize = kBuffersPerArena * kBufferSize

512kB = 128 4kB buffers.

Definition at line 109 of file sqlitemem.h.

const unsigned SqliteMemoryManager::LookasideBufferArena::kBufferSize
Initial value:

Accumulates to 4kB.

Definition at line 98 of file sqlitemem.h.

const unsigned SqliteMemoryManager::LookasideBufferArena::kBuffersPerArena = 128

Has to be a multiple of the number of bits in the int type. One arena can serve 128 concurrent sqlite database connections.

Definition at line 105 of file sqlitemem.h.

const unsigned SqliteMemoryManager::LookasideBufferArena::kNoBitmaps = kBuffersPerArena / (sizeof(int) * 8)

Number of bitmap ints for 128 buffers.

Definition at line 113 of file sqlitemem.h.

Referenced by LookasideBufferArena().

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