NCBI C++ ToolKit
Classes | Typedefs | Enumerations | Enumerator | Functions | Variables | Friends
BDB library BLOB support
+ Collaboration diagram for BDB library BLOB support:

Classes

class  CBDB_BLobFile
 Berkeley DB BLOB File class. More...
 
class  CBDB_IdBlobFile
 Variant of BLOB storage for integer key database. More...
 
class  CBDB_BlobReaderWriter
 Stream style BDB BLOB reader. More...
 
class  CBDB_BLobStream
 Berkeley DB BLOB File stream. More...
 
class  CBDB_LobFile
 Berkeley DB Large Object File class. More...
 
class  CBDB_BvStore< TBV >
 Basic template class for bitvector storage. More...
 
struct  SBDB_BvStore_Id< TBV >
 Id based BV store. More...
 
class  CBDB_MatrixBvStore< TBV, TM >
 Matrix BV store. More...
 
struct  CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr
 Sparse matrix descriptor. More...
 
class  CBDB_ExtBlobMap
 BLOB map, encapsulates collection of BLOB ids and BLOB locations. More...
 
struct  CBDB_ExtBlobMap::SBlobChunkLoc
 BLOB chunk location: offset in file + chunk size. More...
 
struct  CBDB_ExtBlobMap::SBlobLoc
 Blob id + blob location table (list of chunks and sizes) More...
 
class  CBDB_BlobMetaContainer
 Container of BLOB attributes Encapsulates: BLOB maps of several BLOBs (offsets there point in super BLOB) Super BLOB location table (offsets and sizes in external file) More...
 
struct  CBlobMetaDB
 Dictionary file, storing references on external BLOB file (super BLOB structure). More...
 
class  CBDB_ExtBlobStore< TBV >
 External BLOB store. More...
 
class  CBDB_MergeBlobWalker< BF >
 Generic iterator to traverse any CBDB_BLobFile for volume merge BF - any CBDB_BLobFile derived class. More...
 
class  CBDB_MergeBlobWalkerAsync< BF >
 Generic iterator to traverse any CBDB_BLobFile for volume merge BF - any CBDB_BLobFile derived class This implementation supports asyncronous processing. More...
 
class  CBDB_MergeBlobWalkerAsync< BF >::CAsync
 IAsync implementation. More...
 
class  CBDB_MergeBlobWalkerAsync< BF >::CJobThread
 Background thread class (executes async requests) More...
 
class  CBDB_MergeStore< BStore >
 Merge store saves result to BLOB store. More...
 
class  CBDB_MergeStoreAsync< BStore >
 Merge store saves result to BLOB store. More...
 
class  CBDB_MergeStoreAsync< BStore >::CAsync
 IAsync implementation. More...
 
class  CBDB_MergeStoreAsync< BStore >::CJobThread
 Background thread class (executes async requests) More...
 
class  CBDB_BlobStoreDict< TBV >
 Persistent storage for demux information. More...
 
class  CBDB_BlobDeMuxSplit
 Base class for page-split demultiplexers. More...
 
class  CBDB_BlobDeMux
 Volume split BLOB demultiplexer. More...
 
class  CBDB_BlobDeMuxPersistent
 Split demux which can save and load state into a file Stateful (persistent) class. More...
 
class  CBDB_BlobDeMux_RoundRobin
 BLOB demultiplexer implements round-robin volume rotation. More...
 
class  CBDB_BlobSplitStore< TBV, TObjDeMux, TL >
 BLOB storage based on single unsigned integer key Supports BLOB volumes and different base page size files in the volume to guarantee the best fit. More...
 
struct  CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb
 BDB Database together with the locker One database is opened twice, one regular mode, another - dedicated read-only instance to improve concurrency. More...
 
struct  CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SVolume
 Volume split on optimal page size. More...
 

Typedefs

typedef TBV CBDB_BvStore< TBV >::TBitVector
 Serializable bitvector. More...
 
typedef TBuffer::value_type CBDB_BvStore< TBV >::TBufferValue
 
typedef CBDB_BvStore< TBV > SBDB_BvStore_Id< TBV >::TParent
 
typedef TParent::TBitVector SBDB_BvStore_Id< TBV >::TBitVector
 
typedef map< unsigned, TBitVectorSBDB_BvStore_Id< TBV >::TBitCountMap
 Bitcount to bvector map (bvector represents the list of ids with the same bitcount. More...
 
typedef CBDB_BvStore< TBV > CBDB_MatrixBvStore< TBV, TM >::TParent
 
typedef TBV CBDB_MatrixBvStore< TBV, TM >::TBitVector
 Serializable bitvector. More...
 
typedef TM CBDB_MatrixBvStore< TBV, TM >::TMatrix
 Bit matrix. More...
 
typedef TParent::ECompact CBDB_MatrixBvStore< TBV, TM >::ECompact
 
typedef vector< SMatrixDescrCBDB_MatrixBvStore< TBV, TM >::TMatrixDescrList
 
typedef vector< SBlobChunkLocCBDB_ExtBlobMap::TBlobChunkVec
 BLOB location table (list of chunks and sizes) More...
 
typedef vector< SBlobLocCBDB_ExtBlobMap::TBlobMap
 Collection of BLOBs (id + allocation table) More...
 
typedef CBDB_BLobFile CBlobMetaDB::TParent
 
typedef TBV CBDB_ExtBlobStore< TBV >::TBitVector
 
typedef BF CBDB_MergeBlobWalker< BF >::TBlobFile
 
typedef BF CBDB_MergeBlobWalkerAsync< BF >::TBlobFile
 
typedef CBDB_MergeBlobWalkerAsync< BFCBDB_MergeBlobWalkerAsync< BF >::TMainClass
 
typedef BStore CBDB_MergeStore< BStore >::TBlobStore
 
typedef BStore CBDB_MergeStoreAsync< BStore >::TBlobStore
 
typedef CBDB_MergeStoreAsync< BStore > CBDB_MergeStoreAsync< BStore >::TMainClass
 
typedef CBDB_BvStore< TBV > CBDB_BlobStoreDict< TBV >::TParent
 
typedef CNcbiMatrix< double > CBDB_BlobDeMux::TVolumeSize
 
typedef CNcbiMatrix< unsigned > CBDB_BlobDeMux::TVolumeRecs
 
typedef CIdDeMux< TBV > CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TIdDeMux
 
typedef TBV CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TBitVector
 
typedef CBDB_BlobStoreDict< TBV > CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TDeMuxStore
 
typedef TL CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TLock
 
typedef TL::TWriteLockGuard CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TLockGuard
 
typedef CBDB_IdBlobFile CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TBlobFile
 
typedef vector< SVolume * > CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TVolumeVect
 

Enumerations

enum  CBDB_BvStore< TBV >::ECompact { CBDB_BvStore< TBV >::eNoCompact , CBDB_BvStore< TBV >::eCompact }
 Compression options for vector storage. More...
 
enum  CBDB_MatrixBvStore< TBV, TM >::EStoreType { CBDB_MatrixBvStore< TBV, TM >::eBitVector = 0 , CBDB_MatrixBvStore< TBV, TM >::eDescriptor = 1 , CBDB_MatrixBvStore< TBV, TM >::eMatrix = 2 }
 
enum  CBDB_ExtBlobStore< TBV >::ELastOp { CBDB_ExtBlobStore< TBV >::eRead , CBDB_ExtBlobStore< TBV >::eWrite }
 Last operation type. More...
 
enum  CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::EGetDB_Mode { CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::eGetRead , CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::eGetWrite }
 Read or write operation. More...
 

Functions

 CBDB_BLobFile::CBDB_BLobFile (EDuplicateKeys dup_keys=eDuplicatesDisable, EDBType db_type=eBtree)
 
EBDB_ErrCode CBDB_BLobFile::Insert (const void *data, size_t size)
 Insert BLOB into the database. More...
 
EBDB_ErrCode CBDB_BLobFile::Insert (const TBuffer &buf)
 Insert BLOB. More...
 
unsigned CBDB_BLobFile::Append (const void *data, size_t size)
 
EBDB_ErrCode CBDB_BLobFile::UpdateInsert (const void *data, size_t size)
 Insert or update BLOB. More...
 
EBDB_ErrCode CBDB_BLobFile::UpdateInsert (const TBuffer &buf)
 Insert or update BLOB. More...
 
EBDB_ErrCode CBDB_BLobFile::Fetch ()
 Fetch the record corresponding to the current key value. More...
 
EBDB_ErrCode CBDB_BLobFile::Fetch (void **buf, size_t buf_size, EReallocMode allow_realloc)
 Retrieve BLOB data. More...
 
size_t CBDB_BLobFile::LobSize () const
 Get LOB size. Becomes available right after successfull Fetch. More...
 
size_t CBDB_BLobFile::BlobSize () const
 Get LOB size. Becomes available right after successfull Fetch. More...
 
EBDB_ErrCode CBDB_BLobFile::ReadRealloc (TBuffer &buffer)
 Read BLOB into vector. More...
 
EBDB_ErrCode CBDB_BLobFile::GetData (void *buf, size_t size)
 Copy LOB data into the 'buf'. More...
 
CBDB_BLobStreamCBDB_BLobFile::CreateStream ()
 Creates stream like object to retrieve or write BLOB by chunks. More...
 
CBDB_BlobReaderWriterCBDB_BLobFile::CreateReaderWriter ()
 Creates stream like object to retrieve or write BLOB by chunks. More...
 
IReaderCBDB_BLobFile::CreateReader ()
 Creates stream like object to read BLOB by chunks. More...
 
 CBDB_BLobFile::CBDB_BLobFile (const CBDB_BLobFile &)
 forbidden More...
 
CBDB_BLobFileCBDB_BLobFile::operator= (const CBDB_BLobFile &)
 
Uint4 CBDB_IdBlobFile::GetUid () const
 
 CBDB_IdBlobFile::CBDB_IdBlobFile (EDuplicateKeys dup_keys=eDuplicatesDisable, EDBType db_type=eBtree)
 
virtual void CBDB_IdBlobFile::SetHash (DB *)
 Hash for this type returns id (key);. More...
 
 CBDB_BlobReaderWriter::CBDB_BlobReaderWriter (DB *db, DBT *dbt_key, size_t blob_size, DB_TXN *txn)
 
 CBDB_BlobReaderWriter::~CBDB_BlobReaderWriter ()
 
void CBDB_BlobReaderWriter::SetTransaction (CBDB_Transaction *trans)
 Set current transaction. More...
 
virtual ERW_Result CBDB_BlobReaderWriter::Read (void *buf, size_t count, size_t *bytes_read)
 Read as many as "count" bytes into a buffer pointed to by the "buf" argument. More...
 
virtual ERW_Result CBDB_BlobReaderWriter::PendingCount (size_t *count)
 Via parameter "count" (which is guaranteed to be supplied non-NULL) return the number of bytes that are ready to be read from the input device without blocking. More...
 
virtual ERW_Result CBDB_BlobReaderWriter::Write (const void *buf, size_t count, size_t *bytes_written)
 Write up to "count" bytes from the buffer pointed to by the "buf" argument onto the output device. More...
 
virtual ERW_Result CBDB_BlobReaderWriter::Flush (void)
 Flush pending data (if any) down to the output device. More...
 
 CBDB_BlobReaderWriter::CBDB_BlobReaderWriter (const CBDB_BlobReaderWriter &)
 
CBDB_BlobReaderWriterCBDB_BlobReaderWriter::operator= (const CBDB_BlobReaderWriter &)
 
 CBDB_BLobStream::CBDB_BLobStream (DB *db, DBT *dbt_key, size_t blob_size, DB_TXN *txn)
 
 CBDB_BLobStream::~CBDB_BLobStream ()
 
void CBDB_BLobStream::SetTransaction (CBDB_Transaction *trans)
 Set current transaction for BLOB stream. More...
 
void CBDB_BLobStream::Read (void *buf, size_t buf_size, size_t *bytes_read)
 Read data from BLOB. More...
 
void CBDB_BLobStream::Write (const void *buf, size_t buf_size)
 Write data into BLOB. More...
 
size_t CBDB_BLobStream::PendingCount () const
 Return how much bytes we can read from the blob. More...
 
 CBDB_BLobStream::CBDB_BLobStream (const CBDB_BLobStream &)
 
CBDB_BLobStreamCBDB_BLobStream::operator= (const CBDB_BLobStream &)
 
 CBDB_LobFile::CBDB_LobFile ()
 
EBDB_ErrCode CBDB_LobFile::Insert (unsigned int lob_id, const void *data, size_t size)
 Insert BLOB data into the database, does nothing if key exists. More...
 
EBDB_ErrCode CBDB_LobFile::InsertUpdate (unsigned int lob_id, const void *data, size_t size)
 Insert or Update BLOB data into the database. More...
 
EBDB_ErrCode CBDB_LobFile::Fetch (unsigned int lob_id)
 Fetch LOB record. More...
 
EBDB_ErrCode CBDB_LobFile::Fetch (unsigned int lob_id, void **buf, size_t buf_size, EReallocMode allow_realloc)
 Fetch LOB record directly into the provided '*buf'. More...
 
size_t CBDB_LobFile::LobSize () const
 Get LOB size. Becomes available right after successfull Fetch. More...
 
EBDB_ErrCode CBDB_LobFile::GetData (void *buf, size_t size)
 Copy LOB data into the 'buf'. More...
 
unsigned int CBDB_LobFile::GetKey () const
 
virtual void CBDB_LobFile::SetCmp (DB *)
 Comparison function for unsigned int key. More...
 
EBDB_ErrCode CBDB_LobFile::x_Put (unsigned int lob_id, const void *data, size_t size, bool can_update)
 
 CBDB_BvStore< TBV >::CBDB_BvStore (unsigned initial_serialization_buf_size=16384)
 Construction. More...
 
 CBDB_BvStore< TBV >::~CBDB_BvStore ()
 
EBDB_ErrCode CBDB_BvStore< TBV >::ReadVector (TBitVector *bv)
 Fetch and deserialize the *current* bitvector. More...
 
EBDB_ErrCode CBDB_BvStore< TBV >::ReadVector (TBitVector *bv, bm::set_operation op, unsigned *count=0)
 Fetch and deserialize the *current* bitvector using deserialization operation. More...
 
EBDB_ErrCode CBDB_BvStore< TBV >::WriteVector (const TBitVector &bv, ECompact compact)
 Save a bitvector to the store. More...
 
TBufferCBDB_BvStore< TBV >::GetBuffer ()
 Get access to the internal buffer. More...
 
EBDB_ErrCode CBDB_BvStore< TBV >::FetchToBuffer (CBDB_FileCursor &cur)
 Fetch the next BLOB record to the resiable buffer. More...
 
void CBDB_BvStore< TBV >::Deserialize (TBitVector *bv, const TBufferValue *buf)
 
bm::word_tCBDB_BvStore< TBV >::GetSerializationTempBlock ()
 
EBDB_ErrCode CBDB_BvStore< TBV >::Read (TBitVector *bv, bool clear_target_vec)
 Fetch, deserialize bvector. More...
 
EBDB_ErrCode CBDB_BvStore< TBV >::ReadRealloc (TBitVector *bv, bool clear_target_vec)
 Read bvector, reallocate the internal buffer if necessary. More...
 
EBDB_ErrCode CBDB_BvStore< TBV >::ReadRealloc (TBuffer &buffer)
 Read buffer, reallocate if necessary. More...
 
 SBDB_BvStore_Id< TBV >::SBDB_BvStore_Id (unsigned initial_serialization_buf_size=16384)
 
void SBDB_BvStore_Id< TBV >::StoreVectorList (const vector< TBitVector * > &bv_lst)
 Store vector of bitvector ponters, index in the vector becoms an id of the element. More...
 
void SBDB_BvStore_Id< TBV >::ComputeBitCountMap (TBitCountMap *bc_map, unsigned bitcount_from, unsigned bitcount_to, TBitVector *out_of_interval_ids=0)
 Utility to compute bit-count storage statistics this statistics is a map bit_count -> list of ids in other words it is a extended histogram of bitcounts It is memory prohibitive to compute the complate historgam so we take only a portion of it. More...
 
void SBDB_BvStore_Id< TBV >::ReadIds (TBitVector *id_bv)
 Read id storage keys (id field) into bit-vector. More...
 
 CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::SMatrixDescr (unsigned c=0, unsigned r=0, TBitVector *bv=0)
 
 CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::~SMatrixDescr ()
 
 CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::SMatrixDescr (const SMatrixDescr &mdesc)
 
SMatrixDescrCBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::operator= (const SMatrixDescr &mdesc)
 
 CBDB_MatrixBvStore< TBV, TM >::CBDB_MatrixBvStore (unsigned initial_serialization_buf_size=16384)
 
 CBDB_MatrixBvStore< TBV, TM >::~CBDB_MatrixBvStore ()
 
EBDB_ErrCode CBDB_MatrixBvStore< TBV, TM >::InsertSparseMatrix (const TMatrix &matr, const TBitVector &descr_bv, ECompact compact)
 Save sparse matrix. More...
 
void CBDB_MatrixBvStore< TBV, TM >::LoadMatrixDescriptions (TMatrixDescrList *descr_list)
 Load all matrix descriptions from the store WHERE store_type = eDescriptor. More...
 
 CBDB_MatrixBvStore< TBV, TM >::CBDB_MatrixBvStore (const CBDB_MatrixBvStore &)
 
CBDB_MatrixBvStoreCBDB_MatrixBvStore< TBV, TM >::operator= (const CBDB_MatrixBvStore &)
 
 CBDB_ExtBlobMap::SBlobChunkLoc::SBlobChunkLoc ()
 
 CBDB_ExtBlobMap::SBlobChunkLoc::SBlobChunkLoc (Uint8 off, Uint8 s)
 
 CBDB_ExtBlobMap::SBlobLoc::SBlobLoc ()
 
 CBDB_ExtBlobMap::SBlobLoc::SBlobLoc (Uint4 id, Uint8 offset, Uint8 size)
 Construct one-chunk blob locator. More...
 
 CBDB_ExtBlobMap::CBDB_ExtBlobMap ()
 
void CBDB_ExtBlobMap::Add (Uint4 blob_id, Uint8 offset, Uint8 size)
 Add BLOB. BLOB consists of one single chunk. More...
 
bool CBDB_ExtBlobMap::HasBlob (Uint4 blob_id) const
 Returns TRUE if blob exists in the map. More...
 
bool CBDB_ExtBlobMap::GetBlobLoc (Uint4 blob_id, Uint8 *offset, Uint8 *size) const
 Get BLOB location. More...
 
size_t CBDB_ExtBlobMap::Size () const
 Number of BLOBs registered in the map. More...
 
void CBDB_ExtBlobMap::GetBlobIdRange (Uint4 *min_id, Uint4 *max_id) const
 Get BLOB id min and max range (closed interval) More...
 
size_t CBDB_ExtBlobMap::x_ComputeSerializationSize (unsigned *bits_used, bool *is_single_chunk) const
 Compute serialization size and effective number of bits used for offset/size storage (16, 32, 64) More...
 
 CBDB_BlobMetaContainer::CBDB_BlobMetaContainer ()
 
const CBDB_ExtBlobMapCBDB_BlobMetaContainer::GetBlobMap () const
 
CBDB_ExtBlobMapCBDB_BlobMetaContainer::SetBlobMap ()
 
 CBlobMetaDB::CBlobMetaDB ()
 
EBDB_ErrCode CBlobMetaDB::FetchMeta (Uint4 blob_id, CBDB_BlobMetaContainer *meta_container, Uint4 *id_from=0, Uint4 *id_to=0)
 Find the meta container storing our target blob_id Function is doing the cursor range scan sequentially reading range-matching BLOB descriptions. More...
 
EBDB_ErrCode CBlobMetaDB::UpdateInsert (const CBDB_BlobMetaContainer &meta_container)
 Insert new super BLOB metainfo. More...
 
 CBlobMetaDB::CBlobMetaDB (const CBlobMetaDB &)
 
CBlobMetaDBCBlobMetaDB::operator= (const CBlobMetaDB &)
 
 CBDB_ExtBlobStore< TBV >::CBDB_ExtBlobStore ()
 
 CBDB_ExtBlobStore< TBV >::~CBDB_ExtBlobStore ()
 
void CBDB_ExtBlobStore< TBV >::SetStoreDataDir (const string &dir_name)
 External store location. More...
 
void CBDB_ExtBlobStore< TBV >::SetStoreAttrDir (const string &dir_name)
 Store attributes DB location (by default it is the same as SetStoreDataDir). More...
 
void CBDB_ExtBlobStore< TBV >::SetEnv (CBDB_Env &env)
 
CBDB_EnvCBDB_ExtBlobStore< TBV >::GetEnv (void) const
 
void CBDB_ExtBlobStore< TBV >::SetCompressor (ICompression *compressor, EOwnership own=eTakeOwnership)
 Set compressor for external BLOB. More...
 
void CBDB_ExtBlobStore< TBV >::Open (const string &storage_name, CBDB_RawFile::EOpenMode open_mode)
 Open external store. More...
 
void CBDB_ExtBlobStore< TBV >::Close ()
 Close store. More...
 
void CBDB_ExtBlobStore< TBV >::Save ()
 Save all changes (flush buffers, store attributes, etc.) More...
 
void CBDB_ExtBlobStore< TBV >::SetContainerMaxSize (unsigned max_size)
 Set maximum size of BLOB container. More...
 
unsigned CBDB_ExtBlobStore< TBV >::GetContainerMaxSize () const
 Get container max size. More...
 
void CBDB_ExtBlobStore< TBV >::StoreBlob (unsigned blob_id, const CBDB_RawFile::TBuffer &buf)
 Add blob to external store. More...
 
void CBDB_ExtBlobStore< TBV >::Flush ()
 Flush current container to disk. More...
 
EBDB_ErrCode CBDB_ExtBlobStore< TBV >::ReadBlob (unsigned blob_id, CBDB_RawFile::TBuffer &buf)
 Read blob from external store. More...
 
 CBDB_ExtBlobStore< TBV >::CBDB_ExtBlobStore (const CBDB_ExtBlobStore &)
 
CBDB_ExtBlobStoreCBDB_ExtBlobStore< TBV >::operator= (const CBDB_ExtBlobStore &)
 
bool CBDB_ExtBlobStore< TBV >::x_ReadCache (unsigned blob_id, CBDB_RawFile::TBuffer &buf)
 Try to read BLOB from the recently loaded container. More...
 
 CBDB_MergeBlobWalker< BF >::CBDB_MergeBlobWalker (TBlobFile *blob_file, EOwnership own=eTakeOwnership, size_t fetch_buffer_size=10 *1024 *1024)
 
virtual CBDB_MergeBlobWalker< BF >::~CBDB_MergeBlobWalker ()
 
virtual IAsyncInterfaceCBDB_MergeBlobWalker< BF >::QueryIAsync ()
 Get pointer to async. More...
 
virtual bool CBDB_MergeBlobWalker< BF >::IsEof () const
 Return TRUE when volume traverse reaches the end. More...
 
virtual bool CBDB_MergeBlobWalker< BF >::IsGood () const
 Return TRUE if volume is in good condition (not failed) More...
 
virtual void CBDB_MergeBlobWalker< BF >::FetchFirst ()
 Request to start fetching data This request can be asyncronous caller needs to check status using IAsyncInterface to make sure Fetch finished. More...
 
virtual void CBDB_MergeBlobWalker< BF >::Fetch ()
 Request to get next record This request can be asyncronous caller needs to check status using IAsyncInterface to make sure Fetch finished. More...
 
virtual const unsigned char * CBDB_MergeBlobWalker< BF >::GetKeyPtr () const
 Get low level access to the current key buffer. More...
 
virtual Uint4 CBDB_MergeBlobWalker< BF >::GetUint4Key () const
 Get access to the key as unsigned integer (if this type is supported) More...
 
virtual const unsigned char * CBDB_MergeBlobWalker< BF >::GetBufferPtr (size_t *buf_size) const
 Get low level access to the merge BLOB buffer and buffer size (next Fetch call invalidates this pointer) More...
 
virtual void CBDB_MergeBlobWalker< BF >::Close ()
 Close volume (when it ends) Method is responsible for finalization of merge procedure (it could be deletion of records, compaction of data files, etc), stopping background threads, closing server connections. More...
 
virtual void CBDB_MergeBlobWalker< BF >::SetRecordMoved ()
 Signals that current record moved to merged storage (volume manager may decide to delete it later) Volume manager should NOT fetch next record on this call. More...
 
 CBDB_MergeBlobWalkerAsync< BF >::CBDB_MergeBlobWalkerAsync (TBlobFile *blob_file, EOwnership own=eTakeOwnership, size_t fetch_buffer_size=10 *1024 *1024)
 
virtual CBDB_MergeBlobWalkerAsync< BF >::~CBDB_MergeBlobWalkerAsync ()
 
virtual IAsyncInterfaceCBDB_MergeBlobWalkerAsync< BF >::QueryIAsync ()
 Get pointer to async. More...
 
virtual bool CBDB_MergeBlobWalkerAsync< BF >::IsEof () const
 Return TRUE when volume traverse reaches the end. More...
 
virtual bool CBDB_MergeBlobWalkerAsync< BF >::IsGood () const
 Return TRUE if volume is in good condition (not failed) More...
 
virtual void CBDB_MergeBlobWalkerAsync< BF >::FetchFirst ()
 Request to start fetching data This request can be asyncronous caller needs to check status using IAsyncInterface to make sure Fetch finished. More...
 
virtual void CBDB_MergeBlobWalkerAsync< BF >::Fetch ()
 Request to get next record This request can be asyncronous caller needs to check status using IAsyncInterface to make sure Fetch finished. More...
 
virtual const unsigned char * CBDB_MergeBlobWalkerAsync< BF >::GetKeyPtr () const
 Get low level access to the current key buffer. More...
 
virtual Uint4 CBDB_MergeBlobWalkerAsync< BF >::GetUint4Key () const
 Get access to the key as unsigned integer (if this type is supported) More...
 
virtual const unsigned char * CBDB_MergeBlobWalkerAsync< BF >::GetBufferPtr (size_t *buf_size) const
 Get low level access to the merge BLOB buffer and buffer size (next Fetch call invalidates this pointer) More...
 
virtual void CBDB_MergeBlobWalkerAsync< BF >::Close ()
 Close volume (when it ends) Method is responsible for finalization of merge procedure (it could be deletion of records, compaction of data files, etc), stopping background threads, closing server connections. More...
 
virtual void CBDB_MergeBlobWalkerAsync< BF >::SetRecordMoved ()
 Signals that current record moved to merged storage (volume manager may decide to delete it later) Volume manager should NOT fetch next record on this call. More...
 
 CBDB_MergeBlobWalkerAsync< BF >::CAsync::CAsync (TMainClass &impl)
 
virtual EStatus CBDB_MergeBlobWalkerAsync< BF >::CAsync::GetStatus () const
 Get current interface async. status. More...
 
virtual EStatus CBDB_MergeBlobWalkerAsync< BF >::CAsync::WaitReady () const
 Wait until interface is ready (or operation fails) (On failure volume is free to throw an exception) More...
 
 CBDB_MergeBlobWalkerAsync< BF >::CJobThread::CJobThread (TMainClass &impl)
 
virtual void CBDB_MergeBlobWalkerAsync< BF >::CJobThread::DoJob (void)
 Do job delegated processing to the main class. More...
 
void CBDB_MergeBlobWalkerAsync< BF >::DoFetch ()
 
 CBDB_MergeStore< BStore >::CBDB_MergeStore (TBlobStore *blob_store, EOwnership own=eTakeOwnership)
 
virtual CBDB_MergeStore< BStore >::~CBDB_MergeStore ()
 
virtual IAsyncInterfaceCBDB_MergeStore< BStore >::QueryIAsync ()
 Get pointer to async. More...
 
virtual bool CBDB_MergeStore< BStore >::IsGood () const
 Return TRUE if storage device is in good shape. More...
 
virtual void CBDB_MergeStore< BStore >::Store (Uint4 blob_id, CMergeVolumes::TRawBuffer *buffer)
 Store BLOB request This request can be asyncronous caller needs to check status using IAsyncInterface to make sure Fetch finished Method implementation MUST return storage buffer to the resource pool. More...
 
virtual void CBDB_MergeStore< BStore >::Close ()
 Close storage (when it ends) Method is responsible for finalization of store procedure, stopping background threads, closing server connections. More...
 
virtual CMergeVolumes::TRawBufferCBDB_MergeStore< BStore >::ReadBlob (Uint4 blob_id)
 Read buffer with the specified blob_id This method is for store update, when we are merging into an existing store. More...
 
 CBDB_MergeStoreAsync< BStore >::CBDB_MergeStoreAsync (TBlobStore *blob_store, EOwnership own=eTakeOwnership)
 
virtual CBDB_MergeStoreAsync< BStore >::~CBDB_MergeStoreAsync ()
 
virtual IAsyncInterfaceCBDB_MergeStoreAsync< BStore >::QueryIAsync ()
 Get pointer to async. More...
 
virtual bool CBDB_MergeStoreAsync< BStore >::IsGood () const
 Return TRUE if storage device is in good shape. More...
 
virtual void CBDB_MergeStoreAsync< BStore >::Store (Uint4 blob_id, CMergeVolumes::TRawBuffer *buffer)
 Store BLOB request This request can be asyncronous caller needs to check status using IAsyncInterface to make sure Fetch finished Method implementation MUST return storage buffer to the resource pool. More...
 
virtual void CBDB_MergeStoreAsync< BStore >::Close ()
 Close storage (when it ends) Method is responsible for finalization of store procedure, stopping background threads, closing server connections. More...
 
virtual CMergeVolumes::TRawBufferCBDB_MergeStoreAsync< BStore >::ReadBlob (Uint4 blob_id)
 Read buffer with the specified blob_id This method is for store update, when we are merging into an existing store. More...
 
void CBDB_MergeStoreAsync< BStore >::DoStore ()
 
 CBDB_MergeStoreAsync< BStore >::CAsync::CAsync (TMainClass &impl)
 
virtual EStatus CBDB_MergeStoreAsync< BStore >::CAsync::GetStatus () const
 Get current interface async. status. More...
 
virtual EStatus CBDB_MergeStoreAsync< BStore >::CAsync::WaitReady () const
 Wait until interface is ready (or operation fails) (On failure volume is free to throw an exception) More...
 
 CBDB_MergeStoreAsync< BStore >::CJobThread::CJobThread (TMainClass &impl)
 
virtual void CBDB_MergeStoreAsync< BStore >::CJobThread::DoJob (void)
 Do job delegated processing to the main class. More...
 
 CBDB_BlobStoreDict< TBV >::CBDB_BlobStoreDict ()
 
static unsigned CBDB_BlobDeMuxSplit::SelectSplit (size_t blob_size)
 LOBs are getting split into slices based on LOB size, similar BLOBs go to the compartment with more optimal storage paramaters. More...
 
unsigned CBDB_BlobDeMuxSplit::GetSplitSize () const
 Returns total number of splits (horizontal projection) If method returns 0 - means there is no hard number: open ended proj. More...
 
unsigned CBDB_BlobDeMuxSplit::GetVolumeSize () const
 Returns total number of volumes (vertical projection) If method returns 0 - means there is no hard number: open ended proj. More...
 
 CBDB_BlobDeMux::CBDB_BlobDeMux (double vol_max=1.5 *(1024.00 *1024.00 *1024.00), unsigned rec_max=3 *1000000)
 
void CBDB_BlobDeMux::GetCoordinates (unsigned blob_size, unsigned *coord)
 coordinates: More...
 
void CBDB_BlobDeMux::NewPlane ()
 
 CBDB_BlobDeMuxPersistent::CBDB_BlobDeMuxPersistent (const string &path, double vol_max=1.5 *(1024.00 *1024.00 *1024.00), unsigned rec_max=3 *1000000)
 
 CBDB_BlobDeMuxPersistent::~CBDB_BlobDeMuxPersistent ()
 
void CBDB_BlobDeMuxPersistent::Save (CNcbiOstream &ostr)
 
void CBDB_BlobDeMuxPersistent::Load (CNcbiIstream &istr)
 
 CBDB_BlobDeMux_RoundRobin::CBDB_BlobDeMux_RoundRobin (unsigned volumes=0)
 
void CBDB_BlobDeMux_RoundRobin::GetCoordinates (unsigned blob_size, unsigned *coord)
 coordinates: More...
 
unsigned CBDB_BlobDeMux_RoundRobin::GetVolumeSize () const
 Returns total number of volumes (vertical projection) If method returns 0 - means there is no hard number: open ended proj. More...
 
 CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::CBDB_BlobSplitStore (TObjDeMux *de_mux)
 Construction The main parameter here is object demultiplexer for splitting incoming LOBs into volumes and slices. More...
 
 CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::~CBDB_BlobSplitStore ()
 
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Open (const string &storage_name, CBDB_RawFile::EOpenMode open_mode, CBDB_RawFile::EDBType db_type=CBDB_RawFile::eBtree)
 Open storage (reads storage dictionary into memory) More...
 
bool CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::IsOpen () const
 Return true if the split store has been opened. More...
 
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::OpenProjections ()
 Try to open all storage files in all projections This is only possible when object de-mux has fixed number of projections, if it is not the call is silently ignored. More...
 
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Save (typename TDeMuxStore::ECompact compact_vectors=TDeMuxStore::eCompact)
 Save storage dictionary (demux disposition). More...
 
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SetVolumeCacheSize (unsigned int cache_size)
 
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SetEnv (CBDB_Env &env)
 Associate with the environment. Should be called before opening. More...
 
CBDB_EnvCBDB_BlobSplitStore< TBV, TObjDeMux, TL >::GetEnv (void) const
 Get pointer on file environment Return NULL if no environment has been set. More...
 
const stringCBDB_BlobSplitStore< TBV, TObjDeMux, TL >::GetFileName () const
 Return the base filename of the underlying split store. More...
 
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::RevSplitOff ()
 Turn off reverse splitting on the underlying stores. More...
 
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SetCachePriority (CBDB_RawFile::ECachePriority)
 Set the priority for this database's pages in the buffer cache This is generally a temporary advisement, and works only if an environment is used. More...
 
virtual void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SetTransaction (ITransaction *trans)
 Establish transaction association. More...
 
CBDB_TransactionCBDB_BlobSplitStore< TBV, TObjDeMux, TL >::GetBDBTransaction ()
 
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Insert (unsigned id, const void *data, size_t size, unsigned *coord)
 Insert BLOB into the storage. More...
 
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Insert (unsigned id, const void *data, size_t size)
 
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::UpdateInsert (unsigned id, const void *data, size_t size, unsigned *coord)
 Update or insert BLOB. More...
 
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::UpdateInsert (unsigned id, const void *data, size_t size)
 
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::UpdateInsert (unsigned id, const unsigned *old_coord, const void *data, size_t size, unsigned *coord)
 Update or insert BLOB using old coordinates. More...
 
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Delete (unsigned id, CBDB_RawFile::EIgnoreError on_error=CBDB_RawFile::eThrowOnError)
 Delete BLOB. More...
 
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Delete (unsigned id, const unsigned *coords, CBDB_RawFile::EIgnoreError on_error=CBDB_RawFile::eThrowOnError)
 
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::GetCoordinates (unsigned id, unsigned *coords)
 Find (demux) coordinates by BLOB id. More...
 
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::AssignCoordinates (unsigned id, const unsigned *coords)
 Assing de-mux coordinates. More...
 
bool CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::IsSameCoordinates (const unsigned *coords1, const unsigned *coords2)
 Returns true if two sets of coordinates are the same. More...
 
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::ReadRealloc (unsigned id, CBDB_RawFile::TBuffer &buffer)
 Read BLOB into vector. More...
 
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::ReadRealloc (unsigned id, const unsigned *coords, CBDB_RawFile::TBuffer &buffer)
 Read BLOB into vector using provided coordinates If BLOB does not fit, method resizes the vector to accomodate. More...
 
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Fetch (unsigned id, void **buf, size_t buf_size, CBDB_RawFile::EReallocMode allow_realloc, size_t *blob_size)
 Fetch LOB record directly into the provided '*buf'. More...
 
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Fetch (unsigned id, const unsigned *coords, void **buf, size_t buf_size, CBDB_RawFile::EReallocMode allow_realloc, size_t *blob_size)
 
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Sync ()
 Sync the underlying stores. More...
 
IReaderCBDB_BlobSplitStore< TBV, TObjDeMux, TL >::CreateReader (unsigned id)
 Create stream oriented reader. More...
 
IReaderCBDB_BlobSplitStore< TBV, TObjDeMux, TL >::CreateReader (unsigned id, const unsigned *coords)
 
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::BlobSize (unsigned id, size_t *blob_size)
 Get size of the BLOB. More...
 
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::BlobSize (unsigned id, const unsigned *coords, size_t *blob_size)
 
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::GetIdVector (TBitVector *bv) const
 Get all id of all BLOBs stored. More...
 
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::FreeUnusedMem ()
 Reclaim unused memory. More...
 
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::CloseVolumes ()
 Close volumes without saving or doing anything with id demux. More...
 
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::LoadIdDeMux (TIdDeMux &de_mux, TDeMuxStore &dict_file)
 
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SaveIdDeMux (const TIdDeMux &de_mux, TDeMuxStore &dict_file, CBDB_Transaction *trans, typename TDeMuxStore::ECompact compact_vectors)
 Store id demux (projection vectors) into the database file. More...
 
unsigned CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::GetPageSize (unsigned splice) const
 Select preferred page size for the specified slice. More...
 
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::OpenDict ()
 Open split storage dictionary. More...
 
string CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::MakeDbFileName (unsigned vol, unsigned slice)
 Make BDB file name based on volume and page size split. More...
 
SLockedDbCBDB_BlobSplitStore< TBV, TObjDeMux, TL >::GetDb (unsigned vol, unsigned slice, EGetDB_Mode get_mode)
 Get database pair (method opens and mounts database if necessary) More...
 
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::InitDbMutex (SLockedDb *ldb)
 Init database mutex lock (mathod is protected against double init) More...
 
 CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::CBDB_BlobSplitStore (const CBDB_BlobSplitStore< TBV, TObjDeMux, TL > &)
 forbidden More...
 
CBDB_BlobSplitStore< TBV, TObjDeMux, TL > & CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::operator= (const CBDB_BlobSplitStore< TBV, TObjDeMux, TL > &)
 

Variables

CBDB_FieldUint4 CBDB_IdBlobFile::id
 ID key. More...
 
DBCBDB_BlobReaderWriter::m_DB
 
DBTCBDB_BlobReaderWriter::m_DBT_Key
 
DBTCBDB_BlobReaderWriter::m_DBT_Data
 
DB_TXNCBDB_BlobReaderWriter::m_Txn
 
unsigned CBDB_BlobReaderWriter::m_Pos
 
size_t CBDB_BlobReaderWriter::m_BlobSize
 
DBCBDB_BLobStream::m_DB
 
DBTCBDB_BLobStream::m_DBT_Key
 
DBTCBDB_BLobStream::m_DBT_Data
 
DB_TXNCBDB_BLobStream::m_Txn
 
unsigned CBDB_BLobStream::m_Pos
 
size_t CBDB_BLobStream::m_BlobSize
 
unsigned int CBDB_LobFile::m_LobKey
 
TBuffer CBDB_BvStore< TBV >::m_Buffer
 temporary serialization buffer More...
 
TBitVector CBDB_BvStore< TBV >::m_TmpBVec
 temporary bitset More...
 
bm::word_tCBDB_BvStore< TBV >::m_STmpBlock
 temp block for bitvector serialization More...
 
CBDB_FieldUint4 SBDB_BvStore_Id< TBV >::id
 ID key. More...
 
unsigned CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::cols
 
unsigned CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::rows
 
TBitVectorCBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::descr_bv
 
CBDB_FieldUint4 CBDB_MatrixBvStore< TBV, TM >::matr_cols
 Number of columns (bit count) More...
 
CBDB_FieldUint4 CBDB_MatrixBvStore< TBV, TM >::matr_rows
 Number of rows (number of bvectors) More...
 
CBDB_FieldUint4 CBDB_MatrixBvStore< TBV, TM >::store_type
 EStoreType. More...
 
Uint8 CBDB_ExtBlobMap::SBlobChunkLoc::offset
 chunk offset More...
 
Uint8 CBDB_ExtBlobMap::SBlobChunkLoc::size
 chunk size More...
 
Uint4 CBDB_ExtBlobMap::SBlobLoc::blob_id
 
TBlobChunkVec CBDB_ExtBlobMap::SBlobLoc::blob_location_table
 
TBlobMap CBDB_ExtBlobMap::m_BlobMap
 
CBDB_ExtBlobMap::TBlobChunkVec CBDB_BlobMetaContainer::m_Loc
 Super BLOB location vector. More...
 
CBDB_ExtBlobMap CBDB_BlobMetaContainer::m_BlobMap
 Blob attributes (super BLOB content) More...
 
CBDB_FieldUint4 CBlobMetaDB::id_from
 Id range from. More...
 
CBDB_FieldUint4 CBlobMetaDB::id_to
 Id range to. More...
 
CBDB_RawFile::TBuffer CBDB_ExtBlobStore< TBV >::TBuffer
 
TBitVector CBDB_ExtBlobStore< TBV >::m_BlobIds
 List of BLOB ids stored. More...
 
bm::word_tCBDB_ExtBlobStore< TBV >::m_STmpBlock
 temp block for bitvector serialization More...
 
CBDB_RawFile::EOpenMode CBDB_ExtBlobStore< TBV >::m_OpenMode
 
CBDB_EnvCBDB_ExtBlobStore< TBV >::m_Env
 
CBlobMetaDBCBDB_ExtBlobStore< TBV >::m_BlobAttrDB
 
CNcbiFstreamCBDB_ExtBlobStore< TBV >::m_ExtStore
 
AutoPtr< ICompressionCBDB_ExtBlobStore< TBV >::m_Compressor
 Record compressor. More...
 
CBDB_RawFile::TBuffer CBDB_ExtBlobStore< TBV >::m_CompressBuffer
 
string CBDB_ExtBlobStore< TBV >::m_StoreDataDir
 
string CBDB_ExtBlobStore< TBV >::m_StoreAttrDir
 
unsigned CBDB_ExtBlobStore< TBV >::m_ContainerMax
 Max size of a BLOB container. More...
 
CBDB_RawFile::TBuffer CBDB_ExtBlobStore< TBV >::m_BlobContainer
 Blob container. More...
 
CBDB_BlobMetaContainerCBDB_ExtBlobStore< TBV >::m_AttrContainer
 Blob attributes container. More...
 
ELastOp CBDB_ExtBlobStore< TBV >::m_LastOp
 Last operation status. More...
 
unsigned CBDB_ExtBlobStore< TBV >::m_LastFromBlobId
 Recently read id interval. More...
 
unsigned CBDB_ExtBlobStore< TBV >::m_LastToBlobId
 Recently read id interval. More...
 
AutoPtr< TBlobFileCBDB_MergeBlobWalker< BF >::m_BlobFile
 
unique_ptr< CBDB_FileCursorCBDB_MergeBlobWalker< BF >::m_Cursor
 
size_t CBDB_MergeBlobWalker< BF >::m_FetchBufferSize
 
bool CBDB_MergeBlobWalker< BF >::m_Eof
 
const void * CBDB_MergeBlobWalker< BF >::m_Data
 
size_t CBDB_MergeBlobWalker< BF >::m_DataLen
 
Uint4 CBDB_MergeBlobWalker< BF >::m_Key
 
const unsigned char * CBDB_MergeBlobWalker< BF >::m_KeyPtr
 
TMainClassCBDB_MergeBlobWalkerAsync< BF >::CAsync::m_Impl
 
TMainClassCBDB_MergeBlobWalkerAsync< BF >::CJobThread::m_Impl
 
CFastMutex CBDB_MergeBlobWalkerAsync< BF >::m_Lock
 
AutoPtr< TBlobFileCBDB_MergeBlobWalkerAsync< BF >::m_BlobFile
 
unique_ptr< CBDB_FileCursorCBDB_MergeBlobWalkerAsync< BF >::m_Cursor
 
size_t CBDB_MergeBlobWalkerAsync< BF >::m_FetchBufferSize
 
bool CBDB_MergeBlobWalkerAsync< BF >::m_Eof
 
bool CBDB_MergeBlobWalkerAsync< BF >::m_Good
 
const void * CBDB_MergeBlobWalkerAsync< BF >::m_Data
 
size_t CBDB_MergeBlobWalkerAsync< BF >::m_DataLen
 
Uint4 CBDB_MergeBlobWalkerAsync< BF >::m_Key
 
const unsigned char * CBDB_MergeBlobWalkerAsync< BF >::m_KeyPtr
 
CRef< CJobThreadCBDB_MergeBlobWalkerAsync< BF >::m_JobThread
 
CAsync CBDB_MergeBlobWalkerAsync< BF >::m_AsyncImpl
 
AutoPtr< TBlobStoreCBDB_MergeStore< BStore >::m_BlobStore
 
TMainClassCBDB_MergeStoreAsync< BStore >::CAsync::m_Impl
 
TMainClassCBDB_MergeStoreAsync< BStore >::CJobThread::m_Impl
 
CFastMutex CBDB_MergeStoreAsync< BStore >::m_Lock
 
bool CBDB_MergeStoreAsync< BStore >::m_Good
 
AutoPtr< TBlobStoreCBDB_MergeStoreAsync< BStore >::m_BlobStore
 
CRef< CJobThreadCBDB_MergeStoreAsync< BStore >::m_JobThread
 
Uint4 CBDB_MergeStoreAsync< BStore >::m_Request_BlobId
 
CMergeVolumes::TRawBufferCBDB_MergeStoreAsync< BStore >::m_Request_Buffer
 
CAsync CBDB_MergeStoreAsync< BStore >::m_AsyncImpl
 
CBDB_FieldUint4 CBDB_BlobStoreDict< TBV >::dim
 dimention More...
 
CBDB_FieldUint4 CBDB_BlobStoreDict< TBV >::dim_idx
 projection index More...
 
TVolumeSize CBDB_BlobDeMux::m_VolS
 Volumes BLOB sizes. More...
 
TVolumeRecs CBDB_BlobDeMux::m_RecS
 Volumes record counts. More...
 
double CBDB_BlobDeMux::m_VolMax
 Volume max size. More...
 
unsigned CBDB_BlobDeMux::m_RecMax
 Maximum number of records. More...
 
string CBDB_BlobDeMuxPersistent::m_Path
 
unsigned CBDB_BlobDeMux_RoundRobin::m_Volumes
 
unsigned CBDB_BlobDeMux_RoundRobin::m_CurrVolume
 
AutoPtr< TBlobFileCBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::db
 database file More...
 
AutoPtr< TLockCBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::lock
 db lock More...
 
AutoPtr< TBlobFileCBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::db_ro
 database file for reads More...
 
AutoPtr< TLockCBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::lock_ro
 db lock for reads More...
 
vector< CRef< SLockedDb > > CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SVolume::db_vect
 
int CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_TransAssociation
 
vector< unsigned > CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_PageSizes
 
unsigned CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_VolumeCacheSize
 
CBDB_EnvCBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_Env
 
unique_ptr< TDeMuxStoreCBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_DictFile
 Split dictionary(id demux file) More...
 
TLock CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_DictFileLock
 id demux file locker More...
 
unique_ptr< TIdDeMuxCBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_IdDeMux
 Id to coordinates mapper. More...
 
CRWLock CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_IdDeMuxLock
 
unique_ptr< TObjDeMux > CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_ObjDeMux
 Obj to coordinates mapper. More...
 
TLock CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_ObjDeMuxLock
 
TVolumeVect CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_Volumes
 Volumes. More...
 
TLock CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_VolumesLock
 Volumes locker. More...
 
string CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_StorageName
 
CBDB_RawFile::EOpenMode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_OpenMode
 
CBDB_RawFile::EDBType CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_DB_Type
 
CBDB_RawFile::ECachePriority CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_CachePriority
 
bool CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_AllProjAvail
 True when all proj.dbs are pre-open. More...
 
bool CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_RevSplitOff
 Flag carrying reverse split status. More...
 
TLock CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_CrossDBLock
 Lock used to sync. muli-db transactions to avoid deadlocks. More...
 

Friends

class CBDB_BlobReaderWriter::CBDB_BLobFile
 
class CBDB_BLobStream::CBDB_BLobFile
 
class CBDB_MergeBlobWalkerAsync< BF >::TMainClass::CAsync
 
class CBDB_MergeBlobWalkerAsync< BF >::TMainClass::CJobThread
 
class CBDB_MergeStoreAsync< BStore >::TMainClass::CAsync
 
class CBDB_MergeStoreAsync< BStore >::TMainClass::CJobThread
 

Serialization

void CBDB_ExtBlobMap::Serialize (CBDB_RawFile::TBuffer *buf, Uint8 buf_offset=0) const
 Serialize map for storage. More...
 
void CBDB_ExtBlobMap::Deserialize (const CBDB_RawFile::TBuffer &buf, Uint8 buf_offset=0)
 DeSerialize map. More...
 
size_t CBDB_ExtBlobMap::ComputeSerializationSize () const
 Compute maximum serialization size. More...
 

Interface for BLOB container location table access

void CBDB_BlobMetaContainer::SetLoc (Uint8 offset, Uint8 size)
 Set container location (one chunk) More...
 
void CBDB_BlobMetaContainer::GetLoc (Uint8 *offset, Uint8 *size)
 Get container location (throws an exception if more than one chunk) More...
 
const CBDB_ExtBlobMap::TBlobChunkVecCBDB_BlobMetaContainer::GetSuperLoc () const
 Get location table of a super BLOB Location table is used to reassemble BLOB from chunks. More...
 
CBDB_ExtBlobMap::TBlobChunkVecCBDB_BlobMetaContainer::SetSuperLoc ()
 Get Edit access to location table. More...
 

Serialization

void CBDB_BlobMetaContainer::Serialize (CBDB_RawFile::TBuffer *buf, Uint8 buf_offset=0) const
 
void CBDB_BlobMetaContainer::Deserialize (const CBDB_RawFile::TBuffer &buf, Uint8 buf_offset=0)
 
size_t CBDB_BlobMetaContainer::ComputeSerializationSize () const
 Compute maximum serialization size. More...
 

Detailed Description

Typedef Documentation

◆ ECompact

template<class TBV , class TM >
typedef TParent::ECompact CBDB_MatrixBvStore< TBV, TM >::ECompact

Definition at line 243 of file bdb_bv_store.hpp.

◆ TBitCountMap

template<class TBV >
typedef map<unsigned, TBitVector> SBDB_BvStore_Id< TBV >::TBitCountMap

Bitcount to bvector map (bvector represents the list of ids with the same bitcount.

Definition at line 171 of file bdb_bv_store.hpp.

◆ TBitVector [1/5]

template<class TBV >
typedef TBV CBDB_BvStore< TBV >::TBitVector

Serializable bitvector.

Definition at line 60 of file bdb_bv_store.hpp.

◆ TBitVector [2/5]

template<class TBV >
typedef TParent::TBitVector SBDB_BvStore_Id< TBV >::TBitVector

Definition at line 155 of file bdb_bv_store.hpp.

◆ TBitVector [3/5]

template<class TBV , class TM >
typedef TBV CBDB_MatrixBvStore< TBV, TM >::TBitVector

Serializable bitvector.

Definition at line 241 of file bdb_bv_store.hpp.

◆ TBitVector [4/5]

template<class TBV >
typedef TBV CBDB_ExtBlobStore< TBV >::TBitVector

Definition at line 309 of file bdb_ext_blob.hpp.

◆ TBitVector [5/5]

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
typedef TBV CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TBitVector

Definition at line 360 of file bdb_split_blob.hpp.

◆ TBlobChunkVec

BLOB location table (list of chunks and sizes)

Definition at line 89 of file bdb_ext_blob.hpp.

◆ TBlobFile [1/3]

template<class BF >
typedef BF CBDB_MergeBlobWalker< BF >::TBlobFile

Definition at line 58 of file bdb_merge.hpp.

◆ TBlobFile [2/3]

template<class BF >
typedef BF CBDB_MergeBlobWalkerAsync< BF >::TBlobFile

Definition at line 102 of file bdb_merge.hpp.

◆ TBlobFile [3/3]

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
typedef CBDB_IdBlobFile CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TBlobFile

Definition at line 364 of file bdb_split_blob.hpp.

◆ TBlobMap

Collection of BLOBs (id + allocation table)

Definition at line 110 of file bdb_ext_blob.hpp.

◆ TBlobStore [1/2]

template<class BStore >
typedef BStore CBDB_MergeStore< BStore >::TBlobStore

Definition at line 196 of file bdb_merge.hpp.

◆ TBlobStore [2/2]

template<class BStore >
typedef BStore CBDB_MergeStoreAsync< BStore >::TBlobStore

Definition at line 220 of file bdb_merge.hpp.

◆ TBufferValue

template<class TBV >
typedef TBuffer::value_type CBDB_BvStore< TBV >::TBufferValue

Definition at line 61 of file bdb_bv_store.hpp.

◆ TDeMuxStore

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
typedef CBDB_BlobStoreDict<TBV> CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TDeMuxStore

Definition at line 361 of file bdb_split_blob.hpp.

◆ TIdDeMux

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
typedef CIdDeMux<TBV> CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TIdDeMux

Definition at line 359 of file bdb_split_blob.hpp.

◆ TLock

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
typedef TL CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TLock

Definition at line 362 of file bdb_split_blob.hpp.

◆ TLockGuard

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
typedef TL::TWriteLockGuard CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TLockGuard

Definition at line 363 of file bdb_split_blob.hpp.

◆ TMainClass [1/2]

template<class BF >
typedef CBDB_MergeBlobWalkerAsync<BF> CBDB_MergeBlobWalkerAsync< BF >::TMainClass
protected

Definition at line 123 of file bdb_merge.hpp.

◆ TMainClass [2/2]

template<class BStore >
typedef CBDB_MergeStoreAsync<BStore> CBDB_MergeStoreAsync< BStore >::TMainClass
protected

Definition at line 234 of file bdb_merge.hpp.

◆ TMatrix

template<class TBV , class TM >
typedef TM CBDB_MatrixBvStore< TBV, TM >::TMatrix

Bit matrix.

Definition at line 242 of file bdb_bv_store.hpp.

◆ TMatrixDescrList

template<class TBV , class TM >
typedef vector<SMatrixDescr> CBDB_MatrixBvStore< TBV, TM >::TMatrixDescrList

Definition at line 274 of file bdb_bv_store.hpp.

◆ TParent [1/4]

template<class TBV >
typedef CBDB_BvStore< TBV > SBDB_BvStore_Id< TBV >::TParent

Definition at line 154 of file bdb_bv_store.hpp.

◆ TParent [2/4]

template<class TBV , class TM >
typedef CBDB_BvStore<TBV> CBDB_MatrixBvStore< TBV, TM >::TParent

Definition at line 240 of file bdb_bv_store.hpp.

◆ TParent [3/4]

Definition at line 266 of file bdb_ext_blob.hpp.

◆ TParent [4/4]

template<class TBV >
typedef CBDB_BvStore<TBV> CBDB_BlobStoreDict< TBV >::TParent

Definition at line 73 of file bdb_split_blob.hpp.

◆ TVolumeRecs

Definition at line 126 of file bdb_split_blob.hpp.

◆ TVolumeSize

Definition at line 125 of file bdb_split_blob.hpp.

◆ TVolumeVect

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
typedef vector<SVolume*> CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TVolumeVect

Definition at line 386 of file bdb_split_blob.hpp.

Enumeration Type Documentation

◆ ECompact

template<class TBV >
enum CBDB_BvStore::ECompact

Compression options for vector storage.

Enumerator
eNoCompact 
eCompact 

Definition at line 97 of file bdb_bv_store.hpp.

◆ EGetDB_Mode

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
enum CBDB_BlobSplitStore::EGetDB_Mode
protected

Read or write operation.

Enumerator
eGetRead 
eGetWrite 

Definition at line 600 of file bdb_split_blob.hpp.

◆ ELastOp

template<class TBV >
enum CBDB_ExtBlobStore::ELastOp
private

Last operation type.

Enumerator
eRead 
eWrite 

Definition at line 371 of file bdb_ext_blob.hpp.

◆ EStoreType

template<class TBV , class TM >
enum CBDB_MatrixBvStore::EStoreType
Enumerator
eBitVector 

Simple bit vector.

eDescriptor 

Sparse matrix descriptor.

eMatrix 

Sparse matrix.

Definition at line 234 of file bdb_bv_store.hpp.

Function Documentation

◆ Add()

void CBDB_ExtBlobMap::Add ( Uint4  blob_id,
Uint8  offset,
Uint8  size 
)

◆ Append()

unsigned CBDB_BLobFile::Append ( const void *  data,
size_t  size 
)

◆ AssignCoordinates()

template<class TBV , class TObjDeMux , class TL >
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::AssignCoordinates ( unsigned  id,
const unsigned *  coords 
)
inline

Assing de-mux coordinates.

Definition at line 754 of file bdb_split_blob.hpp.

References lg().

Referenced by CBDB_Cache::Open().

◆ BlobSize() [1/3]

size_t CBDB_BLobFile::BlobSize ( ) const
inline

Get LOB size. Becomes available right after successfull Fetch.

Definition at line 118 of file bdb_blob.hpp.

References CBDB_BLobFile::LobSize().

◆ BlobSize() [2/3]

template<class TBV , class TObjDeMux , class TL >
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::BlobSize ( unsigned  id,
const unsigned *  coords,
size_t *  blob_size 
)
inline

◆ BlobSize() [3/3]

template<class TBV , class TObjDeMux , class TL >
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::BlobSize ( unsigned  id,
size_t *  blob_size 
)
inline

Get size of the BLOB.

Note
Price of this operation is almost the same as getting the actual BLOB. It is often better just to fetch BLOB speculatively, hoping it fits in the buffer and resizing the buffer on exception.

Definition at line 1201 of file bdb_split_blob.hpp.

References eBDB_NotFound, and lg().

Referenced by CBDB_Cache::GetSizeEx().

◆ CAsync() [1/2]

template<class BF >
CBDB_MergeBlobWalkerAsync< BF >::CAsync::CAsync ( TMainClass impl)
inline

Definition at line 130 of file bdb_merge.hpp.

◆ CAsync() [2/2]

template<class BStore >
CBDB_MergeStoreAsync< BStore >::CAsync::CAsync ( TMainClass impl)
inline

Definition at line 241 of file bdb_merge.hpp.

◆ CBDB_BlobDeMux()

CBDB_BlobDeMux::CBDB_BlobDeMux ( double  vol_max = 1.5 * (1024.00*1024.00*1024.00),
unsigned  rec_max = 3 * 1000000 
)
inline

Definition at line 129 of file bdb_split_blob.hpp.

◆ CBDB_BlobDeMux_RoundRobin()

CBDB_BlobDeMux_RoundRobin::CBDB_BlobDeMux_RoundRobin ( unsigned  volumes = 0)
inline

Definition at line 269 of file bdb_split_blob.hpp.

◆ CBDB_BlobDeMuxPersistent()

CBDB_BlobDeMuxPersistent::CBDB_BlobDeMuxPersistent ( const string path,
double  vol_max = 1.5 * (1024.00*1024.00*1024.00),
unsigned  rec_max = 3 * 1000000 
)
inline

◆ CBDB_BLobFile() [1/2]

CBDB_BLobFile::CBDB_BLobFile ( const CBDB_BLobFile )
private

forbidden

◆ CBDB_BLobFile() [2/2]

CBDB_BLobFile::CBDB_BLobFile ( EDuplicateKeys  dup_keys = eDuplicatesDisable,
EDBType  db_type = eBtree 
)

Definition at line 46 of file bdb_blob.cpp.

References CBDB_File::DisableDataBufProcessing().

◆ CBDB_BlobMetaContainer()

CBDB_BlobMetaContainer::CBDB_BlobMetaContainer ( )

Definition at line 128 of file bdb_ext_blob.cpp.

◆ CBDB_BlobReaderWriter() [1/2]

CBDB_BlobReaderWriter::CBDB_BlobReaderWriter ( const CBDB_BlobReaderWriter )
private

◆ CBDB_BlobReaderWriter() [2/2]

CBDB_BlobReaderWriter::CBDB_BlobReaderWriter ( DB db,
DBT dbt_key,
size_t  blob_size,
DB_TXN txn 
)
protected

Definition at line 239 of file bdb_blob.cpp.

References CBDB_BlobReaderWriter::m_DBT_Data.

◆ CBDB_BlobSplitStore() [1/2]

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::CBDB_BlobSplitStore ( const CBDB_BlobSplitStore< TBV, TObjDeMux, TL > &  )
private

forbidden

◆ CBDB_BlobSplitStore() [2/2]

template<class TBV , class TObjDeMux , class TL >
CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::CBDB_BlobSplitStore ( TObjDeMux *  de_mux)
inline

Construction The main parameter here is object demultiplexer for splitting incoming LOBs into volumes and slices.

Definition at line 660 of file bdb_split_blob.hpp.

References CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_PageSizes.

◆ CBDB_BlobStoreDict()

template<class TBV >
CBDB_BlobStoreDict< TBV >::CBDB_BlobStoreDict ( )
inline

Definition at line 76 of file bdb_split_blob.hpp.

References CBDB_File::BindKey().

◆ CBDB_BLobStream() [1/2]

CBDB_BLobStream::CBDB_BLobStream ( const CBDB_BLobStream )
private

◆ CBDB_BLobStream() [2/2]

CBDB_BLobStream::CBDB_BLobStream ( DB db,
DBT dbt_key,
size_t  blob_size,
DB_TXN txn 
)
protected

Definition at line 340 of file bdb_blob.cpp.

References CBDB_BLobStream::m_DBT_Data.

◆ CBDB_BvStore()

template<class TBV >
CBDB_BvStore< TBV >::CBDB_BvStore ( unsigned  initial_serialization_buf_size = 16384)

Construction.

Parameters
initial_serialization_buf_sizeAmount of memory allocated for deserialization buffer

Definition at line 308 of file bdb_bv_store.hpp.

◆ CBDB_ExtBlobMap()

CBDB_ExtBlobMap::CBDB_ExtBlobMap ( )

Definition at line 249 of file bdb_ext_blob.cpp.

◆ CBDB_ExtBlobStore() [1/2]

template<class TBV >
CBDB_ExtBlobStore< TBV >::CBDB_ExtBlobStore

◆ CBDB_ExtBlobStore() [2/2]

template<class TBV >
CBDB_ExtBlobStore< TBV >::CBDB_ExtBlobStore ( const CBDB_ExtBlobStore< TBV > &  )
private

◆ CBDB_IdBlobFile()

CBDB_IdBlobFile::CBDB_IdBlobFile ( EDuplicateKeys  dup_keys = eDuplicatesDisable,
EDBType  db_type = eBtree 
)

Definition at line 214 of file bdb_blob.cpp.

References CBDB_File::BindKey().

◆ CBDB_LobFile()

CBDB_LobFile::CBDB_LobFile ( )

Definition at line 421 of file bdb_blob.cpp.

References CBDB_RawFile::m_DBT_Key, and CBDB_LobFile::m_LobKey.

◆ CBDB_MatrixBvStore() [1/2]

template<class TBV , class TM >
CBDB_MatrixBvStore< TBV, TM >::CBDB_MatrixBvStore ( const CBDB_MatrixBvStore< TBV, TM > &  )
private

◆ CBDB_MatrixBvStore() [2/2]

template<class TBV , class TM >
CBDB_MatrixBvStore< TBV, TM >::CBDB_MatrixBvStore ( unsigned  initial_serialization_buf_size = 16384)

◆ CBDB_MergeBlobWalker()

template<class BF >
CBDB_MergeBlobWalker< BF >::CBDB_MergeBlobWalker ( TBlobFile blob_file,
EOwnership  own = eTakeOwnership,
size_t  fetch_buffer_size = 10 * 1024 * 1024 
)

Definition at line 301 of file bdb_merge.hpp.

◆ CBDB_MergeBlobWalkerAsync()

template<class BF >
CBDB_MergeBlobWalkerAsync< BF >::CBDB_MergeBlobWalkerAsync ( TBlobFile blob_file,
EOwnership  own = eTakeOwnership,
size_t  fetch_buffer_size = 10 * 1024 * 1024 
)

Definition at line 490 of file bdb_merge.hpp.

References CBDB_MergeBlobWalkerAsync< BF >::m_JobThread.

◆ CBDB_MergeStore()

template<class BStore >
CBDB_MergeStore< BStore >::CBDB_MergeStore ( TBlobStore blob_store,
EOwnership  own = eTakeOwnership 
)

Definition at line 357 of file bdb_merge.hpp.

◆ CBDB_MergeStoreAsync()

template<class BStore >
CBDB_MergeStoreAsync< BStore >::CBDB_MergeStoreAsync ( TBlobStore blob_store,
EOwnership  own = eTakeOwnership 
)

Definition at line 394 of file bdb_merge.hpp.

References CBDB_MergeStoreAsync< BStore >::m_JobThread.

◆ CBlobMetaDB() [1/2]

CBlobMetaDB::CBlobMetaDB ( )

Definition at line 51 of file bdb_ext_blob.cpp.

References CBDB_File::BindKey(), CBlobMetaDB::id_from, and CBlobMetaDB::id_to.

◆ CBlobMetaDB() [2/2]

CBlobMetaDB::CBlobMetaDB ( const CBlobMetaDB )
private

◆ CJobThread() [1/2]

template<class BF >
CBDB_MergeBlobWalkerAsync< BF >::CJobThread::CJobThread ( TMainClass impl)
inline

Definition at line 160 of file bdb_merge.hpp.

◆ CJobThread() [2/2]

template<class BStore >
CBDB_MergeStoreAsync< BStore >::CJobThread::CJobThread ( TMainClass impl)
inline

Definition at line 271 of file bdb_merge.hpp.

◆ Close() [1/5]

template<class TBV >
void CBDB_ExtBlobStore< TBV >::Close ( void  )

Close store.

Definition at line 472 of file bdb_ext_blob.hpp.

◆ Close() [2/5]

template<class BF >
virtual void CBDB_MergeBlobWalker< BF >::Close ( )
inlinevirtual

Close volume (when it ends) Method is responsible for finalization of merge procedure (it could be deletion of records, compaction of data files, etc), stopping background threads, closing server connections.

Implements IMergeVolumeWalker.

Definition at line 80 of file bdb_merge.hpp.

References CBDB_MergeBlobWalker< BF >::m_Cursor.

◆ Close() [3/5]

template<class BF >
void CBDB_MergeBlobWalkerAsync< BF >::Close ( )
virtual

Close volume (when it ends) Method is responsible for finalization of merge procedure (it could be deletion of records, compaction of data files, etc), stopping background threads, closing server connections.

Implements IMergeVolumeWalker.

Definition at line 661 of file bdb_merge.hpp.

◆ Close() [4/5]

template<class BStore >
virtual void CBDB_MergeStore< BStore >::Close ( )
inlinevirtual

Close storage (when it ends) Method is responsible for finalization of store procedure, stopping background threads, closing server connections.

Implements IMergeStore.

Definition at line 205 of file bdb_merge.hpp.

◆ Close() [5/5]

template<class BStore >
void CBDB_MergeStoreAsync< BStore >::Close ( )
virtual

Close storage (when it ends) Method is responsible for finalization of store procedure, stopping background threads, closing server connections.

Implements IMergeStore.

Definition at line 412 of file bdb_merge.hpp.

◆ CloseVolumes()

template<class TBV , class TObjDeMux , class TL >
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::CloseVolumes
inlineprotected

Close volumes without saving or doing anything with id demux.

Definition at line 725 of file bdb_split_blob.hpp.

References i.

◆ ComputeBitCountMap()

template<class TBV >
void SBDB_BvStore_Id< TBV >::ComputeBitCountMap ( TBitCountMap bc_map,
unsigned  bitcount_from,
unsigned  bitcount_to,
TBitVector out_of_interval_ids = 0 
)

Utility to compute bit-count storage statistics this statistics is a map bit_count -> list of ids in other words it is a extended histogram of bitcounts It is memory prohibitive to compute the complate historgam so we take only a portion of it.

[bitcount_from, bitcount_to] form a closed interval defining the spectrum we study

out_of_interval_ids - list of ids not falling into the mapped spectrum

Definition at line 541 of file bdb_bv_store.hpp.

References _ASSERT, bm::aligned_new_malloc(), bm::BM_GAP, bm::deserialize(), eBDB_Ok, CBDB_FileCursor::eDefault, CBDB_FileCursor::eGE, CBDB_RawFile::eReallocForbidden, CBDB_FileCursor::Fetch(), CBDB_FileCursor::From, CBDB_ErrnoException::IsBufferSmall(), CBDB_ErrnoException::IsNoMem(), bm::set_block_alloc_size, and CBDB_FileCursor::SetCondition().

◆ ComputeSerializationSize() [1/2]

size_t CBDB_ExtBlobMap::ComputeSerializationSize ( ) const

Compute maximum serialization size.

Definition at line 327 of file bdb_ext_blob.cpp.

References CBDB_ExtBlobMap::x_ComputeSerializationSize().

Referenced by CBDB_BlobMetaContainer::ComputeSerializationSize().

◆ ComputeSerializationSize() [2/2]

size_t CBDB_BlobMetaContainer::ComputeSerializationSize ( ) const

◆ CreateReader() [1/3]

IReader * CBDB_BLobFile::CreateReader ( )

Creates stream like object to read BLOB by chunks.

Return NULL if not found

Definition at line 196 of file bdb_blob.cpp.

References CBDB_File::CloneDBT_Key(), eBDB_Ok, CBDB_BLobFile::Fetch(), CBDB_RawFile::GetTxn(), CBDB_BLobFile::LobSize(), and CBDB_RawFile::m_DB.

Referenced by CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::CreateReader().

◆ CreateReader() [2/3]

template<class TBV , class TObjDeMux , class TL >
IReader * CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::CreateReader ( unsigned  id)
inline

Create stream oriented reader.

Returns
NULL if BLOB not found

This method does NOT block the specified ID from concurrent access for the life of IReader. The nature of BDB IReader is that each Read maps into BDB get, so somebody can delete the BLOB between IReader calls. This potential race should be taken into account in MT concurrent application.

Caller is responsible for deletion.

Definition at line 967 of file bdb_split_blob.hpp.

References lg().

◆ CreateReader() [3/3]

template<class TBV , class TObjDeMux , class TL >
IReader * CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::CreateReader ( unsigned  id,
const unsigned *  coords 
)
inline

◆ CreateReaderWriter()

CBDB_BlobReaderWriter * CBDB_BLobFile::CreateReaderWriter ( )

Creates stream like object to retrieve or write BLOB by chunks.

Caller is responsible for deletion.

Definition at line 183 of file bdb_blob.cpp.

References CBDB_File::CloneDBT_Key(), eBDB_Ok, CBDB_BLobFile::Fetch(), CBDB_RawFile::GetTxn(), CBDB_BLobFile::LobSize(), and CBDB_RawFile::m_DB.

◆ CreateStream()

CBDB_BLobStream * CBDB_BLobFile::CreateStream ( )

Creates stream like object to retrieve or write BLOB by chunks.

Caller is responsible for deletion.

Definition at line 170 of file bdb_blob.cpp.

References CBDB_File::CloneDBT_Key(), eBDB_Ok, CBDB_BLobFile::Fetch(), CBDB_RawFile::GetTxn(), CBDB_BLobFile::LobSize(), and CBDB_RawFile::m_DB.

Referenced by CBDB_FileDumper::Dump().

◆ Delete() [1/2]

template<class TBV , class TObjDeMux , class TL >
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Delete ( unsigned  id,
CBDB_RawFile::EIgnoreError  on_error = CBDB_RawFile::eThrowOnError 
)
inline

◆ Delete() [2/2]

template<class TBV , class TObjDeMux , class TL >
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Delete ( unsigned  id,
const unsigned *  coords,
CBDB_RawFile::EIgnoreError  on_error = CBDB_RawFile::eThrowOnError 
)
inline

◆ Deserialize() [1/3]

void CBDB_ExtBlobMap::Deserialize ( const CBDB_RawFile::TBuffer buf,
Uint8  buf_offset = 0 
)

◆ Deserialize() [2/3]

void CBDB_BlobMetaContainer::Deserialize ( const CBDB_RawFile::TBuffer buf,
Uint8  buf_offset = 0 
)

◆ Deserialize() [3/3]

template<class TBV >
void CBDB_BvStore< TBV >::Deserialize ( TBitVector bv,
const TBufferValue buf 
)

◆ DoFetch()

template<class BF >
void CBDB_MergeBlobWalkerAsync< BF >::DoFetch
protected

◆ DoJob() [1/2]

template<class BF >
virtual void CBDB_MergeBlobWalkerAsync< BF >::CJobThread::DoJob ( void  )
inlineprotectedvirtual

Do job delegated processing to the main class.

Implements CThreadNonStop.

Definition at line 165 of file bdb_merge.hpp.

References CBDB_MergeBlobWalkerAsync< BF >::DoFetch(), and CBDB_MergeBlobWalkerAsync< BF >::CJobThread::m_Impl.

◆ DoJob() [2/2]

template<class BStore >
virtual void CBDB_MergeStoreAsync< BStore >::CJobThread::DoJob ( void  )
inlineprotectedvirtual

Do job delegated processing to the main class.

Implements CThreadNonStop.

Definition at line 276 of file bdb_merge.hpp.

References CBDB_MergeStoreAsync< BStore >::DoStore(), and CBDB_MergeStoreAsync< BStore >::CJobThread::m_Impl.

◆ DoStore()

template<class BStore >
void CBDB_MergeStoreAsync< BStore >::DoStore
protected

Definition at line 447 of file bdb_merge.hpp.

References eBDB_Ok.

Referenced by CBDB_MergeStoreAsync< BStore >::CJobThread::DoJob().

◆ Fetch() [1/8]

EBDB_ErrCode CBDB_BLobFile::Fetch ( )

Fetch the record corresponding to the current key value.

Key fields should be assigned before calling this function. This call actually translates into a BerkeleyDB call, so the target page will be read from the disk into the BerkeleyDB internal cache. You can call LobSize to get BLOB data size, allocate the target buffer and then call GetData (two phase BLOB fetch). If you know the data size upfront parameterized Fetch is a better alternative.

Definition at line 54 of file bdb_blob.cpp.

References CBDB_RawFile::eReallocForbidden.

Referenced by CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::BlobSize(), CBDB_BLobFile::CreateReader(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::CreateReader(), CBDB_BLobFile::CreateReaderWriter(), CBDB_BLobFile::CreateStream(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Fetch(), CBDB_BLobFile::GetData(), PrintDemoDB(), and CBDB_BLobFile::ReadRealloc().

◆ Fetch() [2/8]

template<class BF >
void CBDB_MergeBlobWalker< BF >::Fetch ( )
virtual

Request to get next record This request can be asyncronous caller needs to check status using IAsyncInterface to make sure Fetch finished.

Implements IMergeVolumeWalker.

Definition at line 327 of file bdb_merge.hpp.

References _ASSERT, eBDB_NotFound, eBDB_Ok, CBDB_Field::GetBuffer(), CBDB_BufferManager::GetField(), and IBDB_FieldConvert::GetUint().

◆ Fetch() [3/8]

template<class BF >
void CBDB_MergeBlobWalkerAsync< BF >::Fetch ( )
virtual

Request to get next record This request can be asyncronous caller needs to check status using IAsyncInterface to make sure Fetch finished.

Implements IMergeVolumeWalker.

Definition at line 543 of file bdb_merge.hpp.

References _ASSERT, eBDB_MultiRowEnd, eBDB_NotFound, eBDB_Ok, CBDB_Field::GetBuffer(), CBDB_BufferManager::GetField(), and IBDB_FieldConvert::GetUint().

◆ Fetch() [4/8]

template<class TBV , class TObjDeMux , class TL >
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Fetch ( unsigned  id,
const unsigned *  coords,
void **  buf,
size_t  buf_size,
CBDB_RawFile::EReallocMode  allow_realloc,
size_t *  blob_size 
)
inline

◆ Fetch() [5/8]

template<class TBV , class TObjDeMux , class TL >
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Fetch ( unsigned  id,
void **  buf,
size_t  buf_size,
CBDB_RawFile::EReallocMode  allow_realloc,
size_t *  blob_size 
)
inline

Fetch LOB record directly into the provided '*buf'.

If size of the LOB is greater than 'buf_size', then if reallocation is allowed – '*buf' will be reallocated to fit the LOB size; otherwise, a exception will be thrown.

Definition at line 1112 of file bdb_split_blob.hpp.

References buf, eBDB_NotFound, and lg().

Referenced by CBDB_Cache::GetBlobAccess(), CBDB_Cache::Read(), and CBDB_SplitTest::Run().

◆ Fetch() [6/8]

EBDB_ErrCode CBDB_LobFile::Fetch ( unsigned int  lob_id)
inline

Fetch LOB record.

On success, LOB size becomes available (see LobSize()), and the value can be obtained using GetData().

Typical usage for this function is:
1. Call Fetch()
2. Allocate LobSize() chunk of memory
3. Use GetData() to retrive lob value

Definition at line 328 of file bdb_blob.hpp.

References CBDB_RawFile::eReallocForbidden.

Referenced by PrintBLOB_Table().

◆ Fetch() [7/8]

EBDB_ErrCode CBDB_LobFile::Fetch ( unsigned int  lob_id,
void **  buf,
size_t  buf_size,
EReallocMode  allow_realloc 
)

Fetch LOB record directly into the provided '*buf'.

If size of the LOB is greater than 'buf_size', then if reallocation is allowed – '*buf' will be reallocated to fit the LOB size; otherwise, a exception will be thrown.

Definition at line 480 of file bdb_blob.cpp.

References _ASSERT, BDB_CHECK, buf, eBDB_NotFound, eBDB_Ok, CBDB_RawFile::eReallocForbidden, CBDB_RawFile::FileName(), CByteSwap::GetInt4(), int, CBDB_RawFile::IsByteSwapped(), CBDB_RawFile::m_DB, CBDB_RawFile::m_DBT_Data, CBDB_RawFile::m_DBT_Key, and CBDB_LobFile::m_LobKey.

◆ Fetch() [8/8]

EBDB_ErrCode CBDB_BLobFile::Fetch ( void **  buf,
size_t  buf_size,
EReallocMode  allow_realloc 
)

Retrieve BLOB data.

Fetch LOB record directly into the provided '*buf'. If size of the LOB is greater than 'buf_size', then if reallocation is allowed – '*buf' will be reallocated to fit the BLOB size; otherwise it throws an exception.

Parameters
bufpointer on buffer pointer
buf_sizebuffer size
allow_reallocwhen "eReallocAllowed" Berkeley DB reallocates the buffer to allow successful fetch

Definition at line 59 of file bdb_blob.cpp.

References buf, eBDB_NotFound, eBDB_Ok, CBDB_RawFile::eReallocForbidden, CBDB_File::Fetch(), and CBDB_RawFile::m_DBT_Data.

◆ FetchFirst() [1/2]

template<class BF >
void CBDB_MergeBlobWalker< BF >::FetchFirst ( )
virtual

Request to start fetching data This request can be asyncronous caller needs to check status using IAsyncInterface to make sure Fetch finished.

Implements IMergeVolumeWalker.

Definition at line 316 of file bdb_merge.hpp.

References CBDB_FileCursor::eGE.

◆ FetchFirst() [2/2]

template<class BF >
void CBDB_MergeBlobWalkerAsync< BF >::FetchFirst ( )
virtual

Request to start fetching data This request can be asyncronous caller needs to check status using IAsyncInterface to make sure Fetch finished.

Implements IMergeVolumeWalker.

Definition at line 524 of file bdb_merge.hpp.

References CBDB_FileCursor::eFetchGetBufferEnds, and CBDB_FileCursor::eGE.

◆ FetchMeta()

EBDB_ErrCode CBlobMetaDB::FetchMeta ( Uint4  blob_id,
CBDB_BlobMetaContainer meta_container,
Uint4 id_from = 0,
Uint4 id_to = 0 
)

Find the meta container storing our target blob_id Function is doing the cursor range scan sequentially reading range-matching BLOB descriptions.

Parameters
blob_idBLOB id to search for
meta_containerOutput: Container with BLOBs meta information
id_fromOutput: Range from where BLOB has been found
id_toOutput: Range to where BLOB has been found

Definition at line 80 of file bdb_ext_blob.cpp.

References _ASSERT, buf, CBDB_BlobMetaContainer::Deserialize(), eBDB_NotFound, eBDB_Ok, CBDB_FileCursor::eLE, CBDB_FileCursor::Fetch(), CBDB_FileCursor::From, CBDB_BlobMetaContainer::GetBlobMap(), CBDB_ExtBlobMap::HasBlob(), CBlobMetaDB::id_from, CBlobMetaDB::id_to, and CBDB_FileCursor::SetCondition().

◆ FetchToBuffer()

template<class TBV >
EBDB_ErrCode CBDB_BvStore< TBV >::FetchToBuffer ( CBDB_FileCursor cur)

◆ Flush() [1/2]

template<class TBV >
void CBDB_ExtBlobStore< TBV >::Flush ( void  )

Flush current container to disk.

Definition at line 649 of file bdb_ext_blob.hpp.

References _ASSERT, BDB_THROW, compressed_len, eBDB_Ok, and NcbiStreamposToInt8().

◆ Flush() [2/2]

ERW_Result CBDB_BlobReaderWriter::Flush ( void  )
virtual

Flush pending data (if any) down to the output device.

Implements IWriter.

Definition at line 330 of file bdb_blob.cpp.

References eRW_Success.

◆ FreeUnusedMem()

template<class TBV , class TObjDeMux , class TL >
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::FreeUnusedMem
inline

Reclaim unused memory.

Definition at line 1013 of file bdb_split_blob.hpp.

References lg().

Referenced by CBDB_Cache::Purge(), and CBDB_SplitTest::Run().

◆ GetBDBTransaction()

template<class TBV , class TObjDeMux , class TL >
CBDB_Transaction * CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::GetBDBTransaction
inline

Definition at line 1020 of file bdb_split_blob.hpp.

◆ GetBlobIdRange()

void CBDB_ExtBlobMap::GetBlobIdRange ( Uint4 min_id,
Uint4 max_id 
) const

Get BLOB id min and max range (closed interval)

Definition at line 303 of file bdb_ext_blob.cpp.

References i, and CBDB_ExtBlobMap::m_BlobMap.

Referenced by CBlobMetaDB::UpdateInsert().

◆ GetBlobLoc()

bool CBDB_ExtBlobMap::GetBlobLoc ( Uint4  blob_id,
Uint8 offset,
Uint8 size 
) const

◆ GetBlobMap()

const CBDB_ExtBlobMap& CBDB_BlobMetaContainer::GetBlobMap ( ) const
inline

◆ GetBuffer()

template<class TBV >
TBuffer& CBDB_BvStore< TBV >::GetBuffer ( void  )
inline

Get access to the internal buffer.

Definition at line 114 of file bdb_bv_store.hpp.

References CBDB_BvStore< TBV >::m_Buffer.

Referenced by CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::LoadIdDeMux().

◆ GetBufferPtr() [1/2]

template<class BF >
virtual const unsigned char* CBDB_MergeBlobWalker< BF >::GetBufferPtr ( size_t *  buf_size) const
inlinevirtual

Get low level access to the merge BLOB buffer and buffer size (next Fetch call invalidates this pointer)

Implements IMergeVolumeWalker.

Definition at line 73 of file bdb_merge.hpp.

References CBDB_MergeBlobWalker< BF >::m_Data, and CBDB_MergeBlobWalker< BF >::m_DataLen.

◆ GetBufferPtr() [2/2]

template<class BF >
const unsigned char * CBDB_MergeBlobWalkerAsync< BF >::GetBufferPtr ( size_t *  buf_size) const
virtual

Get low level access to the merge BLOB buffer and buffer size (next Fetch call invalidates this pointer)

Implements IMergeVolumeWalker.

Definition at line 651 of file bdb_merge.hpp.

◆ GetContainerMaxSize()

template<class TBV >
unsigned CBDB_ExtBlobStore< TBV >::GetContainerMaxSize ( ) const
inline

Get container max size.

Definition at line 350 of file bdb_ext_blob.hpp.

References CBDB_ExtBlobStore< TBV >::m_ContainerMax.

◆ GetCoordinates() [1/3]

void CBDB_BlobDeMux::GetCoordinates ( unsigned  blob_size,
unsigned *  coord 
)
inline

◆ GetCoordinates() [2/3]

void CBDB_BlobDeMux_RoundRobin::GetCoordinates ( unsigned  blob_size,
unsigned *  coord 
)
inline

coordinates:

0 - active volume number 1 - page split number

Definition at line 279 of file bdb_split_blob.hpp.

References _ASSERT, CBDB_BlobDeMux_RoundRobin::m_CurrVolume, CBDB_BlobDeMux_RoundRobin::m_Volumes, and CBDB_BlobDeMuxSplit::SelectSplit().

◆ GetCoordinates() [3/3]

template<class TBV , class TObjDeMux , class TL >
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::GetCoordinates ( unsigned  id,
unsigned *  coords 
)
inline

◆ GetData() [1/2]

EBDB_ErrCode CBDB_BLobFile::GetData ( void *  buf,
size_t  size 
)

Copy LOB data into the 'buf'.

Throw an exception if buffer size 'size' is less than LOB size.

Parameters
bufdestination data buffer
sizedata buffer size
See also
LobSize

Definition at line 129 of file bdb_blob.cpp.

References buf, CBDB_RawFile::eReallocForbidden, CBDB_BLobFile::Fetch(), and ncbi::grid::netcache::search::fields::size.

Referenced by PrintDemoDB().

◆ GetData() [2/2]

EBDB_ErrCode CBDB_LobFile::GetData ( void *  buf,
size_t  size 
)

Copy LOB data into the 'buf'.

Throw an exception if buffer size 'size' is less than LOB size.

Definition at line 550 of file bdb_blob.cpp.

References _ASSERT, BDB_CHECK, buf, eBDB_NotFound, eBDB_Ok, CBDB_RawFile::FileName(), CBDB_RawFile::m_DB, CBDB_RawFile::m_DBT_Data, CBDB_RawFile::m_DBT_Key, CBDB_LobFile::m_LobKey, and ncbi::grid::netcache::search::fields::size.

Referenced by PrintBLOB_Table().

◆ GetDb()

template<class TBV , class TObjDeMux , class TL >
CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb & CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::GetDb ( unsigned  vol,
unsigned  slice,
EGetDB_Mode  get_mode 
)
inlineprotected

◆ GetEnv() [1/2]

template<class TBV >
CBDB_Env* CBDB_ExtBlobStore< TBV >::GetEnv ( void  ) const
inline

Definition at line 328 of file bdb_ext_blob.hpp.

References CBDB_ExtBlobStore< TBV >::m_Env.

◆ GetEnv() [2/2]

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
CBDB_Env* CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::GetEnv ( void  ) const
inline

Get pointer on file environment Return NULL if no environment has been set.

Definition at line 426 of file bdb_split_blob.hpp.

◆ GetFileName()

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
const string& CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::GetFileName ( void  ) const
inline

Return the base filename of the underlying split store.

Definition at line 429 of file bdb_split_blob.hpp.

◆ GetIdVector()

template<class TBV , class TObjDeMux , class TL >
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::GetIdVector ( TBitVector bv) const
inline

Get all id of all BLOBs stored.

Parameters
bvVector of IDs stored

Definition at line 745 of file bdb_split_blob.hpp.

References lg().

Referenced by CBDB_Cache::Purge(), and CBDB_SplitTest::Run().

◆ GetKey()

unsigned int CBDB_LobFile::GetKey ( void  ) const
inline

Definition at line 302 of file bdb_blob.hpp.

References CBDB_LobFile::m_LobKey.

◆ GetKeyPtr() [1/2]

template<class BF >
virtual const unsigned char* CBDB_MergeBlobWalker< BF >::GetKeyPtr ( ) const
inlinevirtual

Get low level access to the current key buffer.

Implements IMergeVolumeWalker.

Definition at line 71 of file bdb_merge.hpp.

References CBDB_MergeBlobWalker< BF >::m_KeyPtr.

◆ GetKeyPtr() [2/2]

template<class BF >
const unsigned char * CBDB_MergeBlobWalkerAsync< BF >::GetKeyPtr ( ) const
virtual

Get low level access to the current key buffer.

Implements IMergeVolumeWalker.

Definition at line 636 of file bdb_merge.hpp.

◆ GetLoc()

void CBDB_BlobMetaContainer::GetLoc ( Uint8 offset,
Uint8 size 
)

Get container location (throws an exception if more than one chunk)

Definition at line 138 of file bdb_ext_blob.cpp.

References _ASSERT, BDB_THROW, CBDB_BlobMetaContainer::m_Loc, msg(), offset, and ncbi::grid::netcache::search::fields::size.

◆ GetPageSize()

template<class TBV , class TObjDeMux , class TL >
unsigned CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::GetPageSize ( unsigned  splice) const
inlineprotected

Select preferred page size for the specified slice.

Definition at line 1386 of file bdb_split_blob.hpp.

◆ GetSerializationTempBlock()

template<class TBV >
bm::word_t * CBDB_BvStore< TBV >::GetSerializationTempBlock

Definition at line 358 of file bdb_bv_store.hpp.

References bm::aligned_new_malloc(), and bm::set_block_alloc_size.

◆ GetSplitSize()

unsigned CBDB_BlobDeMuxSplit::GetSplitSize ( ) const
inline

Returns total number of splits (horizontal projection) If method returns 0 - means there is no hard number: open ended proj.

Definition at line 110 of file bdb_split_blob.hpp.

◆ GetStatus() [1/2]

template<class BF >
virtual EStatus CBDB_MergeBlobWalkerAsync< BF >::CAsync::GetStatus ( ) const
inlinevirtual

◆ GetStatus() [2/2]

template<class BStore >
virtual EStatus CBDB_MergeStoreAsync< BStore >::CAsync::GetStatus ( ) const
inlinevirtual

◆ GetSuperLoc()

const CBDB_ExtBlobMap::TBlobChunkVec& CBDB_BlobMetaContainer::GetSuperLoc ( ) const
inline

Get location table of a super BLOB Location table is used to reassemble BLOB from chunks.

Definition at line 198 of file bdb_ext_blob.hpp.

References CBDB_BlobMetaContainer::m_Loc.

◆ GetUid()

Uint4 CBDB_IdBlobFile::GetUid ( ) const

Definition at line 222 of file bdb_blob.cpp.

References CBDB_IdBlobFile::id.

◆ GetUint4Key() [1/2]

template<class BF >
virtual Uint4 CBDB_MergeBlobWalker< BF >::GetUint4Key ( ) const
inlinevirtual

Get access to the key as unsigned integer (if this type is supported)

Implements IMergeVolumeWalker.

Definition at line 72 of file bdb_merge.hpp.

References CBDB_MergeBlobWalker< BF >::m_Key.

◆ GetUint4Key() [2/2]

template<class BF >
Uint4 CBDB_MergeBlobWalkerAsync< BF >::GetUint4Key ( ) const
virtual

Get access to the key as unsigned integer (if this type is supported)

Implements IMergeVolumeWalker.

Definition at line 643 of file bdb_merge.hpp.

◆ GetVolumeSize() [1/2]

unsigned CBDB_BlobDeMuxSplit::GetVolumeSize ( ) const
inline

Returns total number of volumes (vertical projection) If method returns 0 - means there is no hard number: open ended proj.

Definition at line 114 of file bdb_split_blob.hpp.

◆ GetVolumeSize() [2/2]

unsigned CBDB_BlobDeMux_RoundRobin::GetVolumeSize ( ) const
inline

Returns total number of volumes (vertical projection) If method returns 0 - means there is no hard number: open ended proj.

Definition at line 295 of file bdb_split_blob.hpp.

References CBDB_BlobDeMux_RoundRobin::m_Volumes.

◆ HasBlob()

bool CBDB_ExtBlobMap::HasBlob ( Uint4  blob_id) const

Returns TRUE if blob exists in the map.

Definition at line 263 of file bdb_ext_blob.cpp.

References i, and CBDB_ExtBlobMap::m_BlobMap.

Referenced by CBDB_ExtBlobMap::Add(), and CBlobMetaDB::FetchMeta().

◆ InitDbMutex()

template<class TBV , class TObjDeMux , class TL >
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::InitDbMutex ( SLockedDb ldb)
inlineprotected

◆ Insert() [1/5]

EBDB_ErrCode CBDB_BLobFile::Insert ( const TBuffer buf)
inline

Insert BLOB.

Definition at line 337 of file bdb_blob.hpp.

References buf, and CBDB_BLobFile::Insert().

◆ Insert() [2/5]

EBDB_ErrCode CBDB_BLobFile::Insert ( const void *  data,
size_t  size 
)

Insert BLOB into the database.

Before calling this function you should assign the key fields.

Parameters
dataBLOB data
sizedata size in bytes

Definition at line 135 of file bdb_blob.cpp.

References data, CBDB_File::Insert(), CBDB_RawFile::m_DBT_Data, and ncbi::grid::netcache::search::fields::size.

Referenced by CBDB_BLobFile::Insert(), and LoadDemoDB().

◆ Insert() [3/5]

template<class TBV , class TObjDeMux , class TL >
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Insert ( unsigned  id,
const void *  data,
size_t  size 
)
inline

Definition at line 777 of file bdb_split_blob.hpp.

References data, and ncbi::grid::netcache::search::fields::size.

◆ Insert() [4/5]

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Insert ( unsigned  id,
const void *  data,
size_t  size,
unsigned *  coord 
)

Insert BLOB into the storage.

This method does NOT check if this object is already storead somewhere. Method can create duplicates.

Parameters
idinsertion key
databuffer pointer
sizeLOB data size in bytes
coordout: volume - page split number

Referenced by CBDB_SplitTest::Run().

◆ Insert() [5/5]

EBDB_ErrCode CBDB_LobFile::Insert ( unsigned int  lob_id,
const void *  data,
size_t  size 
)

Insert BLOB data into the database, does nothing if key exists.

Parameters
lob_idinsertion key
databuffer pointer
sizedata size in bytes

Definition at line 466 of file bdb_blob.cpp.

References data, ncbi::grid::netcache::search::fields::size, and CBDB_LobFile::x_Put().

Referenced by LoadBLOB_Table().

◆ InsertSparseMatrix()

template<class TBV , class TM >
EBDB_ErrCode CBDB_MatrixBvStore< TBV, TM >::InsertSparseMatrix ( const TMatrix matr,
const TBitVector descr_bv,
ECompact  compact 
)

Save sparse matrix.

Definition at line 632 of file bdb_bv_store.hpp.

References eBDB_Ok.

◆ InsertUpdate()

EBDB_ErrCode CBDB_LobFile::InsertUpdate ( unsigned int  lob_id,
const void *  data,
size_t  size 
)

Insert or Update BLOB data into the database.

Parameters
lob_idinsertion key
databuffer pointer
sizedata size in bytes

Definition at line 473 of file bdb_blob.cpp.

References data, ncbi::grid::netcache::search::fields::size, and CBDB_LobFile::x_Put().

◆ IsEof() [1/2]

template<class BF >
virtual bool CBDB_MergeBlobWalker< BF >::IsEof ( ) const
inlinevirtual

Return TRUE when volume traverse reaches the end.

Implements IMergeVolumeWalker.

Definition at line 67 of file bdb_merge.hpp.

References CBDB_MergeBlobWalker< BF >::m_Eof.

◆ IsEof() [2/2]

template<class BF >
bool CBDB_MergeBlobWalkerAsync< BF >::IsEof ( ) const
virtual

Return TRUE when volume traverse reaches the end.

Implements IMergeVolumeWalker.

Definition at line 510 of file bdb_merge.hpp.

◆ IsGood() [1/4]

template<class BF >
virtual bool CBDB_MergeBlobWalker< BF >::IsGood ( ) const
inlinevirtual

Return TRUE if volume is in good condition (not failed)

Implements IMergeVolumeWalker.

Definition at line 68 of file bdb_merge.hpp.

◆ IsGood() [2/4]

template<class BF >
bool CBDB_MergeBlobWalkerAsync< BF >::IsGood ( ) const
virtual

Return TRUE if volume is in good condition (not failed)

Implements IMergeVolumeWalker.

Definition at line 517 of file bdb_merge.hpp.

◆ IsGood() [3/4]

template<class BStore >
virtual bool CBDB_MergeStore< BStore >::IsGood ( ) const
inlinevirtual

Return TRUE if storage device is in good shape.

Implements IMergeStore.

Definition at line 203 of file bdb_merge.hpp.

◆ IsGood() [4/4]

template<class BStore >
bool CBDB_MergeStoreAsync< BStore >::IsGood ( ) const
virtual

Return TRUE if storage device is in good shape.

Implements IMergeStore.

Definition at line 427 of file bdb_merge.hpp.

◆ IsOpen()

template<class TBV , class TObjDeMux , class TL >
bool CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::IsOpen ( void  ) const
inline

Return true if the split store has been opened.

Definition at line 1273 of file bdb_split_blob.hpp.

References true.

◆ IsSameCoordinates()

template<class TBV , class TObjDeMux , class TL >
bool CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::IsSameCoordinates ( const unsigned *  coords1,
const unsigned *  coords2 
)
inline

Returns true if two sets of coordinates are the same.

Definition at line 735 of file bdb_split_blob.hpp.

◆ Load()

void CBDB_BlobDeMuxPersistent::Load ( CNcbiIstream istr)
inline

◆ LoadIdDeMux()

template<class TBV , class TObjDeMux , class TL >
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::LoadIdDeMux ( TIdDeMux de_mux,
TDeMuxStore dict_file 
)
inlineprotected

◆ LoadMatrixDescriptions()

template<class TBV , class TM >
void CBDB_MatrixBvStore< TBV, TM >::LoadMatrixDescriptions ( TMatrixDescrList descr_list)

◆ LobSize() [1/2]

size_t CBDB_BLobFile::LobSize ( ) const

◆ LobSize() [2/2]

size_t CBDB_LobFile::LobSize ( ) const

Get LOB size. Becomes available right after successfull Fetch.

Definition at line 581 of file bdb_blob.cpp.

References CBDB_RawFile::m_DBT_Data.

Referenced by PrintBLOB_Table().

◆ MakeDbFileName()

template<class TBV , class TObjDeMux , class TL >
string CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::MakeDbFileName ( unsigned  vol,
unsigned  slice 
)
inlineprotected

Make BDB file name based on volume and page size split.

Definition at line 1395 of file bdb_split_blob.hpp.

References _ASSERT, CBDB_RawFile::eBtree, CBDB_RawFile::eHash, and NStr::UIntToString().

◆ NewPlane()

void CBDB_BlobDeMux::NewPlane ( )
inlineprotected

◆ Open() [1/2]

template<class TBV >
void CBDB_ExtBlobStore< TBV >::Open ( const string storage_name,
CBDB_RawFile::EOpenMode  open_mode 
)

◆ Open() [2/2]

template<class TBV , class TObjDeMux , class TL >
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Open ( const string storage_name,
CBDB_RawFile::EOpenMode  open_mode,
CBDB_RawFile::EDBType  db_type = CBDB_RawFile::eBtree 
)
inline

Open storage (reads storage dictionary into memory)

Definition at line 1253 of file bdb_split_blob.hpp.

Referenced by CBDB_SplitTest::LoadTestSet(), CBDB_Cache::Open(), CBDB_Cache::OpenReadOnly(), and CBDB_SplitTest::Run().

◆ OpenDict()

template<class TBV , class TObjDeMux , class TL >
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::OpenDict
inlineprotected

Open split storage dictionary.

Definition at line 1299 of file bdb_split_blob.hpp.

◆ OpenProjections()

template<class TBV , class TObjDeMux , class TL >
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::OpenProjections
inline

Try to open all storage files in all projections This is only possible when object de-mux has fixed number of projections, if it is not the call is silently ignored.

Definition at line 1280 of file bdb_split_blob.hpp.

References i.

Referenced by CBDB_Cache::Open().

◆ operator=() [1/8]

CBDB_BLobFile& CBDB_BLobFile::operator= ( const CBDB_BLobFile )
private

◆ operator=() [2/8]

CBDB_BlobReaderWriter& CBDB_BlobReaderWriter::operator= ( const CBDB_BlobReaderWriter )
private

◆ operator=() [3/8]

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
CBDB_BlobSplitStore<TBV, TObjDeMux, TL>& CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::operator= ( const CBDB_BlobSplitStore< TBV, TObjDeMux, TL > &  )
private

◆ operator=() [4/8]

CBDB_BLobStream& CBDB_BLobStream::operator= ( const CBDB_BLobStream )
private

◆ operator=() [5/8]

template<class TBV >
CBDB_ExtBlobStore& CBDB_ExtBlobStore< TBV >::operator= ( const CBDB_ExtBlobStore< TBV > &  )
private

◆ operator=() [6/8]

template<class TBV , class TM >
CBDB_MatrixBvStore& CBDB_MatrixBvStore< TBV, TM >::operator= ( const CBDB_MatrixBvStore< TBV, TM > &  )
private

◆ operator=() [7/8]

CBlobMetaDB& CBlobMetaDB::operator= ( const CBlobMetaDB )
private

◆ operator=() [8/8]

template<class TBV , class TM >
SMatrixDescr& CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::operator= ( const SMatrixDescr mdesc)
inline

◆ PendingCount() [1/2]

size_t CBDB_BLobStream::PendingCount ( ) const
inline

Return how much bytes we can read from the blob.

Definition at line 235 of file bdb_blob.hpp.

References CBDB_BLobStream::m_BlobSize, and CBDB_BLobStream::m_Pos.

◆ PendingCount() [2/2]

ERW_Result CBDB_BlobReaderWriter::PendingCount ( size_t *  count)
virtual

Via parameter "count" (which is guaranteed to be supplied non-NULL) return the number of bytes that are ready to be read from the input device without blocking.

Return eRW_Success if the number of pending bytes has been stored at the location pointed to by "count". Return eRW_NotImplemented if the number cannot be determined. Otherwise, return other eRW_... condition to reflect the problem ("*count" does not need to be updated in the case of non-eRW_Success). Note that if reporting 0 bytes ready, the method may return either both eRW_Success and zero "*count", or return eRW_NotImplemented alone.

Implements IReader.

Definition at line 271 of file bdb_blob.cpp.

References count, eRW_Success, CBDB_BlobReaderWriter::m_BlobSize, and CBDB_BlobReaderWriter::m_Pos.

◆ QueryIAsync() [1/4]

template<class BF >
virtual IAsyncInterface* CBDB_MergeBlobWalker< BF >::QueryIAsync ( )
inlinevirtual

Get pointer to async.

suport. Returns NULL if this interface is fully syncronous.

Implements IMergeVolumeWalker.

Definition at line 66 of file bdb_merge.hpp.

◆ QueryIAsync() [2/4]

template<class BF >
virtual IAsyncInterface* CBDB_MergeBlobWalkerAsync< BF >::QueryIAsync ( )
inlinevirtual

Get pointer to async.

suport. Returns NULL if this interface is fully syncronous.

Implements IMergeVolumeWalker.

Definition at line 111 of file bdb_merge.hpp.

References CBDB_MergeBlobWalkerAsync< BF >::m_AsyncImpl.

◆ QueryIAsync() [3/4]

template<class BStore >
virtual IAsyncInterface* CBDB_MergeStore< BStore >::QueryIAsync ( )
inlinevirtual

Get pointer to async.

suport. Returns NULL if this interface is fully syncronous.

Implements IMergeStore.

Definition at line 202 of file bdb_merge.hpp.

◆ QueryIAsync() [4/4]

template<class BStore >
virtual IAsyncInterface* CBDB_MergeStoreAsync< BStore >::QueryIAsync ( )
inlinevirtual

Get pointer to async.

suport. Returns NULL if this interface is fully syncronous.

Implements IMergeStore.

Definition at line 226 of file bdb_merge.hpp.

References CBDB_MergeStoreAsync< BStore >::m_AsyncImpl.

◆ Read() [1/3]

template<class TBV >
EBDB_ErrCode CBDB_BvStore< TBV >::Read ( TBitVector bv,
bool  clear_target_vec 
)
protected

Fetch, deserialize bvector.

Definition at line 427 of file bdb_bv_store.hpp.

References Deserialize(), and eBDB_Ok.

◆ Read() [2/3]

void CBDB_BLobStream::Read ( void *  buf,
size_t  buf_size,
size_t *  bytes_read 
)

◆ Read() [3/3]

ERW_Result CBDB_BlobReaderWriter::Read ( void *  buf,
size_t  count,
size_t *  bytes_read 
)
virtual

Read as many as "count" bytes into a buffer pointed to by the "buf" argument.

Always store the number of bytes actually read (0 if read none) via the pointer "bytes_read", if provided non-NULL. Return non-eRW_Success code if EOF / error condition has been encountered during the operation (some data may have been read, nevertheless, and reflected in "*bytes_read"). Special case: if "count" is passed as 0, then the value of "buf" must be ignored, and no change should be made to the state of the input device (but may return non-eRW_Success to indicate that the input device has already been in an error condition).

Note
Apparently, may not return eRW_Success if hasn't been able to read "count" bytes as requested, and "bytes_read" was provided as NULL.
When returning "*bytes_read" as zero for a non-zero "count" requested, the return status should not indicate eRW_Success.
Warning
"*bytes_read" may never be returned greater than "count".
Attention
It is implementation-dependent whether the call blocks until the entire buffer is read or the call returns when at least some data are available. In general, it is advised that this call is made within a loop that checks for EOF condition and proceeds with the reading until the required amount of data has been retrieved.

Implements IReader.

Definition at line 279 of file bdb_blob.cpp.

References BDB_CHECK, buf, count, eRW_Success, CBDB_BlobReaderWriter::m_DB, CBDB_BlobReaderWriter::m_DBT_Data, CBDB_BlobReaderWriter::m_DBT_Key, and CBDB_BlobReaderWriter::m_Pos.

◆ ReadBlob() [1/3]

template<class BStore >
CMergeVolumes::TRawBuffer * CBDB_MergeStore< BStore >::ReadBlob ( Uint4  blob_id)
virtual

Read buffer with the specified blob_id This method is for store update, when we are merging into an existing store.

If method returns a non NULL value, the existing buffer is merged with the coming buffer Method implementation MUST return storage buffer to the resource pool

Implements IMergeStore.

Definition at line 379 of file bdb_merge.hpp.

References buf, eBDB_Ok, and CResourcePoolGuard< Pool >::Release().

◆ ReadBlob() [2/3]

template<class BStore >
CMergeVolumes::TRawBuffer * CBDB_MergeStoreAsync< BStore >::ReadBlob ( Uint4  blob_id)
virtual

Read buffer with the specified blob_id This method is for store update, when we are merging into an existing store.

If method returns a non NULL value, the existing buffer is merged with the coming buffer Method implementation MUST return storage buffer to the resource pool

Implements IMergeStore.

Definition at line 473 of file bdb_merge.hpp.

References buf, eBDB_Ok, and CResourcePoolGuard< Pool >::Release().

◆ ReadBlob() [3/3]

template<class TBV >
EBDB_ErrCode CBDB_ExtBlobStore< TBV >::ReadBlob ( unsigned  blob_id,
CBDB_RawFile::TBuffer buf 
)

Read blob from external store.

Definition at line 742 of file bdb_ext_blob.hpp.

References BDB_THROW, buf, eBDB_NotFound, eBDB_Ok, eRead, NcbiInt8ToStreampos(), offset, ok, and ncbi::grid::netcache::search::fields::size.

◆ ReadIds()

template<class TBV >
void SBDB_BvStore_Id< TBV >::ReadIds ( TBitVector id_bv)

◆ ReadRealloc() [1/5]

template<class TBV >
EBDB_ErrCode CBDB_BvStore< TBV >::ReadRealloc ( TBitVector bv,
bool  clear_target_vec 
)
protected

Read bvector, reallocate the internal buffer if necessary.

Definition at line 399 of file bdb_bv_store.hpp.

References CBDB_ErrnoException::IsBufferSmall(), CBDB_ErrnoException::IsNoMem(), and Read().

◆ ReadRealloc() [2/5]

EBDB_ErrCode CBDB_BLobFile::ReadRealloc ( TBuffer buffer)

◆ ReadRealloc() [3/5]

template<class TBV >
EBDB_ErrCode CBDB_BvStore< TBV >::ReadRealloc ( TBuffer buffer)
protected

Read buffer, reallocate if necessary.

Definition at line 420 of file bdb_bv_store.hpp.

References buffer, and CBDB_BLobFile::ReadRealloc().

◆ ReadRealloc() [4/5]

template<class TBV , class TObjDeMux , class TL >
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::ReadRealloc ( unsigned  id,
CBDB_RawFile::TBuffer buffer 
)
inline

Read BLOB into vector.

If BLOB does not fit, method resizes the vector to accomodate.

Definition at line 1183 of file bdb_split_blob.hpp.

References buffer, eBDB_NotFound, and lg().

Referenced by CBDB_Cache::GetBlobAccess(), CBDB_Cache::GetReadStream(), and CBDB_SplitTest::Run().

◆ ReadRealloc() [5/5]

template<class TBV , class TObjDeMux , class TL >
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::ReadRealloc ( unsigned  id,
const unsigned *  coords,
CBDB_RawFile::TBuffer buffer 
)
inline

◆ ReadVector() [1/2]

template<class TBV >
EBDB_ErrCode CBDB_BvStore< TBV >::ReadVector ( TBitVector bv)

Fetch and deserialize the *current* bitvector.

Parameters
bvTarget bitvector to read from the database
Note
key should be initialized before calling this method

Definition at line 323 of file bdb_bv_store.hpp.

References _ASSERT.

◆ ReadVector() [2/2]

template<class TBV >
EBDB_ErrCode CBDB_BvStore< TBV >::ReadVector ( TBitVector bv,
bm::set_operation  op,
unsigned *  count = 0 
)

Fetch and deserialize the *current* bitvector using deserialization operation.

Parameters
bvTarget bitvector to read from the database
opLogical set operation
countOutput for (bit)count set operations
Note
key should be initialized before calling this method

Definition at line 330 of file bdb_bv_store.hpp.

References _ASSERT, bm::aligned_new_malloc(), cnt, count, bm::operation_deserializer< BV >::deserialize(), eBDB_Ok, CBDB_BLobFile::ReadRealloc(), and bm::set_block_alloc_size.

◆ RevSplitOff()

template<class TBV , class TObjDeMux , class TL >
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::RevSplitOff
inline

Turn off reverse splitting on the underlying stores.

This should be called before opening.

Definition at line 709 of file bdb_split_blob.hpp.

◆ Save() [1/3]

template<class TBV >
void CBDB_ExtBlobStore< TBV >::Save

Save all changes (flush buffers, store attributes, etc.)

Definition at line 479 of file bdb_ext_blob.hpp.

References BDB_THROW, bm::BM_NO_BYTE_ORDER, eBDB_Ok, bm::serialize(), and ncbi::grid::netcache::search::fields::size.

◆ Save() [2/3]

void CBDB_BlobDeMuxPersistent::Save ( CNcbiOstream ostr)
inline

◆ Save() [3/3]

template<class TBV , class TObjDeMux , class TL >
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Save ( typename TDeMuxStore::ECompact  compact_vectors = TDeMuxStore::eCompact)
inline

Save storage dictionary (demux disposition).

If you modified storage (like added new BLOBs to the storage) you MUST call save; otherwise some disposition information is lost.

Definition at line 1342 of file bdb_split_blob.hpp.

Referenced by CBDB_Cache::Close(), CBDB_Cache::Purge(), CBDB_SplitTest::Run(), and CBDB_Cache::x_TruncateDB().

◆ SaveIdDeMux()

template<class TBV , class TObjDeMux , class TL >
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SaveIdDeMux ( const TIdDeMux de_mux,
TDeMuxStore dict_file,
CBDB_Transaction trans,
typename TDeMuxStore::ECompact  compact_vectors 
)
inlineprotected

◆ SBDB_BvStore_Id()

template<class TBV >
SBDB_BvStore_Id< TBV >::SBDB_BvStore_Id ( unsigned  initial_serialization_buf_size = 16384)
inline

Definition at line 157 of file bdb_bv_store.hpp.

References CBDB_File::BindKey().

◆ SBlobChunkLoc() [1/2]

CBDB_ExtBlobMap::SBlobChunkLoc::SBlobChunkLoc ( )
inline

◆ SBlobChunkLoc() [2/2]

CBDB_ExtBlobMap::SBlobChunkLoc::SBlobChunkLoc ( Uint8  off,
Uint8  s 
)
inline

Definition at line 82 of file bdb_ext_blob.hpp.

◆ SBlobLoc() [1/2]

CBDB_ExtBlobMap::SBlobLoc::SBlobLoc ( )
inline

Definition at line 98 of file bdb_ext_blob.hpp.

◆ SBlobLoc() [2/2]

CBDB_ExtBlobMap::SBlobLoc::SBlobLoc ( Uint4  id,
Uint8  offset,
Uint8  size 
)
inline

Construct one-chunk blob locator.

Definition at line 101 of file bdb_ext_blob.hpp.

References CBDB_ExtBlobMap::SBlobLoc::blob_location_table, offset, and ncbi::grid::netcache::search::fields::size.

◆ SelectSplit()

static unsigned CBDB_BlobDeMuxSplit::SelectSplit ( size_t  blob_size)
inlinestatic

LOBs are getting split into slices based on LOB size, similar BLOBs go to the compartment with more optimal storage paramaters.

Definition at line 93 of file bdb_split_blob.hpp.

References i.

Referenced by CBDB_BlobDeMux::GetCoordinates(), and CBDB_BlobDeMux_RoundRobin::GetCoordinates().

◆ Serialize() [1/2]

void CBDB_ExtBlobMap::Serialize ( CBDB_RawFile::TBuffer buf,
Uint8  buf_offset = 0 
) const

Serialize map for storage.

Parameters
bufdestination buffer
buf_offsetstart offset in the destination buffer

Definition at line 400 of file bdb_ext_blob.cpp.

References _ASSERT, CBDB_ExtBlobMap::SBlobLoc::blob_id, CBDB_ExtBlobMap::SBlobLoc::blob_location_table, buf, i, CBDB_ExtBlobMap::m_BlobMap, s_ExtBlob_Mask_16bit, s_ExtBlob_Mask_32bit, s_ExtBlob_Mask_SingleChunk, and CBDB_ExtBlobMap::x_ComputeSerializationSize().

Referenced by CBDB_BlobMetaContainer::Serialize().

◆ Serialize() [2/2]

void CBDB_BlobMetaContainer::Serialize ( CBDB_RawFile::TBuffer buf,
Uint8  buf_offset = 0 
) const

◆ SetBlobMap()

CBDB_ExtBlobMap& CBDB_BlobMetaContainer::SetBlobMap ( )
inline

Definition at line 179 of file bdb_ext_blob.hpp.

References CBDB_BlobMetaContainer::m_BlobMap.

◆ SetCachePriority()

template<class TBV , class TObjDeMux , class TL >
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SetCachePriority ( CBDB_RawFile::ECachePriority  p)
inline

Set the priority for this database's pages in the buffer cache This is generally a temporary advisement, and works only if an environment is used.

Definition at line 717 of file bdb_split_blob.hpp.

◆ SetCmp()

void CBDB_LobFile::SetCmp ( DB )
virtual

Comparison function for unsigned int key.

Implements CBDB_RawFile.

Definition at line 598 of file bdb_blob.cpp.

References _ASSERT, BDB_ByteSwap_Uint4Compare(), BDB_CHECK, BDB_Uint4Compare(), CBDB_RawFile::IsByteSwapped(), and CBDB_RawFile::m_DB.

◆ SetCompressor()

template<class TBV >
void CBDB_ExtBlobStore< TBV >::SetCompressor ( ICompression compressor,
EOwnership  own = eTakeOwnership 
)

Set compressor for external BLOB.

Definition at line 453 of file bdb_ext_blob.hpp.

◆ SetContainerMaxSize()

template<class TBV >
void CBDB_ExtBlobStore< TBV >::SetContainerMaxSize ( unsigned  max_size)
inline

Set maximum size of BLOB container.

All BLOBs smaller than container are getting packed together

Definition at line 347 of file bdb_ext_blob.hpp.

References CBDB_ExtBlobStore< TBV >::m_ContainerMax.

◆ SetEnv() [1/2]

template<class TBV >
void CBDB_ExtBlobStore< TBV >::SetEnv ( CBDB_Env env)
inline

Definition at line 327 of file bdb_ext_blob.hpp.

References env, and CBDB_ExtBlobStore< TBV >::m_Env.

◆ SetEnv() [2/2]

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SetEnv ( CBDB_Env env)
inline

Associate with the environment. Should be called before opening.

Definition at line 422 of file bdb_split_blob.hpp.

Referenced by CBDB_SplitTest::LoadTestSet(), and CBDB_Cache::Open().

◆ SetHash()

void CBDB_IdBlobFile::SetHash ( DB )
virtual

Hash for this type returns id (key);.

Reimplemented from CBDB_RawFile.

Definition at line 227 of file bdb_blob.cpp.

References _ASSERT, BDB_CHECK, BDB_Uint4Hash(), CBDB_RawFile::eHash, CBDB_RawFile::m_DB, and CBDB_RawFile::m_DB_Type.

◆ SetLoc()

void CBDB_BlobMetaContainer::SetLoc ( Uint8  offset,
Uint8  size 
)

Set container location (one chunk)

Definition at line 131 of file bdb_ext_blob.cpp.

References CBDB_BlobMetaContainer::m_Loc, offset, and ncbi::grid::netcache::search::fields::size.

◆ SetRecordMoved() [1/2]

template<class BF >
virtual void CBDB_MergeBlobWalker< BF >::SetRecordMoved ( )
inlinevirtual

Signals that current record moved to merged storage (volume manager may decide to delete it later) Volume manager should NOT fetch next record on this call.

Implements IMergeVolumeWalker.

Definition at line 81 of file bdb_merge.hpp.

◆ SetRecordMoved() [2/2]

template<class BF >
virtual void CBDB_MergeBlobWalkerAsync< BF >::SetRecordMoved ( )
inlinevirtual

Signals that current record moved to merged storage (volume manager may decide to delete it later) Volume manager should NOT fetch next record on this call.

Implements IMergeVolumeWalker.

Definition at line 120 of file bdb_merge.hpp.

◆ SetStoreAttrDir()

template<class TBV >
void CBDB_ExtBlobStore< TBV >::SetStoreAttrDir ( const string dir_name)

Store attributes DB location (by default it is the same as SetStoreDataDir).

Works in the absense of BDB environment

See also
SetEnv

Definition at line 466 of file bdb_ext_blob.hpp.

References CDirEntry::AddTrailingPathSeparator().

◆ SetStoreDataDir()

template<class TBV >
void CBDB_ExtBlobStore< TBV >::SetStoreDataDir ( const string dir_name)

External store location.

Definition at line 460 of file bdb_ext_blob.hpp.

References CDirEntry::AddTrailingPathSeparator().

◆ SetSuperLoc()

CBDB_ExtBlobMap::TBlobChunkVec& CBDB_BlobMetaContainer::SetSuperLoc ( )
inline

Get Edit access to location table.

Definition at line 202 of file bdb_ext_blob.hpp.

References CBDB_BlobMetaContainer::m_Loc.

◆ SetTransaction() [1/3]

void CBDB_BlobReaderWriter::SetTransaction ( CBDB_Transaction trans)

Set current transaction.

Definition at line 261 of file bdb_blob.cpp.

References CBDB_Transaction::GetTxn(), and CBDB_BlobReaderWriter::m_Txn.

◆ SetTransaction() [2/3]

void CBDB_BLobStream::SetTransaction ( CBDB_Transaction trans)

Set current transaction for BLOB stream.

Definition at line 363 of file bdb_blob.cpp.

References CBDB_Transaction::GetTxn(), and CBDB_BLobStream::m_Txn.

◆ SetTransaction() [3/3]

template<class TBV , class TObjDeMux , class TL >
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SetTransaction ( ITransaction trans)
inlinevirtual

◆ SetVolumeCacheSize()

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SetVolumeCacheSize ( unsigned int  cache_size)
inline

Definition at line 418 of file bdb_split_blob.hpp.

Referenced by CBDB_SplitTest::LoadTestSet().

◆ Size()

size_t CBDB_ExtBlobMap::Size ( void  ) const
inline

Number of BLOBs registered in the map.

Definition at line 126 of file bdb_ext_blob.hpp.

References CBDB_ExtBlobMap::m_BlobMap.

◆ SMatrixDescr() [1/2]

template<class TBV , class TM >
CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::SMatrixDescr ( const SMatrixDescr mdesc)
inline

◆ SMatrixDescr() [2/2]

template<class TBV , class TM >
CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::SMatrixDescr ( unsigned  c = 0,
unsigned  r = 0,
TBitVector bv = 0 
)
inline

Definition at line 252 of file bdb_bv_store.hpp.

◆ Store() [1/2]

template<class BStore >
void CBDB_MergeStore< BStore >::Store ( Uint4  blob_id,
CMergeVolumes::TRawBuffer buffer 
)
virtual

Store BLOB request This request can be asyncronous caller needs to check status using IAsyncInterface to make sure Fetch finished Method implementation MUST return storage buffer to the resource pool.

Implements IMergeStore.

Definition at line 369 of file bdb_merge.hpp.

References buffer.

◆ Store() [2/2]

template<class BStore >
void CBDB_MergeStoreAsync< BStore >::Store ( Uint4  blob_id,
CMergeVolumes::TRawBuffer buffer 
)
virtual

Store BLOB request This request can be asyncronous caller needs to check status using IAsyncInterface to make sure Fetch finished Method implementation MUST return storage buffer to the resource pool.

Implements IMergeStore.

Definition at line 434 of file bdb_merge.hpp.

References buffer, and NCBI_THROW.

◆ StoreBlob()

template<class TBV >
void CBDB_ExtBlobStore< TBV >::StoreBlob ( unsigned  blob_id,
const CBDB_RawFile::TBuffer buf 
)

Add blob to external store.

BLOB is not written to stor immediately, but accumulated in the buffer

Definition at line 595 of file bdb_ext_blob.hpp.

References _ASSERT, CBDB_ExtBlobMap::Add(), BDB_THROW, buf, eRead, msg(), offset, and NStr::UIntToString().

◆ StoreVectorList()

template<class TBV >
void SBDB_BvStore_Id< TBV >::StoreVectorList ( const vector< TBitVector * > &  bv_lst)

Store vector of bitvector ponters, index in the vector becoms an id of the element.

Definition at line 489 of file bdb_bv_store.hpp.

References i.

◆ Sync()

template<class TBV , class TObjDeMux , class TL >
void CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Sync
inline

◆ UpdateInsert() [1/6]

EBDB_ErrCode CBlobMetaDB::UpdateInsert ( const CBDB_BlobMetaContainer meta_container)

Insert new super BLOB metainfo.

Range (id_from, id_to) is determined automatically

Definition at line 59 of file bdb_ext_blob.cpp.

References buf, CBDB_ExtBlobMap::GetBlobIdRange(), CBDB_BlobMetaContainer::GetBlobMap(), CBlobMetaDB::id_from, CBlobMetaDB::id_to, CBDB_BlobMetaContainer::Serialize(), and CBDB_BLobFile::UpdateInsert().

◆ UpdateInsert() [2/6]

EBDB_ErrCode CBDB_BLobFile::UpdateInsert ( const TBuffer buf)
inline

Insert or update BLOB.

Definition at line 342 of file bdb_blob.hpp.

References buf, and CBDB_BLobFile::UpdateInsert().

◆ UpdateInsert() [3/6]

EBDB_ErrCode CBDB_BLobFile::UpdateInsert ( const void *  data,
size_t  size 
)

Insert or update BLOB.

Before calling this function you should assign the key fields.

Parameters
dataBLOB data
sizedata size in bytes

Definition at line 155 of file bdb_blob.cpp.

References data, CBDB_RawFile::m_DBT_Data, ncbi::grid::netcache::search::fields::size, and CBDB_File::UpdateInsert().

Referenced by CBlobMetaDB::UpdateInsert(), and CBDB_BLobFile::UpdateInsert().

◆ UpdateInsert() [4/6]

template<class TBV , class TObjDeMux , class TL >
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::UpdateInsert ( unsigned  id,
const unsigned *  old_coord,
const void *  data,
size_t  size,
unsigned *  coord 
)
inline

◆ UpdateInsert() [5/6]

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::UpdateInsert ( unsigned  id,
const void *  data,
size_t  size 
)

◆ UpdateInsert() [6/6]

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
EBDB_ErrCode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::UpdateInsert ( unsigned  id,
const void *  data,
size_t  size,
unsigned *  coord 
)

◆ WaitReady() [1/2]

template<class BF >
virtual EStatus CBDB_MergeBlobWalkerAsync< BF >::CAsync::WaitReady ( ) const
inlinevirtual

Wait until interface is ready (or operation fails) (On failure volume is free to throw an exception)

Implements IAsyncInterface.

Definition at line 140 of file bdb_merge.hpp.

References IAsyncInterface::eNotReady, IAsyncInterface::eReady, CBDB_MergeBlobWalkerAsync< BF >::CAsync::GetStatus(), and st().

◆ WaitReady() [2/2]

template<class BStore >
virtual EStatus CBDB_MergeStoreAsync< BStore >::CAsync::WaitReady ( ) const
inlinevirtual

Wait until interface is ready (or operation fails) (On failure volume is free to throw an exception)

Implements IAsyncInterface.

Definition at line 251 of file bdb_merge.hpp.

References IAsyncInterface::eNotReady, IAsyncInterface::eReady, CBDB_MergeStoreAsync< BStore >::CAsync::GetStatus(), and st().

◆ Write() [1/2]

void CBDB_BLobStream::Write ( const void *  buf,
size_t  buf_size 
)

◆ Write() [2/2]

ERW_Result CBDB_BlobReaderWriter::Write ( const void *  buf,
size_t  count,
size_t *  bytes_written 
)
virtual

Write up to "count" bytes from the buffer pointed to by the "buf" argument onto the output device.

Always store the number of bytes actually written, or 0 if "count" has been passed as 0 ("buf" must be ignored in this case), via the "bytes_written" pointer, if provided non-NULL. Note that the method can return non-eRW_Success in case of an I/O error along with indicating (some) data delivered to the output device (and reflected in "*bytes_written").

Note
Apparently, may not return eRW_Success if hasn't been able to write "count" bytes as requested, and "bytes_written" was passed as NULL.
When returning "*bytes_written" as zero for a non-zero "count" requested, the return status should not indicate eRW_Success.
Warning
"*bytes_written" may never be returned greater than "count".
Attention
It is implementation-dependent whether the call blocks until the entire buffer or only some data has been written out. In general, it is advised that this call is made within a loop that checks for errors and proceeds with the writing until the required amount of data has been sent.

Implements IWriter.

Definition at line 304 of file bdb_blob.cpp.

References BDB_CHECK, buf, count, eRW_Success, CBDB_BlobReaderWriter::m_DB, CBDB_BlobReaderWriter::m_DBT_Data, CBDB_BlobReaderWriter::m_DBT_Key, CBDB_BlobReaderWriter::m_Pos, and CBDB_BlobReaderWriter::m_Txn.

◆ WriteVector()

template<class TBV >
EBDB_ErrCode CBDB_BvStore< TBV >::WriteVector ( const TBitVector bv,
ECompact  compact 
)

Save a bitvector to the store.

Parameters
bvBitvector to store
compactCompression option
Note
Initialize the database key first

Definition at line 369 of file bdb_bv_store.hpp.

References bm::aligned_new_malloc(), bm::BM_NO_BYTE_ORDER, bm::BM_NO_GAP_LENGTH, bm::serialize(), bm::set_block_alloc_size, and ncbi::grid::netcache::search::fields::size.

Referenced by CBDB_MergeTest::Run(), and CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SaveIdDeMux().

◆ x_ComputeSerializationSize()

size_t CBDB_ExtBlobMap::x_ComputeSerializationSize ( unsigned *  bits_used,
bool is_single_chunk 
) const
private

Compute serialization size and effective number of bits used for offset/size storage (16, 32, 64)

Parameters
bits_usedNumber of bits used to represent offses & sizes Valid values: 16, 32, 64
is_single_chunkreturned TRUE if there is no blob fragmentation

Definition at line 335 of file bdb_ext_blob.cpp.

References CBDB_ExtBlobMap::SBlobLoc::blob_id, CBDB_ExtBlobMap::SBlobLoc::blob_location_table, i, kMax_UInt, kMax_UShort, and CBDB_ExtBlobMap::m_BlobMap.

Referenced by CBDB_ExtBlobMap::ComputeSerializationSize(), and CBDB_ExtBlobMap::Serialize().

◆ x_Put()

EBDB_ErrCode CBDB_LobFile::x_Put ( unsigned int  lob_id,
const void *  data,
size_t  size,
bool  can_update 
)
private

◆ x_ReadCache()

template<class TBV >
bool CBDB_ExtBlobStore< TBV >::x_ReadCache ( unsigned  blob_id,
CBDB_RawFile::TBuffer buf 
)
private

Try to read BLOB from the recently loaded container.

Definition at line 701 of file bdb_ext_blob.hpp.

References _ASSERT, _DEBUG_ARG, buf, CBDB_ExtBlobMap::GetBlobLoc(), offset, and ncbi::grid::netcache::search::fields::size.

◆ ~CBDB_BlobDeMuxPersistent()

CBDB_BlobDeMuxPersistent::~CBDB_BlobDeMuxPersistent ( )
inline

◆ ~CBDB_BlobReaderWriter()

CBDB_BlobReaderWriter::~CBDB_BlobReaderWriter ( )

◆ ~CBDB_BlobSplitStore()

template<class TBV , class TObjDeMux , class TL >
CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::~CBDB_BlobSplitStore
inline

Definition at line 684 of file bdb_split_blob.hpp.

References CBDB_RawFile::eReadOnly, ERR_POST_XX, and Error().

◆ ~CBDB_BLobStream()

CBDB_BLobStream::~CBDB_BLobStream ( )

◆ ~CBDB_BvStore()

template<class TBV >
CBDB_BvStore< TBV >::~CBDB_BvStore

Definition at line 315 of file bdb_bv_store.hpp.

References bm::aligned_free().

◆ ~CBDB_ExtBlobStore()

template<class TBV >
CBDB_ExtBlobStore< TBV >::~CBDB_ExtBlobStore

Definition at line 429 of file bdb_ext_blob.hpp.

References bm::aligned_free(), CBDB_RawFile::eReadOnly, ERR_POST_XX, and Error().

◆ ~CBDB_MatrixBvStore()

template<class TBV , class TM >
CBDB_MatrixBvStore< TBV, TM >::~CBDB_MatrixBvStore

Definition at line 627 of file bdb_bv_store.hpp.

◆ ~CBDB_MergeBlobWalker()

template<class BF >
CBDB_MergeBlobWalker< BF >::~CBDB_MergeBlobWalker
virtual

Definition at line 311 of file bdb_merge.hpp.

◆ ~CBDB_MergeBlobWalkerAsync()

template<class BF >
CBDB_MergeBlobWalkerAsync< BF >::~CBDB_MergeBlobWalkerAsync
virtual

Definition at line 505 of file bdb_merge.hpp.

◆ ~CBDB_MergeStore()

template<class BStore >
CBDB_MergeStore< BStore >::~CBDB_MergeStore
virtual

Definition at line 364 of file bdb_merge.hpp.

◆ ~CBDB_MergeStoreAsync()

template<class BStore >
CBDB_MergeStoreAsync< BStore >::~CBDB_MergeStoreAsync
virtual

Definition at line 407 of file bdb_merge.hpp.

◆ ~SMatrixDescr()

template<class TBV , class TM >
CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::~SMatrixDescr ( )
inline

Variable Documentation

◆ blob_id

Uint4 CBDB_ExtBlobMap::SBlobLoc::blob_id

◆ blob_location_table

TBlobChunkVec CBDB_ExtBlobMap::SBlobLoc::blob_location_table

◆ cols

template<class TBV , class TM >
unsigned CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::cols

◆ db

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
AutoPtr<TBlobFile> CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::db

◆ db_ro

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
AutoPtr<TBlobFile> CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::db_ro

◆ db_vect

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
vector< CRef<SLockedDb> > CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SVolume::db_vect

◆ descr_bv

template<class TBV , class TM >
TBitVector* CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::descr_bv

◆ dim

template<class TBV >
CBDB_FieldUint4 CBDB_BlobStoreDict< TBV >::dim

◆ dim_idx

template<class TBV >
CBDB_FieldUint4 CBDB_BlobStoreDict< TBV >::dim_idx

◆ id [1/2]

CBDB_FieldUint4 CBDB_IdBlobFile::id

◆ id [2/2]

template<class TBV >
CBDB_FieldUint4 SBDB_BvStore_Id< TBV >::id

ID key.

Definition at line 152 of file bdb_bv_store.hpp.

Referenced by CBDB_MergeTest::Run().

◆ id_from

CBDB_FieldUint4 CBlobMetaDB::id_from

Id range from.

Definition at line 268 of file bdb_ext_blob.hpp.

Referenced by CBlobMetaDB::CBlobMetaDB(), CBlobMetaDB::FetchMeta(), and CBlobMetaDB::UpdateInsert().

◆ id_to

CBDB_FieldUint4 CBlobMetaDB::id_to

Id range to.

Definition at line 269 of file bdb_ext_blob.hpp.

Referenced by CBlobMetaDB::CBlobMetaDB(), CBlobMetaDB::FetchMeta(), and CBlobMetaDB::UpdateInsert().

◆ lock

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
AutoPtr<TLock> CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::lock

◆ lock_ro

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
AutoPtr<TLock> CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::lock_ro

◆ m_AllProjAvail

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
bool CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_AllProjAvail
protected

True when all proj.dbs are pre-open.

Definition at line 636 of file bdb_split_blob.hpp.

◆ m_AsyncImpl [1/2]

template<class BF >
CAsync CBDB_MergeBlobWalkerAsync< BF >::m_AsyncImpl
protected

Definition at line 185 of file bdb_merge.hpp.

Referenced by CBDB_MergeBlobWalkerAsync< BF >::QueryIAsync().

◆ m_AsyncImpl [2/2]

template<class BStore >
CAsync CBDB_MergeStoreAsync< BStore >::m_AsyncImpl
protected

Definition at line 289 of file bdb_merge.hpp.

Referenced by CBDB_MergeStoreAsync< BStore >::QueryIAsync().

◆ m_AttrContainer

template<class TBV >
CBDB_BlobMetaContainer* CBDB_ExtBlobStore< TBV >::m_AttrContainer
protected

Blob attributes container.

Definition at line 397 of file bdb_ext_blob.hpp.

◆ m_BlobAttrDB

template<class TBV >
CBlobMetaDB* CBDB_ExtBlobStore< TBV >::m_BlobAttrDB
protected

Definition at line 386 of file bdb_ext_blob.hpp.

◆ m_BlobContainer

template<class TBV >
CBDB_RawFile::TBuffer CBDB_ExtBlobStore< TBV >::m_BlobContainer
protected

Blob container.

Definition at line 396 of file bdb_ext_blob.hpp.

Referenced by CBDB_ExtBlobStore< TBV >::CBDB_ExtBlobStore().

◆ m_BlobFile [1/2]

template<class BF >
AutoPtr<TBlobFile> CBDB_MergeBlobWalker< BF >::m_BlobFile
protected

Definition at line 84 of file bdb_merge.hpp.

◆ m_BlobFile [2/2]

template<class BF >
AutoPtr<TBlobFile> CBDB_MergeBlobWalkerAsync< BF >::m_BlobFile
protected

Definition at line 175 of file bdb_merge.hpp.

◆ m_BlobIds

template<class TBV >
TBitVector CBDB_ExtBlobStore< TBV >::m_BlobIds
protected

List of BLOB ids stored.

Definition at line 380 of file bdb_ext_blob.hpp.

◆ m_BlobMap [1/2]

TBlobMap CBDB_ExtBlobMap::m_BlobMap
private

◆ m_BlobMap [2/2]

CBDB_ExtBlobMap CBDB_BlobMetaContainer::m_BlobMap
private

◆ m_BlobSize [1/2]

size_t CBDB_BlobReaderWriter::m_BlobSize
private

Definition at line 205 of file bdb_blob.hpp.

Referenced by CBDB_BlobReaderWriter::PendingCount().

◆ m_BlobSize [2/2]

size_t CBDB_BLobStream::m_BlobSize
private

Definition at line 246 of file bdb_blob.hpp.

Referenced by CBDB_BLobStream::PendingCount().

◆ m_BlobStore [1/2]

template<class BStore >
AutoPtr<TBlobStore> CBDB_MergeStore< BStore >::m_BlobStore
private

Definition at line 208 of file bdb_merge.hpp.

◆ m_BlobStore [2/2]

template<class BStore >
AutoPtr<TBlobStore> CBDB_MergeStoreAsync< BStore >::m_BlobStore
protected

Definition at line 285 of file bdb_merge.hpp.

◆ m_Buffer

template<class TBV >
TBuffer CBDB_BvStore< TBV >::m_Buffer
protected

temporary serialization buffer

Definition at line 136 of file bdb_bv_store.hpp.

Referenced by CBDB_BvStore< TBV >::GetBuffer().

◆ m_CachePriority

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
CBDB_RawFile::ECachePriority CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_CachePriority
protected

Definition at line 633 of file bdb_split_blob.hpp.

◆ m_CompressBuffer

template<class TBV >
CBDB_RawFile::TBuffer CBDB_ExtBlobStore< TBV >::m_CompressBuffer
protected

Definition at line 390 of file bdb_ext_blob.hpp.

◆ m_Compressor

template<class TBV >
AutoPtr<ICompression> CBDB_ExtBlobStore< TBV >::m_Compressor
protected

Record compressor.

Definition at line 389 of file bdb_ext_blob.hpp.

◆ m_ContainerMax

template<class TBV >
unsigned CBDB_ExtBlobStore< TBV >::m_ContainerMax
protected

◆ m_CrossDBLock

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
TLock CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_CrossDBLock
protected

Lock used to sync. muli-db transactions to avoid deadlocks.

Definition at line 642 of file bdb_split_blob.hpp.

◆ m_CurrVolume

unsigned CBDB_BlobDeMux_RoundRobin::m_CurrVolume
private

Definition at line 299 of file bdb_split_blob.hpp.

Referenced by CBDB_BlobDeMux_RoundRobin::GetCoordinates().

◆ m_Cursor [1/2]

template<class BF >
unique_ptr<CBDB_FileCursor> CBDB_MergeBlobWalker< BF >::m_Cursor
protected

Definition at line 85 of file bdb_merge.hpp.

Referenced by CBDB_MergeBlobWalker< BF >::Close().

◆ m_Cursor [2/2]

template<class BF >
unique_ptr<CBDB_FileCursor> CBDB_MergeBlobWalkerAsync< BF >::m_Cursor
protected

Definition at line 176 of file bdb_merge.hpp.

◆ m_Data [1/2]

template<class BF >
const void* CBDB_MergeBlobWalker< BF >::m_Data
protected

Definition at line 88 of file bdb_merge.hpp.

Referenced by CBDB_MergeBlobWalker< BF >::GetBufferPtr().

◆ m_Data [2/2]

template<class BF >
const void* CBDB_MergeBlobWalkerAsync< BF >::m_Data
protected

Definition at line 180 of file bdb_merge.hpp.

Referenced by CBDB_MergeBlobWalkerAsync< BF >::CAsync::GetStatus().

◆ m_DataLen [1/2]

template<class BF >
size_t CBDB_MergeBlobWalker< BF >::m_DataLen
protected

Definition at line 89 of file bdb_merge.hpp.

Referenced by CBDB_MergeBlobWalker< BF >::GetBufferPtr().

◆ m_DataLen [2/2]

template<class BF >
size_t CBDB_MergeBlobWalkerAsync< BF >::m_DataLen
protected

Definition at line 181 of file bdb_merge.hpp.

◆ m_DB [1/2]

DB* CBDB_BlobReaderWriter::m_DB
private

Definition at line 200 of file bdb_blob.hpp.

Referenced by CBDB_BlobReaderWriter::Read(), and CBDB_BlobReaderWriter::Write().

◆ m_DB [2/2]

DB* CBDB_BLobStream::m_DB
private

Definition at line 241 of file bdb_blob.hpp.

Referenced by CBDB_BLobStream::Read(), and CBDB_BLobStream::Write().

◆ m_DB_Type

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
CBDB_RawFile::EDBType CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_DB_Type
protected

Definition at line 632 of file bdb_split_blob.hpp.

◆ m_DBT_Data [1/2]

DBT* CBDB_BlobReaderWriter::m_DBT_Data
private

◆ m_DBT_Data [2/2]

DBT* CBDB_BLobStream::m_DBT_Data
private

◆ m_DBT_Key [1/2]

DBT* CBDB_BlobReaderWriter::m_DBT_Key
private

◆ m_DBT_Key [2/2]

DBT* CBDB_BLobStream::m_DBT_Key
private

◆ m_DictFile

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
unique_ptr<TDeMuxStore> CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_DictFile
protected

Split dictionary(id demux file)

Definition at line 618 of file bdb_split_blob.hpp.

◆ m_DictFileLock

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
TLock CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_DictFileLock
mutableprotected

id demux file locker

Definition at line 619 of file bdb_split_blob.hpp.

◆ m_Env [1/2]

template<class TBV >
CBDB_Env* CBDB_ExtBlobStore< TBV >::m_Env
protected

◆ m_Env [2/2]

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
CBDB_Env* CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_Env
protected

◆ m_Eof [1/2]

template<class BF >
bool CBDB_MergeBlobWalker< BF >::m_Eof
protected

Definition at line 87 of file bdb_merge.hpp.

Referenced by CBDB_MergeBlobWalker< BF >::IsEof().

◆ m_Eof [2/2]

template<class BF >
bool CBDB_MergeBlobWalkerAsync< BF >::m_Eof
protected

Definition at line 178 of file bdb_merge.hpp.

◆ m_ExtStore

template<class TBV >
CNcbiFstream* CBDB_ExtBlobStore< TBV >::m_ExtStore
protected

Definition at line 387 of file bdb_ext_blob.hpp.

◆ m_FetchBufferSize [1/2]

template<class BF >
size_t CBDB_MergeBlobWalker< BF >::m_FetchBufferSize
protected

Definition at line 86 of file bdb_merge.hpp.

◆ m_FetchBufferSize [2/2]

template<class BF >
size_t CBDB_MergeBlobWalkerAsync< BF >::m_FetchBufferSize
protected

Definition at line 177 of file bdb_merge.hpp.

◆ m_Good [1/2]

template<class BF >
bool CBDB_MergeBlobWalkerAsync< BF >::m_Good
protected

Definition at line 179 of file bdb_merge.hpp.

Referenced by CBDB_MergeBlobWalkerAsync< BF >::CAsync::GetStatus().

◆ m_Good [2/2]

template<class BStore >
bool CBDB_MergeStoreAsync< BStore >::m_Good
protected

Definition at line 284 of file bdb_merge.hpp.

Referenced by CBDB_MergeStoreAsync< BStore >::CAsync::GetStatus().

◆ m_IdDeMux

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
unique_ptr<TIdDeMux> CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_IdDeMux
protected

Id to coordinates mapper.

Definition at line 621 of file bdb_split_blob.hpp.

◆ m_IdDeMuxLock

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
CRWLock CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_IdDeMuxLock
mutableprotected

Definition at line 622 of file bdb_split_blob.hpp.

◆ m_Impl [1/4]

template<class BF >
TMainClass& CBDB_MergeBlobWalkerAsync< BF >::CAsync::m_Impl
private

Definition at line 153 of file bdb_merge.hpp.

Referenced by CBDB_MergeBlobWalkerAsync< BF >::CAsync::GetStatus().

◆ m_Impl [2/4]

template<class BF >
TMainClass& CBDB_MergeBlobWalkerAsync< BF >::CJobThread::m_Impl
protected

Definition at line 167 of file bdb_merge.hpp.

Referenced by CBDB_MergeBlobWalkerAsync< BF >::CJobThread::DoJob().

◆ m_Impl [3/4]

template<class BStore >
TMainClass& CBDB_MergeStoreAsync< BStore >::CAsync::m_Impl
private

Definition at line 264 of file bdb_merge.hpp.

Referenced by CBDB_MergeStoreAsync< BStore >::CAsync::GetStatus().

◆ m_Impl [4/4]

template<class BStore >
TMainClass& CBDB_MergeStoreAsync< BStore >::CJobThread::m_Impl
protected

Definition at line 278 of file bdb_merge.hpp.

Referenced by CBDB_MergeStoreAsync< BStore >::CJobThread::DoJob().

◆ m_JobThread [1/2]

template<class BF >
CRef<CJobThread> CBDB_MergeBlobWalkerAsync< BF >::m_JobThread
protected

◆ m_JobThread [2/2]

template<class BStore >
CRef<CJobThread> CBDB_MergeStoreAsync< BStore >::m_JobThread
protected

Definition at line 286 of file bdb_merge.hpp.

Referenced by CBDB_MergeStoreAsync< BStore >::CBDB_MergeStoreAsync().

◆ m_Key [1/2]

template<class BF >
Uint4 CBDB_MergeBlobWalker< BF >::m_Key
protected

Definition at line 90 of file bdb_merge.hpp.

Referenced by CBDB_MergeBlobWalker< BF >::GetUint4Key().

◆ m_Key [2/2]

template<class BF >
Uint4 CBDB_MergeBlobWalkerAsync< BF >::m_Key
protected

Definition at line 182 of file bdb_merge.hpp.

◆ m_KeyPtr [1/2]

template<class BF >
const unsigned char* CBDB_MergeBlobWalker< BF >::m_KeyPtr
protected

Definition at line 91 of file bdb_merge.hpp.

Referenced by CBDB_MergeBlobWalker< BF >::GetKeyPtr().

◆ m_KeyPtr [2/2]

template<class BF >
const unsigned char* CBDB_MergeBlobWalkerAsync< BF >::m_KeyPtr
protected

Definition at line 183 of file bdb_merge.hpp.

◆ m_LastFromBlobId

template<class TBV >
unsigned CBDB_ExtBlobStore< TBV >::m_LastFromBlobId
protected

Recently read id interval.

Definition at line 399 of file bdb_ext_blob.hpp.

Referenced by CBDB_ExtBlobStore< TBV >::CBDB_ExtBlobStore().

◆ m_LastOp

template<class TBV >
ELastOp CBDB_ExtBlobStore< TBV >::m_LastOp
protected

Last operation status.

Definition at line 398 of file bdb_ext_blob.hpp.

◆ m_LastToBlobId

template<class TBV >
unsigned CBDB_ExtBlobStore< TBV >::m_LastToBlobId
protected

Recently read id interval.

Definition at line 400 of file bdb_ext_blob.hpp.

Referenced by CBDB_ExtBlobStore< TBV >::CBDB_ExtBlobStore().

◆ m_LobKey

unsigned int CBDB_LobFile::m_LobKey
private

◆ m_Loc

CBDB_ExtBlobMap::TBlobChunkVec CBDB_BlobMetaContainer::m_Loc
private

◆ m_Lock [1/2]

template<class BF >
CFastMutex CBDB_MergeBlobWalkerAsync< BF >::m_Lock
mutableprotected

Definition at line 174 of file bdb_merge.hpp.

Referenced by CBDB_MergeBlobWalkerAsync< BF >::CAsync::GetStatus().

◆ m_Lock [2/2]

template<class BStore >
CFastMutex CBDB_MergeStoreAsync< BStore >::m_Lock
mutableprotected

Definition at line 283 of file bdb_merge.hpp.

Referenced by CBDB_MergeStoreAsync< BStore >::CAsync::GetStatus().

◆ m_ObjDeMux

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
unique_ptr<TObjDeMux> CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_ObjDeMux
protected

Obj to coordinates mapper.

Definition at line 624 of file bdb_split_blob.hpp.

◆ m_ObjDeMuxLock

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
TLock CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_ObjDeMuxLock
protected

Definition at line 625 of file bdb_split_blob.hpp.

◆ m_OpenMode [1/2]

template<class TBV >
CBDB_RawFile::EOpenMode CBDB_ExtBlobStore< TBV >::m_OpenMode
protected

Definition at line 384 of file bdb_ext_blob.hpp.

◆ m_OpenMode [2/2]

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
CBDB_RawFile::EOpenMode CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_OpenMode
protected

Definition at line 631 of file bdb_split_blob.hpp.

◆ m_PageSizes

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
vector<unsigned> CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_PageSizes
protected

◆ m_Path

string CBDB_BlobDeMuxPersistent::m_Path
private

◆ m_Pos [1/2]

unsigned CBDB_BlobReaderWriter::m_Pos
private

◆ m_Pos [2/2]

unsigned CBDB_BLobStream::m_Pos
private

◆ m_RecMax

unsigned CBDB_BlobDeMux::m_RecMax
protected

Maximum number of records.

Definition at line 181 of file bdb_split_blob.hpp.

Referenced by CBDB_BlobDeMux::GetCoordinates().

◆ m_RecS

TVolumeRecs CBDB_BlobDeMux::m_RecS
protected

◆ m_Request_BlobId

template<class BStore >
Uint4 CBDB_MergeStoreAsync< BStore >::m_Request_BlobId
protected

Definition at line 287 of file bdb_merge.hpp.

◆ m_Request_Buffer

template<class BStore >
CMergeVolumes::TRawBuffer* CBDB_MergeStoreAsync< BStore >::m_Request_Buffer
protected

Definition at line 288 of file bdb_merge.hpp.

Referenced by CBDB_MergeStoreAsync< BStore >::CAsync::GetStatus().

◆ m_RevSplitOff

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
bool CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_RevSplitOff
protected

Flag carrying reverse split status.

Definition at line 639 of file bdb_split_blob.hpp.

◆ m_STmpBlock [1/2]

template<class TBV >
bm::word_t* CBDB_BvStore< TBV >::m_STmpBlock
protected

temp block for bitvector serialization

Definition at line 140 of file bdb_bv_store.hpp.

◆ m_STmpBlock [2/2]

template<class TBV >
bm::word_t* CBDB_ExtBlobStore< TBV >::m_STmpBlock
protected

temp block for bitvector serialization

Definition at line 382 of file bdb_ext_blob.hpp.

Referenced by CBDB_ExtBlobStore< TBV >::CBDB_ExtBlobStore().

◆ m_StorageName

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
string CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_StorageName
protected

◆ m_StoreAttrDir

template<class TBV >
string CBDB_ExtBlobStore< TBV >::m_StoreAttrDir
protected

Definition at line 393 of file bdb_ext_blob.hpp.

◆ m_StoreDataDir

template<class TBV >
string CBDB_ExtBlobStore< TBV >::m_StoreDataDir
protected

Definition at line 392 of file bdb_ext_blob.hpp.

◆ m_TmpBVec

template<class TBV >
TBitVector CBDB_BvStore< TBV >::m_TmpBVec
protected

temporary bitset

Definition at line 138 of file bdb_bv_store.hpp.

◆ m_TransAssociation

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
int CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_TransAssociation
protected

Definition at line 613 of file bdb_split_blob.hpp.

◆ m_Txn [1/2]

DB_TXN* CBDB_BlobReaderWriter::m_Txn
private

◆ m_Txn [2/2]

DB_TXN* CBDB_BLobStream::m_Txn
private

Definition at line 244 of file bdb_blob.hpp.

Referenced by CBDB_BLobStream::SetTransaction(), and CBDB_BLobStream::Write().

◆ m_VolMax

double CBDB_BlobDeMux::m_VolMax
protected

Volume max size.

Definition at line 180 of file bdb_split_blob.hpp.

Referenced by CBDB_BlobDeMux::GetCoordinates().

◆ m_VolS

TVolumeSize CBDB_BlobDeMux::m_VolS
protected

◆ m_VolumeCacheSize

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
unsigned CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_VolumeCacheSize
protected

◆ m_Volumes [1/2]

unsigned CBDB_BlobDeMux_RoundRobin::m_Volumes
private

◆ m_Volumes [2/2]

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
TVolumeVect CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_Volumes
protected

Volumes.

Definition at line 627 of file bdb_split_blob.hpp.

◆ m_VolumesLock

template<class TBV , class TObjDeMux = CBDB_BlobDeMux, class TL = CFastMutex>
TLock CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::m_VolumesLock
mutableprotected

Volumes locker.

Definition at line 628 of file bdb_split_blob.hpp.

◆ matr_cols

template<class TBV , class TM >
CBDB_FieldUint4 CBDB_MatrixBvStore< TBV, TM >::matr_cols

Number of columns (bit count)

Definition at line 278 of file bdb_bv_store.hpp.

Referenced by CBDB_MatrixBvStore< TBV, TM >::CBDB_MatrixBvStore().

◆ matr_rows

template<class TBV , class TM >
CBDB_FieldUint4 CBDB_MatrixBvStore< TBV, TM >::matr_rows

Number of rows (number of bvectors)

Definition at line 279 of file bdb_bv_store.hpp.

Referenced by CBDB_MatrixBvStore< TBV, TM >::CBDB_MatrixBvStore().

◆ offset

Uint8 CBDB_ExtBlobMap::SBlobChunkLoc::offset

◆ rows

template<class TBV , class TM >
unsigned CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::rows

◆ size

Uint8 CBDB_ExtBlobMap::SBlobChunkLoc::size

◆ store_type

template<class TBV , class TM >
CBDB_FieldUint4 CBDB_MatrixBvStore< TBV, TM >::store_type

EStoreType.

Definition at line 280 of file bdb_bv_store.hpp.

Referenced by CBDB_MatrixBvStore< TBV, TM >::CBDB_MatrixBvStore().

◆ TBuffer

template<class TBV >
CBDB_RawFile::TBuffer CBDB_ExtBlobStore< TBV >::TBuffer

Definition at line 310 of file bdb_ext_blob.hpp.

Friends

◆ CBDB_BLobFile [1/2]

friend class CBDB_BLobFile
friend

Definition at line 198 of file bdb_blob.hpp.

◆ CBDB_BLobFile [2/2]

friend class CBDB_BLobFile
friend

Definition at line 248 of file bdb_blob.hpp.

◆ TMainClass::CAsync [1/2]

template<class BF >
friend class TMainClass::CAsync
friend

Definition at line 169 of file bdb_merge.hpp.

◆ TMainClass::CAsync [2/2]

template<class BStore >
friend class TMainClass::CAsync
friend

Definition at line 280 of file bdb_merge.hpp.

◆ TMainClass::CJobThread [1/2]

template<class BF >
friend class TMainClass::CJobThread
friend

Definition at line 170 of file bdb_merge.hpp.

◆ TMainClass::CJobThread [2/2]

template<class BStore >
friend class TMainClass::CJobThread
friend

Definition at line 281 of file bdb_merge.hpp.

Modified on Fri Sep 20 14:57:03 2024 by modify_doxy.py rev. 669887