NCBI C++ ToolKit
Classes | Typedefs | Enumerations | Functions | Variables
nc_db_info.hpp File Reference
#include "nc_utils.hpp"
#include "memory_man.hpp"
+ Include dependency graph for nc_db_info.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Go to the SVN repository for this file.

Classes

struct  SNCDataCoord
 
struct  SNCBlobVerData
 Full information about NetCache blob (excluding key) More...
 
struct  SCompareVerAccessTime
 
struct  SNCChunkMapInfo
 
struct  SNCChunkMaps
 
struct  SNCBlobSummary
 
struct  SNCBlobFilter
 
struct  SNCDBFileInfo
 Information about database part in NetCache storage. More...
 

Typedefs

typedef intr::set_base_hook< intr::tag< SVersMap_tag >, intr::optimize_size< true > > TVerDataMapHook
 
typedef intr::rbtree< SNCBlobVerData, intr::base_hook< TVerDataMapHook >, intr::constant_time_size< false >, intr::compare< SCompareVerAccessTime > > TVerDataMap
 
typedef map< string, SNCBlobSummary * > TNCBlobSumList
 
typedef HANDLE TFileHandle
 
typedef map< Uint4, CSrvRef< SNCDBFileInfo > > TNCDBFilesMap
 Information about all database parts in NetCache storage. More...
 

Enumerations

enum  ENCDBFileType { eDBFileMeta = 0x01 , eDBFileData = 0x02 , eDBFileMaps = 0x03 }
 
enum  EDBFileIndex { eFileIndexMeta = 0 , eFileIndexData = 1 , eFileIndexMaps = 2 }
 

Functions

const CSrvDiagMsgoperator<< (const CSrvDiagMsg &msg, SNCDataCoord coord)
 
bool operator== (SNCDataCoord left, SNCDataCoord right)
 
bool operator!= (SNCDataCoord left, SNCDataCoord right)
 

Variables

static const Uint4 kNCMaxDBFileId = 0xFFFFFFFF
 
static const size_t kNCMaxBlobChunkSize = 32740
 Maximum size of blob chunk stored in database. More...
 
static const Uint2 kNCMaxChunksInMap = 128
 
static const Uint1 kNCMaxBlobMapsDepth = 3
 
const Uint8 kNCLargestBlobSize
 

Typedef Documentation

◆ TFileHandle

Definition at line 315 of file nc_db_info.hpp.

◆ TNCBlobSumList

Definition at line 289 of file nc_db_info.hpp.

◆ TNCDBFilesMap

Information about all database parts in NetCache storage.

Definition at line 347 of file nc_db_info.hpp.

◆ TVerDataMap

typedef intr::rbtree<SNCBlobVerData, intr::base_hook<TVerDataMapHook>, intr::constant_time_size<false>, intr::compare<SCompareVerAccessTime> > TVerDataMap

Definition at line 184 of file nc_db_info.hpp.

◆ TVerDataMapHook

typedef intr::set_base_hook<intr::tag<SVersMap_tag>, intr::optimize_size<true> > TVerDataMapHook

Definition at line 89 of file nc_db_info.hpp.

Enumeration Type Documentation

◆ EDBFileIndex

Enumerator
eFileIndexMeta 
eFileIndexData 
eFileIndexMaps 

Definition at line 303 of file nc_db_info.hpp.

◆ ENCDBFileType

Enumerator
eDBFileMeta 
eDBFileData 
eDBFileMaps 

Definition at line 293 of file nc_db_info.hpp.

Function Documentation

◆ operator!=()

bool operator!= ( SNCDataCoord  left,
SNCDataCoord  right 
)
inline

Definition at line 377 of file nc_db_info.hpp.

◆ operator<<()

const CSrvDiagMsg & operator<< ( const CSrvDiagMsg msg,
SNCDataCoord  coord 
)
inline

Definition at line 363 of file nc_db_info.hpp.

References SNCDataCoord::file_id, and SNCDataCoord::rec_num.

◆ operator==()

bool operator== ( SNCDataCoord  left,
SNCDataCoord  right 
)
inline

Definition at line 371 of file nc_db_info.hpp.

References SNCDataCoord::file_id, and SNCDataCoord::rec_num.

Variable Documentation

◆ kNCLargestBlobSize

const Uint8 kNCLargestBlobSize
Initial value:
=
uint64_t Uint8
8-byte (64-bit) unsigned integer
Definition: ncbitype.h:105
static const size_t kNCMaxBlobChunkSize
Maximum size of blob chunk stored in database.
Definition: nc_db_info.hpp:53
static const Uint2 kNCMaxChunksInMap
Definition: nc_db_info.hpp:55

Definition at line 60 of file nc_db_info.hpp.

Referenced by s_ReadVariableParams().

◆ kNCMaxBlobChunkSize

const size_t kNCMaxBlobChunkSize = 32740
static

Maximum size of blob chunk stored in database.

It's a little bit uneven to be efficient in the current memory manager. I.e. memory manager in TaskServer allocates memory with pages of 65536 bytes, uses some of that memory for page header and then splits the rest in half to obtain the maximum block size it can allocate this way. kNCMaxBlobChunkSize should be equal or less than that size (which is kMMMaxBlockSize in memory_man.cpp in task_server library).

Definition at line 53 of file nc_db_info.hpp.

Referenced by CNCBlobVerManager::CreateNewVersion(), and CWriteBackControl::ExecuteSlice().

◆ kNCMaxBlobMapsDepth

const Uint1 kNCMaxBlobMapsDepth = 3
static

◆ kNCMaxChunksInMap

const Uint2 kNCMaxChunksInMap = 128
static

Definition at line 55 of file nc_db_info.hpp.

Referenced by CNCBlobVerManager::CreateNewVersion(), and s_CalcChunkMapsSize().

◆ kNCMaxDBFileId

const Uint4 kNCMaxDBFileId = 0xFFFFFFFF
static

Definition at line 42 of file nc_db_info.hpp.

Referenced by s_CreateNewFile().

Modified on Wed Apr 17 13:08:10 2024 by modify_doxy.py rev. 669887