NCBI C++ ToolKit
|
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... | |
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_BLobStream * | CBDB_BLobFile::CreateStream () |
Creates stream like object to retrieve or write BLOB by chunks. More... | |
CBDB_BlobReaderWriter * | CBDB_BLobFile::CreateReaderWriter () |
Creates stream like object to retrieve or write BLOB by chunks. More... | |
IReader * | CBDB_BLobFile::CreateReader () |
Creates stream like object to read BLOB by chunks. More... | |
CBDB_BLobFile::CBDB_BLobFile (const CBDB_BLobFile &) | |
forbidden More... | |
CBDB_BLobFile & | CBDB_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_BlobReaderWriter & | CBDB_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_BLobStream & | CBDB_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... | |
TBuffer & | CBDB_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_t * | CBDB_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) | |
SMatrixDescr & | CBDB_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_MatrixBvStore & | CBDB_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_ExtBlobMap & | CBDB_BlobMetaContainer::GetBlobMap () const |
CBDB_ExtBlobMap & | CBDB_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 &) | |
CBlobMetaDB & | CBlobMetaDB::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_Env * | CBDB_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_ExtBlobStore & | CBDB_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 IAsyncInterface * | CBDB_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 IAsyncInterface * | CBDB_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 IAsyncInterface * | CBDB_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::TRawBuffer * | CBDB_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 IAsyncInterface * | CBDB_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::TRawBuffer * | CBDB_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_Env * | CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::GetEnv (void) const |
Get pointer on file environment Return NULL if no environment has been set. More... | |
const string & | CBDB_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_Transaction * | CBDB_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... | |
IReader * | CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::CreateReader (unsigned id) |
Create stream oriented reader. More... | |
IReader * | CBDB_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... | |
SLockedDb & | CBDB_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 > &) |
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::TBlobChunkVec & | CBDB_BlobMetaContainer::GetSuperLoc () const |
Get location table of a super BLOB Location table is used to reassemble BLOB from chunks. More... | |
CBDB_ExtBlobMap::TBlobChunkVec & | CBDB_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... | |
typedef TParent::ECompact CBDB_MatrixBvStore< TBV, TM >::ECompact |
Definition at line 243 of file bdb_bv_store.hpp.
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.
typedef TBV CBDB_BvStore< TBV >::TBitVector |
Serializable bitvector.
Definition at line 60 of file bdb_bv_store.hpp.
typedef TParent::TBitVector SBDB_BvStore_Id< TBV >::TBitVector |
Definition at line 155 of file bdb_bv_store.hpp.
typedef TBV CBDB_MatrixBvStore< TBV, TM >::TBitVector |
Serializable bitvector.
Definition at line 241 of file bdb_bv_store.hpp.
typedef TBV CBDB_ExtBlobStore< TBV >::TBitVector |
Definition at line 309 of file bdb_ext_blob.hpp.
typedef TBV CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TBitVector |
Definition at line 360 of file bdb_split_blob.hpp.
typedef vector<SBlobChunkLoc> CBDB_ExtBlobMap::TBlobChunkVec |
BLOB location table (list of chunks and sizes)
Definition at line 89 of file bdb_ext_blob.hpp.
typedef BF CBDB_MergeBlobWalker< BF >::TBlobFile |
Definition at line 58 of file bdb_merge.hpp.
typedef BF CBDB_MergeBlobWalkerAsync< BF >::TBlobFile |
Definition at line 102 of file bdb_merge.hpp.
typedef CBDB_IdBlobFile CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TBlobFile |
Definition at line 364 of file bdb_split_blob.hpp.
typedef vector<SBlobLoc> CBDB_ExtBlobMap::TBlobMap |
Collection of BLOBs (id + allocation table)
Definition at line 110 of file bdb_ext_blob.hpp.
typedef BStore CBDB_MergeStore< BStore >::TBlobStore |
Definition at line 196 of file bdb_merge.hpp.
typedef BStore CBDB_MergeStoreAsync< BStore >::TBlobStore |
Definition at line 220 of file bdb_merge.hpp.
typedef TBuffer::value_type CBDB_BvStore< TBV >::TBufferValue |
Definition at line 61 of file bdb_bv_store.hpp.
typedef CBDB_BlobStoreDict<TBV> CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TDeMuxStore |
Definition at line 361 of file bdb_split_blob.hpp.
typedef CIdDeMux<TBV> CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TIdDeMux |
Definition at line 359 of file bdb_split_blob.hpp.
typedef TL CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TLock |
Definition at line 362 of file bdb_split_blob.hpp.
typedef TL::TWriteLockGuard CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TLockGuard |
Definition at line 363 of file bdb_split_blob.hpp.
|
protected |
Definition at line 123 of file bdb_merge.hpp.
|
protected |
Definition at line 234 of file bdb_merge.hpp.
typedef TM CBDB_MatrixBvStore< TBV, TM >::TMatrix |
Bit matrix.
Definition at line 242 of file bdb_bv_store.hpp.
typedef vector<SMatrixDescr> CBDB_MatrixBvStore< TBV, TM >::TMatrixDescrList |
Definition at line 274 of file bdb_bv_store.hpp.
typedef CBDB_BvStore< TBV > SBDB_BvStore_Id< TBV >::TParent |
Definition at line 154 of file bdb_bv_store.hpp.
typedef CBDB_BvStore<TBV> CBDB_MatrixBvStore< TBV, TM >::TParent |
Definition at line 240 of file bdb_bv_store.hpp.
typedef CBDB_BLobFile CBlobMetaDB::TParent |
Definition at line 266 of file bdb_ext_blob.hpp.
typedef CBDB_BvStore<TBV> CBDB_BlobStoreDict< TBV >::TParent |
Definition at line 73 of file bdb_split_blob.hpp.
typedef CNcbiMatrix<unsigned> CBDB_BlobDeMux::TVolumeRecs |
Definition at line 126 of file bdb_split_blob.hpp.
typedef CNcbiMatrix<double> CBDB_BlobDeMux::TVolumeSize |
Definition at line 125 of file bdb_split_blob.hpp.
typedef vector<SVolume*> CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::TVolumeVect |
Definition at line 386 of file bdb_split_blob.hpp.
enum CBDB_BvStore::ECompact |
Compression options for vector storage.
Enumerator | |
---|---|
eNoCompact | |
eCompact |
Definition at line 97 of file bdb_bv_store.hpp.
|
protected |
Read or write operation.
Enumerator | |
---|---|
eGetRead | |
eGetWrite |
Definition at line 600 of file bdb_split_blob.hpp.
|
private |
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.
Add BLOB. BLOB consists of one single chunk.
Definition at line 253 of file bdb_ext_blob.cpp.
References BDB_THROW, CBDB_ExtBlobMap::HasBlob(), CBDB_ExtBlobMap::m_BlobMap, msg(), offset, ncbi::grid::netcache::search::fields::size, and NStr::UIntToString().
Referenced by CBDB_ExtBlobStore< TBV >::StoreBlob().
unsigned CBDB_BLobFile::Append | ( | const void * | data, |
size_t | size | ||
) |
Definition at line 144 of file bdb_blob.cpp.
References _ASSERT, CBDB_File::Append(), data, CBDB_RawFile::eQueue, CBDB_RawFile::GetRecLen(), CBDB_RawFile::m_DB_Type, CBDB_RawFile::m_DBT_Data, and ncbi::grid::netcache::search::fields::size.
|
inline |
Assing de-mux coordinates.
Definition at line 754 of file bdb_split_blob.hpp.
References lg().
Referenced by CBDB_Cache::Open().
|
inline |
Get LOB size. Becomes available right after successfull Fetch.
Definition at line 118 of file bdb_blob.hpp.
References CBDB_BLobFile::LobSize().
|
inline |
Definition at line 1218 of file bdb_split_blob.hpp.
References CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::db, CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::db_ro, eBDB_Ok, CBDB_BLobFile::Fetch(), AutoPtr< X, Del >::get(), CBDB_IdBlobFile::id, lg(), CBDB_BLobFile::LobSize(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::lock, CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::lock_ro, and CBDB_RawFile::SetTransaction().
|
inline |
Get size of the BLOB.
Definition at line 1201 of file bdb_split_blob.hpp.
References eBDB_NotFound, and lg().
Referenced by CBDB_Cache::GetSizeEx().
|
inline |
Definition at line 130 of file bdb_merge.hpp.
|
inline |
Definition at line 241 of file bdb_merge.hpp.
|
inline |
Definition at line 129 of file bdb_split_blob.hpp.
|
inline |
Definition at line 269 of file bdb_split_blob.hpp.
|
inline |
Definition at line 190 of file bdb_split_blob.hpp.
References CBDB_BlobDeMuxPersistent::Load(), and CBDB_BlobDeMuxPersistent::m_Path.
|
private |
forbidden
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 | ( | ) |
Definition at line 128 of file bdb_ext_blob.cpp.
|
private |
|
protected |
Definition at line 239 of file bdb_blob.cpp.
References CBDB_BlobReaderWriter::m_DBT_Data.
|
private |
forbidden
|
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.
|
inline |
Definition at line 76 of file bdb_split_blob.hpp.
References CBDB_File::BindKey().
|
private |
|
protected |
Definition at line 340 of file bdb_blob.cpp.
References CBDB_BLobStream::m_DBT_Data.
CBDB_BvStore< TBV >::CBDB_BvStore | ( | unsigned | initial_serialization_buf_size = 16384 | ) |
Construction.
initial_serialization_buf_size | Amount of memory allocated for deserialization buffer |
Definition at line 308 of file bdb_bv_store.hpp.
CBDB_ExtBlobMap::CBDB_ExtBlobMap | ( | ) |
Definition at line 249 of file bdb_ext_blob.cpp.
CBDB_ExtBlobStore< TBV >::CBDB_ExtBlobStore |
Definition at line 413 of file bdb_ext_blob.hpp.
References bm::aligned_new_malloc(), CBDB_ExtBlobStore< TBV >::m_BlobContainer, CBDB_ExtBlobStore< TBV >::m_ContainerMax, CBDB_ExtBlobStore< TBV >::m_LastFromBlobId, CBDB_ExtBlobStore< TBV >::m_LastToBlobId, CBDB_ExtBlobStore< TBV >::m_STmpBlock, CSimpleBufferT< T, ResizeStrategy >::reserve(), and bm::set_block_alloc_size.
|
private |
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 | ( | ) |
Definition at line 421 of file bdb_blob.cpp.
References CBDB_RawFile::m_DBT_Key, and CBDB_LobFile::m_LobKey.
|
private |
CBDB_MatrixBvStore< TBV, TM >::CBDB_MatrixBvStore | ( | unsigned | initial_serialization_buf_size = 16384 | ) |
Definition at line 618 of file bdb_bv_store.hpp.
References CBDB_File::BindKey(), CBDB_MatrixBvStore< TBV, TM >::matr_cols, CBDB_MatrixBvStore< TBV, TM >::matr_rows, and CBDB_MatrixBvStore< TBV, TM >::store_type.
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< 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< BStore >::CBDB_MergeStore | ( | TBlobStore * | blob_store, |
EOwnership | own = eTakeOwnership |
||
) |
Definition at line 357 of file bdb_merge.hpp.
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::CBlobMetaDB | ( | ) |
Definition at line 51 of file bdb_ext_blob.cpp.
References CBDB_File::BindKey(), CBlobMetaDB::id_from, and CBlobMetaDB::id_to.
|
private |
|
inline |
Definition at line 160 of file bdb_merge.hpp.
|
inline |
Definition at line 271 of file bdb_merge.hpp.
void CBDB_ExtBlobStore< TBV >::Close | ( | void | ) |
Close store.
Definition at line 472 of file bdb_ext_blob.hpp.
|
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.
|
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.
|
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.
|
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.
|
inlineprotected |
Close volumes without saving or doing anything with id demux.
Definition at line 725 of file bdb_split_blob.hpp.
References i.
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().
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().
size_t CBDB_BlobMetaContainer::ComputeSerializationSize | ( | ) | const |
Compute maximum serialization size.
Definition at line 155 of file bdb_ext_blob.cpp.
References CBDB_ExtBlobMap::ComputeSerializationSize(), CBDB_BlobMetaContainer::m_BlobMap, and CBDB_BlobMetaContainer::m_Loc.
Referenced by CBDB_BlobMetaContainer::Serialize().
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().
|
inline |
Create stream oriented reader.
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().
|
inline |
Definition at line 983 of file bdb_split_blob.hpp.
References CBDB_BLobFile::CreateReader(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::db, CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::db_ro, eBDB_Ok, CBDB_BLobFile::Fetch(), AutoPtr< X, Del >::get(), CBDB_IdBlobFile::id, lg(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::lock, CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::lock_ro, and CBDB_RawFile::SetTransaction().
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.
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().
|
inline |
Delete BLOB.
Definition at line 927 of file bdb_split_blob.hpp.
References eBDB_NotFound, and lg().
Referenced by CBDB_Cache::DropBlob(), CBDB_Cache::DropBlobWithExpCheck(), CBDB_Cache::RegisterOverflow(), CBDB_Cache::x_DropBlob(), CBDB_Cache::x_Store(), and CBDB_Cache::x_TruncateDB().
|
inline |
Definition at line 944 of file bdb_split_blob.hpp.
References CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::db, lg(), and CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::lock.
void CBDB_ExtBlobMap::Deserialize | ( | const CBDB_RawFile::TBuffer & | buf, |
Uint8 | buf_offset = 0 |
||
) |
DeSerialize map.
Definition at line 481 of file bdb_ext_blob.cpp.
References 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, and s_ExtBlob_Mask_SingleChunk.
Referenced by CBDB_BlobMetaContainer::Deserialize().
void CBDB_BlobMetaContainer::Deserialize | ( | const CBDB_RawFile::TBuffer & | buf, |
Uint8 | buf_offset = 0 |
||
) |
Definition at line 209 of file bdb_ext_blob.cpp.
References buf, CBDB_ExtBlobMap::Deserialize(), i, CBDB_BlobMetaContainer::m_BlobMap, CBDB_BlobMetaContainer::m_Loc, CBDB_ExtBlobMap::SBlobChunkLoc::offset, s_ExtBlob_Mask_SingleChunk, and CBDB_ExtBlobMap::SBlobChunkLoc::size.
Referenced by CBlobMetaDB::FetchMeta().
void CBDB_BvStore< TBV >::Deserialize | ( | TBitVector * | bv, |
const TBufferValue * | buf | ||
) |
Definition at line 452 of file bdb_bv_store.hpp.
References bm::aligned_new_malloc(), buf, bm::deserialize(), and bm::set_block_alloc_size.
Referenced by CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::LoadIdDeMux().
|
protected |
Definition at line 590 of file bdb_merge.hpp.
References _ASSERT, eBDB_MultiRowEnd, eBDB_NotFound, eBDB_Ok, CBDB_Field::GetBuffer(), CBDB_BufferManager::GetField(), and IBDB_FieldConvert::GetUint().
Referenced by CBDB_MergeBlobWalkerAsync< BF >::CJobThread::DoJob().
|
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.
|
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.
|
protected |
Definition at line 447 of file bdb_merge.hpp.
References eBDB_Ok.
Referenced by CBDB_MergeStoreAsync< BStore >::CJobThread::DoJob().
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().
|
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().
|
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().
|
inline |
Definition at line 1072 of file bdb_split_blob.hpp.
References buf, CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::db, CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::db_ro, eBDB_Ok, CBDB_BLobFile::Fetch(), AutoPtr< X, Del >::get(), CBDB_IdBlobFile::id, lg(), CBDB_BLobFile::LobSize(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::lock, CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::lock_ro, and CBDB_RawFile::SetTransaction().
|
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().
|
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().
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.
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.
buf | pointer on buffer pointer |
buf_size | buffer size |
allow_realloc | when "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.
|
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.
|
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.
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.
blob_id | BLOB id to search for |
meta_container | Output: Container with BLOBs meta information |
id_from | Output: Range from where BLOB has been found |
id_to | Output: 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().
EBDB_ErrCode CBDB_BvStore< TBV >::FetchToBuffer | ( | CBDB_FileCursor & | cur | ) |
Fetch the next BLOB record to the resiable buffer.
Definition at line 461 of file bdb_bv_store.hpp.
References CBDB_FileCursor::eDefault, CBDB_RawFile::eReallocForbidden, CBDB_FileCursor::Fetch(), CBDB_ErrnoException::IsBufferSmall(), and CBDB_ErrnoException::IsNoMem().
Referenced by CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::LoadIdDeMux().
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().
|
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.
|
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().
|
inline |
Definition at line 1020 of file bdb_split_blob.hpp.
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().
Get BLOB location.
Definition at line 274 of file bdb_ext_blob.cpp.
References _ASSERT, BDB_THROW, CBDB_ExtBlobMap::SBlobLoc::blob_location_table, i, CBDB_ExtBlobMap::m_BlobMap, msg(), offset, ncbi::grid::netcache::search::fields::size, and NStr::UIntToString().
Referenced by CBDB_ExtBlobStore< TBV >::x_ReadCache().
|
inline |
Definition at line 178 of file bdb_ext_blob.hpp.
References CBDB_BlobMetaContainer::m_BlobMap.
Referenced by CBlobMetaDB::FetchMeta(), and CBlobMetaDB::UpdateInsert().
|
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().
|
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.
|
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.
|
inline |
Get container max size.
Definition at line 350 of file bdb_ext_blob.hpp.
References CBDB_ExtBlobStore< TBV >::m_ContainerMax.
|
inline |
coordinates:
0 - active volume number 1 - page split number
Definition at line 140 of file bdb_split_blob.hpp.
References _ASSERT, CNcbiMatrix< T >::GetCols(), CNcbiMatrix< T >::GetRows(), i, CBDB_BlobDeMux::m_RecMax, CBDB_BlobDeMux::m_RecS, CBDB_BlobDeMux::m_VolMax, CBDB_BlobDeMux::m_VolS, max(), CBDB_BlobDeMux::NewPlane(), CNcbiMatrix< T >::Resize(), and CBDB_BlobDeMuxSplit::SelectSplit().
|
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().
|
inline |
Find (demux) coordinates by BLOB id.
Definition at line 1132 of file bdb_split_blob.hpp.
References _ASSERT, eBDB_NotFound, eBDB_Ok, and lg().
Referenced by CBDB_Cache::DropBlob(), CBDB_Cache::DropBlobWithExpCheck(), CBDB_Cache::GetBlobAccess(), CBDB_Cache::GetReadStream(), CBDB_Cache::Read(), CBDB_Cache::RegisterOverflow(), CBDB_Cache::x_DropBlob(), and CBDB_Cache::x_Store().
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.
buf | destination data buffer |
size | data buffer size |
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().
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().
|
inlineprotected |
Get database pair (method opens and mounts database if necessary)
Definition at line 1431 of file bdb_split_blob.hpp.
References _ASSERT, CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::db, CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::db_ro, CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SVolume::db_vect, CBDB_RawFile::eDuplicatesDisable, CBDB_RawFile::eReadOnly, CBDB_RawFile::eReadWrite, CBDB_RawFile::eReadWriteCreate, AutoPtr< X, Del >::get(), i, lg(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::lock, and AutoPtr< X, Del >::reset().
|
inline |
Definition at line 328 of file bdb_ext_blob.hpp.
References CBDB_ExtBlobStore< TBV >::m_Env.
|
inline |
Get pointer on file environment Return NULL if no environment has been set.
Definition at line 426 of file bdb_split_blob.hpp.
|
inline |
Return the base filename of the underlying split store.
Definition at line 429 of file bdb_split_blob.hpp.
|
inline |
Get all id of all BLOBs stored.
bv | Vector of IDs stored |
Definition at line 745 of file bdb_split_blob.hpp.
References lg().
Referenced by CBDB_Cache::Purge(), and CBDB_SplitTest::Run().
|
inline |
Definition at line 302 of file bdb_blob.hpp.
References CBDB_LobFile::m_LobKey.
|
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.
|
virtual |
Get low level access to the current key buffer.
Implements IMergeVolumeWalker.
Definition at line 636 of file bdb_merge.hpp.
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.
|
inlineprotected |
Select preferred page size for the specified slice.
Definition at line 1386 of file bdb_split_blob.hpp.
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.
|
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.
|
inlinevirtual |
Get current interface async. status.
Implements IAsyncInterface.
Definition at line 131 of file bdb_merge.hpp.
References IAsyncInterface::eFailed, IAsyncInterface::eNotReady, IAsyncInterface::eReady, CBDB_MergeBlobWalkerAsync< BF >::m_Data, CBDB_MergeBlobWalkerAsync< BF >::m_Good, CBDB_MergeBlobWalkerAsync< BF >::CAsync::m_Impl, and CBDB_MergeBlobWalkerAsync< BF >::m_Lock.
Referenced by CBDB_MergeBlobWalkerAsync< BF >::CAsync::WaitReady().
|
inlinevirtual |
Get current interface async. status.
Implements IAsyncInterface.
Definition at line 242 of file bdb_merge.hpp.
References IAsyncInterface::eFailed, IAsyncInterface::eNotReady, IAsyncInterface::eReady, CBDB_MergeStoreAsync< BStore >::m_Good, CBDB_MergeStoreAsync< BStore >::CAsync::m_Impl, CBDB_MergeStoreAsync< BStore >::m_Lock, and CBDB_MergeStoreAsync< BStore >::m_Request_Buffer.
Referenced by CBDB_MergeStoreAsync< BStore >::CAsync::WaitReady().
|
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.
Uint4 CBDB_IdBlobFile::GetUid | ( | ) | const |
Definition at line 222 of file bdb_blob.cpp.
References CBDB_IdBlobFile::id.
|
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.
|
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.
|
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.
|
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.
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().
|
inlineprotected |
Init database mutex lock (mathod is protected against double init)
Definition at line 1415 of file bdb_split_blob.hpp.
References AutoPtr< X, Del >::get(), lg(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::lock, CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::lock_ro, and AutoPtr< X, Del >::reset().
|
inline |
Insert BLOB.
Definition at line 337 of file bdb_blob.hpp.
References buf, and CBDB_BLobFile::Insert().
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.
data | BLOB data |
size | data 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().
|
inline |
Definition at line 777 of file bdb_split_blob.hpp.
References data, and ncbi::grid::netcache::search::fields::size.
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.
id | insertion key |
data | buffer pointer |
size | LOB data size in bytes |
coord | out: volume - page split number |
Referenced by CBDB_SplitTest::Run().
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.
lob_id | insertion key |
data | buffer pointer |
size | data 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().
EBDB_ErrCode CBDB_MatrixBvStore< TBV, TM >::InsertSparseMatrix | ( | const TMatrix & | matr, |
const TBitVector & | descr_bv, | ||
ECompact | compact | ||
) |
EBDB_ErrCode CBDB_LobFile::InsertUpdate | ( | unsigned int | lob_id, |
const void * | data, | ||
size_t | size | ||
) |
Insert or Update BLOB data into the database.
lob_id | insertion key |
data | buffer pointer |
size | data 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().
|
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.
|
virtual |
Return TRUE when volume traverse reaches the end.
Implements IMergeVolumeWalker.
Definition at line 510 of file bdb_merge.hpp.
|
inlinevirtual |
Return TRUE if volume is in good condition (not failed)
Implements IMergeVolumeWalker.
Definition at line 68 of file bdb_merge.hpp.
|
virtual |
Return TRUE if volume is in good condition (not failed)
Implements IMergeVolumeWalker.
Definition at line 517 of file bdb_merge.hpp.
|
inlinevirtual |
Return TRUE if storage device is in good shape.
Implements IMergeStore.
Definition at line 203 of file bdb_merge.hpp.
|
virtual |
Return TRUE if storage device is in good shape.
Implements IMergeStore.
Definition at line 427 of file bdb_merge.hpp.
|
inline |
Return true if the split store has been opened.
Definition at line 1273 of file bdb_split_blob.hpp.
References true.
|
inline |
Returns true if two sets of coordinates are the same.
Definition at line 735 of file bdb_split_blob.hpp.
|
inline |
Definition at line 235 of file bdb_split_blob.hpp.
References CNcbiMatrix< T >::GetCols(), CNcbiMatrix< T >::GetRows(), i, CBDB_BlobDeMux::m_RecS, CBDB_BlobDeMux::m_VolS, and CNcbiMatrix< T >::Resize().
Referenced by CBDB_BlobDeMuxPersistent::CBDB_BlobDeMuxPersistent().
|
inlineprotected |
Definition at line 1315 of file bdb_split_blob.hpp.
References bm::BM_GAP, buf, CBDB_BvStore< TBV >::Deserialize(), CBDB_BlobStoreDict< TBV >::dim, CBDB_BlobStoreDict< TBV >::dim_idx, eBDB_Ok, CBDB_FileCursor::eGE, CBDB_BvStore< TBV >::FetchToBuffer(), CBDB_FileCursor::From, CBDB_BvStore< TBV >::GetBuffer(), CBDB_FileCursor::SetCondition(), and CIdDeMux< TBV, TBVFact >::SetProjection().
void CBDB_MatrixBvStore< TBV, TM >::LoadMatrixDescriptions | ( | TMatrixDescrList * | descr_list | ) |
Load all matrix descriptions from the store WHERE store_type = eDescriptor.
Definition at line 663 of file bdb_bv_store.hpp.
References _ASSERT, bm::BM_GAP, bm::deserialize(), CBDB_FileCursor::eCurrent, CBDB_FileCursor::eDefault, CBDB_FileCursor::eGE, CBDB_RawFile::eReallocForbidden, CBDB_FileCursor::Fetch(), CBDB_FileCursor::From, CBDB_ErrnoException::IsBufferSmall(), CBDB_ErrnoException::IsNoMem(), and CBDB_FileCursor::SetCondition().
size_t CBDB_BLobFile::LobSize | ( | ) | const |
Get LOB size. Becomes available right after successfull Fetch.
Definition at line 164 of file bdb_blob.cpp.
References CBDB_RawFile::m_DBT_Data.
Referenced by CBDB_BLobFile::BlobSize(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::BlobSize(), CBDB_BLobFile::CreateReader(), CBDB_BLobFile::CreateReaderWriter(), CBDB_BLobFile::CreateStream(), CBDB_FileDumper::Dump(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Fetch(), PrintDemoDB(), and CBDB_BLobFile::ReadRealloc().
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().
|
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().
|
inlineprotected |
Definition at line 169 of file bdb_split_blob.hpp.
References CNcbiMatrix< T >::GetCols(), CNcbiMatrix< T >::GetRows(), CBDB_BlobDeMux::m_RecS, CBDB_BlobDeMux::m_VolS, max(), and CNcbiMatrix< T >::Resize().
Referenced by CBDB_BlobDeMux::GetCoordinates().
void CBDB_ExtBlobStore< TBV >::Open | ( | const string & | storage_name, |
CBDB_RawFile::EOpenMode | open_mode | ||
) |
Open external store.
Definition at line 506 of file bdb_ext_blob.hpp.
References _ASSERT, BDB_THROW, CDir::Create(), bm::operation_deserializer< BV >::deserialize(), eBDB_Ok, CBDB_RawFile::eCreate, CBDB_RawFile::eReadOnly, CBDB_RawFile::eReadWrite, CBDB_RawFile::eReadWriteCreate, CDir::Exists(), in(), om, out(), bm::set_ASSIGN, CBDB_RawFile::SetEnv(), and trunc.
|
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().
|
inlineprotected |
Open split storage dictionary.
Definition at line 1299 of file bdb_split_blob.hpp.
|
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().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inline |
Definition at line 263 of file bdb_bv_store.hpp.
References CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::cols, CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::descr_bv, and CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::rows.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
protected |
Fetch, deserialize bvector.
Definition at line 427 of file bdb_bv_store.hpp.
References Deserialize(), and eBDB_Ok.
void CBDB_BLobStream::Read | ( | void * | buf, |
size_t | buf_size, | ||
size_t * | bytes_read | ||
) |
Read data from BLOB.
Definition at line 372 of file bdb_blob.cpp.
References BDB_CHECK, buf, CBDB_BLobStream::m_DB, CBDB_BLobStream::m_DBT_Data, CBDB_BLobStream::m_DBT_Key, and CBDB_BLobStream::m_Pos.
|
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).
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.
|
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().
|
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().
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.
void SBDB_BvStore_Id< TBV >::ReadIds | ( | TBitVector * | id_bv | ) |
Read id storage keys (id field) into bit-vector.
Definition at line 500 of file bdb_bv_store.hpp.
References _ASSERT, bm::BM_GAP, eBDB_Ok, CBDB_FileCursor::eGE, CBDB_FileCursor::Fetch(), CBDB_FileCursor::From, CBDB_ErrnoException::IsBufferSmall(), CBDB_ErrnoException::IsNoMem(), and CBDB_FileCursor::SetCondition().
|
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().
EBDB_ErrCode CBDB_BLobFile::ReadRealloc | ( | TBuffer & | buffer | ) |
Read BLOB into vector.
If BLOB does not fit, method resizes the vector to accomodate.
Definition at line 92 of file bdb_blob.cpp.
References buffer, eBDB_Ok, CBDB_RawFile::eReallocForbidden, CBDB_BLobFile::Fetch(), CBDB_ErrnoException::IsBufferSmall(), CBDB_ErrnoException::IsNoMem(), and CBDB_BLobFile::LobSize().
Referenced by CBDB_RangeMap< TBV >::LoadFreeList(), CBDB_BvStore< TBV >::ReadRealloc(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::ReadRealloc(), and CBDB_BvStore< TBV >::ReadVector().
|
protected |
Read buffer, reallocate if necessary.
Definition at line 420 of file bdb_bv_store.hpp.
References buffer, and CBDB_BLobFile::ReadRealloc().
|
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().
|
inline |
Read BLOB into vector using provided coordinates If BLOB does not fit, method resizes the vector to accomodate.
Definition at line 1149 of file bdb_split_blob.hpp.
References _ASSERT, buffer, CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::db, CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::db_ro, AutoPtr< X, Del >::get(), CBDB_IdBlobFile::id, lg(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::lock, CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::lock_ro, NULL, CBDB_BLobFile::ReadRealloc(), and CBDB_RawFile::SetTransaction().
EBDB_ErrCode CBDB_BvStore< TBV >::ReadVector | ( | TBitVector * | bv | ) |
Fetch and deserialize the *current* bitvector.
bv | Target bitvector to read from the database |
Definition at line 323 of file bdb_bv_store.hpp.
References _ASSERT.
EBDB_ErrCode CBDB_BvStore< TBV >::ReadVector | ( | TBitVector * | bv, |
bm::set_operation | op, | ||
unsigned * | count = 0 |
||
) |
Fetch and deserialize the *current* bitvector using deserialization operation.
bv | Target bitvector to read from the database |
op | Logical set operation |
count | Output for (bit)count set operations |
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.
|
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.
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.
|
inline |
Definition at line 217 of file bdb_split_blob.hpp.
References CNcbiMatrix< T >::GetCols(), CNcbiMatrix< T >::GetRows(), i, CBDB_BlobDeMux::m_RecS, and CBDB_BlobDeMux::m_VolS.
Referenced by CBDB_BlobDeMuxPersistent::~CBDB_BlobDeMuxPersistent().
|
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().
|
inlineprotected |
Store id demux (projection vectors) into the database file.
Definition at line 1357 of file bdb_split_blob.hpp.
References CBDB_File::Delete(), CBDB_BlobStoreDict< TBV >::dim, CBDB_BlobStoreDict< TBV >::dim_idx, CBDB_RawFile::eIgnoreError, CIdDeMux< TBV, TBVFact >::GetDimVector(), CIdDeMux< TBV, TBVFact >::GetN(), i, N, CBDB_RawFile::SetTransaction(), and CBDB_BvStore< TBV >::WriteVector().
|
inline |
Definition at line 157 of file bdb_bv_store.hpp.
References CBDB_File::BindKey().
|
inline |
Definition at line 80 of file bdb_ext_blob.hpp.
References CBDB_ExtBlobMap::SBlobChunkLoc::offset, and CBDB_ExtBlobMap::SBlobChunkLoc::size.
Definition at line 82 of file bdb_ext_blob.hpp.
|
inline |
Definition at line 98 of file bdb_ext_blob.hpp.
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.
|
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().
void CBDB_ExtBlobMap::Serialize | ( | CBDB_RawFile::TBuffer * | buf, |
Uint8 | buf_offset = 0 |
||
) | const |
Serialize map for storage.
buf | destination buffer |
buf_offset | start 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().
void CBDB_BlobMetaContainer::Serialize | ( | CBDB_RawFile::TBuffer * | buf, |
Uint8 | buf_offset = 0 |
||
) | const |
Definition at line 169 of file bdb_ext_blob.cpp.
References _ASSERT, buf, CBDB_BlobMetaContainer::ComputeSerializationSize(), i, CBDB_BlobMetaContainer::m_BlobMap, CBDB_BlobMetaContainer::m_Loc, CBDB_ExtBlobMap::SBlobChunkLoc::offset, s_ExtBlob_Mask_SingleChunk, CBDB_ExtBlobMap::Serialize(), and CBDB_ExtBlobMap::SBlobChunkLoc::size.
Referenced by CBlobMetaDB::UpdateInsert().
|
inline |
Definition at line 179 of file bdb_ext_blob.hpp.
References CBDB_BlobMetaContainer::m_BlobMap.
|
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.
|
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.
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.
|
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.
|
inline |
Definition at line 327 of file bdb_ext_blob.hpp.
References env, and CBDB_ExtBlobStore< TBV >::m_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().
|
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.
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.
|
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.
|
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.
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
Definition at line 466 of file bdb_ext_blob.hpp.
References CDirEntry::AddTrailingPathSeparator().
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().
|
inline |
Get Edit access to location table.
Definition at line 202 of file bdb_ext_blob.hpp.
References CBDB_BlobMetaContainer::m_Loc.
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.
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.
|
inlinevirtual |
Establish transaction association.
Reimplemented from CThreadLocalTransactional.
Definition at line 1028 of file bdb_split_blob.hpp.
References CBDB_Transaction::Add(), CBDB_Transaction::CastTransaction(), CBDB_Transaction::eFullAssociation, CBDB_Transaction::GetAssociationMode(), CBDB_Transaction::Remove(), and CThreadLocalTransactional::SetTransaction().
Referenced by CBDB_Cache::DropBlob(), CBDB_Cache::DropBlobWithExpCheck(), CBDB_Cache::GetBlobAccess(), CBDB_Cache::GetReadStream(), CBDB_Cache::GetSizeEx(), CBDB_Cache::KillBlob(), CBDB_Cache::Purge(), CBDB_Cache::Read(), CBDB_Cache::RegisterOverflow(), CBDB_Cache::Remove(), CBDB_Cache::x_Store(), and CBDB_Cache::x_TruncateDB().
|
inline |
Definition at line 418 of file bdb_split_blob.hpp.
Referenced by CBDB_SplitTest::LoadTestSet().
|
inline |
Number of BLOBs registered in the map.
Definition at line 126 of file bdb_ext_blob.hpp.
References CBDB_ExtBlobMap::m_BlobMap.
|
inline |
Definition at line 255 of file bdb_bv_store.hpp.
References CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::descr_bv.
|
inline |
Definition at line 252 of file bdb_bv_store.hpp.
|
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.
|
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.
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().
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.
|
inline |
Sync the underlying stores.
Definition at line 1053 of file bdb_split_blob.hpp.
References CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::db, CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SVolume::db_vect, and i.
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().
|
inline |
Insert or update BLOB.
Definition at line 342 of file bdb_blob.hpp.
References buf, and CBDB_BLobFile::UpdateInsert().
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.
data | BLOB data |
size | data 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().
|
inline |
Update or insert BLOB using old coordinates.
Definition at line 871 of file bdb_split_blob.hpp.
References _ASSERT, data, CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::db, CBDB_RawFile::eThrowOnError, lg(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::lock, and ncbi::grid::netcache::search::fields::size.
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 void * | data, | ||
size_t | size, | ||
unsigned * | coord | ||
) |
Update or insert BLOB.
Referenced by CBDB_SplitTest::LoadSplitStore(), CBDB_SplitTest::Run(), and CBDB_Cache::x_Store().
|
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().
|
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().
void CBDB_BLobStream::Write | ( | const void * | buf, |
size_t | buf_size | ||
) |
Write data into BLOB.
Definition at line 393 of file bdb_blob.cpp.
References BDB_CHECK, buf, CBDB_BLobStream::m_DB, CBDB_BLobStream::m_DBT_Data, CBDB_BLobStream::m_DBT_Key, CBDB_BLobStream::m_Pos, and CBDB_BLobStream::m_Txn.
|
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").
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.
EBDB_ErrCode CBDB_BvStore< TBV >::WriteVector | ( | const TBitVector & | bv, |
ECompact | compact | ||
) |
Save a bitvector to the store.
bv | Bitvector to store |
compact | Compression option |
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().
|
private |
Compute serialization size and effective number of bits used for offset/size storage (16, 32, 64)
bits_used | Number of bits used to represent offses & sizes Valid values: 16, 32, 64 |
is_single_chunk | returned 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().
|
private |
Definition at line 431 of file bdb_blob.cpp.
References _ASSERT, BDB_CHECK, data, eBDB_KeyDup, eBDB_Ok, CBDB_RawFile::FileName(), CByteSwap::GetInt4(), int, CBDB_RawFile::IsByteSwapped(), 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 CBDB_LobFile::Insert(), and CBDB_LobFile::InsertUpdate().
|
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.
|
inline |
Definition at line 202 of file bdb_split_blob.hpp.
References ERR_POST_XX, Error(), CBDB_BlobDeMuxPersistent::m_Path, CBDB_BlobDeMuxPersistent::Save(), and CException::what().
CBDB_BlobReaderWriter::~CBDB_BlobReaderWriter | ( | ) |
Definition at line 255 of file bdb_blob.cpp.
References CBDB_File::DestroyDBT_Clone(), CBDB_BlobReaderWriter::m_DBT_Data, and CBDB_BlobReaderWriter::m_DBT_Key.
|
inline |
Definition at line 684 of file bdb_split_blob.hpp.
References CBDB_RawFile::eReadOnly, ERR_POST_XX, and Error().
CBDB_BLobStream::~CBDB_BLobStream | ( | ) |
Definition at line 356 of file bdb_blob.cpp.
References CBDB_File::DestroyDBT_Clone(), CBDB_BLobStream::m_DBT_Data, and CBDB_BLobStream::m_DBT_Key.
CBDB_BvStore< TBV >::~CBDB_BvStore |
Definition at line 315 of file bdb_bv_store.hpp.
References bm::aligned_free().
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< TBV, TM >::~CBDB_MatrixBvStore |
Definition at line 627 of file bdb_bv_store.hpp.
|
virtual |
Definition at line 311 of file bdb_merge.hpp.
|
virtual |
Definition at line 505 of file bdb_merge.hpp.
|
virtual |
Definition at line 364 of file bdb_merge.hpp.
|
virtual |
Definition at line 407 of file bdb_merge.hpp.
|
inline |
Definition at line 254 of file bdb_bv_store.hpp.
References CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::descr_bv.
Uint4 CBDB_ExtBlobMap::SBlobLoc::blob_id |
Definition at line 95 of file bdb_ext_blob.hpp.
Referenced by CBDB_ExtBlobMap::Deserialize(), CBDB_ExtBlobMap::Serialize(), and CBDB_ExtBlobMap::x_ComputeSerializationSize().
TBlobChunkVec CBDB_ExtBlobMap::SBlobLoc::blob_location_table |
Definition at line 96 of file bdb_ext_blob.hpp.
Referenced by CBDB_ExtBlobMap::Deserialize(), CBDB_ExtBlobMap::GetBlobLoc(), CBDB_ExtBlobMap::SBlobLoc::SBlobLoc(), CBDB_ExtBlobMap::Serialize(), and CBDB_ExtBlobMap::x_ComputeSerializationSize().
unsigned CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::cols |
Definition at line 248 of file bdb_bv_store.hpp.
Referenced by CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::operator=().
AutoPtr<TBlobFile> CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::db |
database file
Definition at line 373 of file bdb_split_blob.hpp.
Referenced by CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::BlobSize(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::CreateReader(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Delete(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Fetch(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::GetDb(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::ReadRealloc(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Sync(), and CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::UpdateInsert().
AutoPtr<TBlobFile> CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::db_ro |
database file for reads
Definition at line 375 of file bdb_split_blob.hpp.
Referenced by CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::BlobSize(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::CreateReader(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Fetch(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::GetDb(), and CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::ReadRealloc().
vector< CRef<SLockedDb> > CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SVolume::db_vect |
Definition at line 383 of file bdb_split_blob.hpp.
Referenced by CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::GetDb(), and CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Sync().
TBitVector* CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::descr_bv |
Definition at line 250 of file bdb_bv_store.hpp.
Referenced by CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::operator=(), CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::SMatrixDescr(), and CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::~SMatrixDescr().
CBDB_FieldUint4 CBDB_BlobStoreDict< TBV >::dim |
dimention
Definition at line 70 of file bdb_split_blob.hpp.
Referenced by CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::LoadIdDeMux(), and CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SaveIdDeMux().
CBDB_FieldUint4 CBDB_BlobStoreDict< TBV >::dim_idx |
projection index
Definition at line 71 of file bdb_split_blob.hpp.
Referenced by CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::LoadIdDeMux(), and CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SaveIdDeMux().
CBDB_FieldUint4 CBDB_IdBlobFile::id |
ID key.
Definition at line 156 of file bdb_blob.hpp.
Referenced by CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::BlobSize(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::CreateReader(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Fetch(), CBDB_IdBlobFile::GetUid(), and CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::ReadRealloc().
CBDB_FieldUint4 SBDB_BvStore_Id< TBV >::id |
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().
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().
AutoPtr<TLock> CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::lock |
db lock
Definition at line 374 of file bdb_split_blob.hpp.
Referenced by CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::BlobSize(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::CreateReader(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Delete(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Fetch(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::GetDb(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::InitDbMutex(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::ReadRealloc(), and CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::UpdateInsert().
AutoPtr<TLock> CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::SLockedDb::lock_ro |
db lock for reads
Definition at line 376 of file bdb_split_blob.hpp.
Referenced by CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::BlobSize(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::CreateReader(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::Fetch(), CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::InitDbMutex(), and CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::ReadRealloc().
|
protected |
True when all proj.dbs are pre-open.
Definition at line 636 of file bdb_split_blob.hpp.
|
protected |
Definition at line 185 of file bdb_merge.hpp.
Referenced by CBDB_MergeBlobWalkerAsync< BF >::QueryIAsync().
|
protected |
Definition at line 289 of file bdb_merge.hpp.
Referenced by CBDB_MergeStoreAsync< BStore >::QueryIAsync().
|
protected |
Blob attributes container.
Definition at line 397 of file bdb_ext_blob.hpp.
|
protected |
Definition at line 386 of file bdb_ext_blob.hpp.
|
protected |
Blob container.
Definition at line 396 of file bdb_ext_blob.hpp.
Referenced by CBDB_ExtBlobStore< TBV >::CBDB_ExtBlobStore().
|
protected |
Definition at line 84 of file bdb_merge.hpp.
|
protected |
Definition at line 175 of file bdb_merge.hpp.
|
protected |
List of BLOB ids stored.
Definition at line 380 of file bdb_ext_blob.hpp.
|
private |
Definition at line 162 of file bdb_ext_blob.hpp.
Referenced by CBDB_ExtBlobMap::Add(), CBDB_ExtBlobMap::Deserialize(), CBDB_ExtBlobMap::GetBlobIdRange(), CBDB_ExtBlobMap::GetBlobLoc(), CBDB_ExtBlobMap::HasBlob(), CBDB_ExtBlobMap::Serialize(), CBDB_ExtBlobMap::Size(), and CBDB_ExtBlobMap::x_ComputeSerializationSize().
|
private |
Blob attributes (super BLOB content)
Definition at line 226 of file bdb_ext_blob.hpp.
Referenced by CBDB_BlobMetaContainer::ComputeSerializationSize(), CBDB_BlobMetaContainer::Deserialize(), CBDB_BlobMetaContainer::GetBlobMap(), CBDB_BlobMetaContainer::Serialize(), and CBDB_BlobMetaContainer::SetBlobMap().
|
private |
Definition at line 205 of file bdb_blob.hpp.
Referenced by CBDB_BlobReaderWriter::PendingCount().
|
private |
Definition at line 246 of file bdb_blob.hpp.
Referenced by CBDB_BLobStream::PendingCount().
|
private |
Definition at line 208 of file bdb_merge.hpp.
|
protected |
Definition at line 285 of file bdb_merge.hpp.
|
protected |
temporary serialization buffer
Definition at line 136 of file bdb_bv_store.hpp.
Referenced by CBDB_BvStore< TBV >::GetBuffer().
|
protected |
Definition at line 633 of file bdb_split_blob.hpp.
|
protected |
Definition at line 390 of file bdb_ext_blob.hpp.
|
protected |
Record compressor.
Definition at line 389 of file bdb_ext_blob.hpp.
|
protected |
Max size of a BLOB container.
Definition at line 395 of file bdb_ext_blob.hpp.
Referenced by CBDB_ExtBlobStore< TBV >::CBDB_ExtBlobStore(), CBDB_ExtBlobStore< TBV >::GetContainerMaxSize(), and CBDB_ExtBlobStore< TBV >::SetContainerMaxSize().
|
protected |
Lock used to sync. muli-db transactions to avoid deadlocks.
Definition at line 642 of file bdb_split_blob.hpp.
|
private |
Definition at line 299 of file bdb_split_blob.hpp.
Referenced by CBDB_BlobDeMux_RoundRobin::GetCoordinates().
|
protected |
Definition at line 85 of file bdb_merge.hpp.
Referenced by CBDB_MergeBlobWalker< BF >::Close().
|
protected |
Definition at line 176 of file bdb_merge.hpp.
|
protected |
Definition at line 88 of file bdb_merge.hpp.
Referenced by CBDB_MergeBlobWalker< BF >::GetBufferPtr().
|
protected |
Definition at line 180 of file bdb_merge.hpp.
Referenced by CBDB_MergeBlobWalkerAsync< BF >::CAsync::GetStatus().
|
protected |
Definition at line 89 of file bdb_merge.hpp.
Referenced by CBDB_MergeBlobWalker< BF >::GetBufferPtr().
|
protected |
Definition at line 181 of file bdb_merge.hpp.
|
private |
Definition at line 200 of file bdb_blob.hpp.
Referenced by CBDB_BlobReaderWriter::Read(), and CBDB_BlobReaderWriter::Write().
|
private |
Definition at line 241 of file bdb_blob.hpp.
Referenced by CBDB_BLobStream::Read(), and CBDB_BLobStream::Write().
|
protected |
Definition at line 632 of file bdb_split_blob.hpp.
|
private |
Definition at line 202 of file bdb_blob.hpp.
Referenced by CBDB_BlobReaderWriter::CBDB_BlobReaderWriter(), CBDB_BlobReaderWriter::Read(), CBDB_BlobReaderWriter::Write(), and CBDB_BlobReaderWriter::~CBDB_BlobReaderWriter().
|
private |
Definition at line 243 of file bdb_blob.hpp.
Referenced by CBDB_BLobStream::CBDB_BLobStream(), CBDB_BLobStream::Read(), CBDB_BLobStream::Write(), and CBDB_BLobStream::~CBDB_BLobStream().
|
private |
Definition at line 201 of file bdb_blob.hpp.
Referenced by CBDB_BlobReaderWriter::Read(), CBDB_BlobReaderWriter::Write(), and CBDB_BlobReaderWriter::~CBDB_BlobReaderWriter().
|
private |
Definition at line 242 of file bdb_blob.hpp.
Referenced by CBDB_BLobStream::Read(), CBDB_BLobStream::Write(), and CBDB_BLobStream::~CBDB_BLobStream().
|
protected |
Split dictionary(id demux file)
Definition at line 618 of file bdb_split_blob.hpp.
|
mutableprotected |
id demux file locker
Definition at line 619 of file bdb_split_blob.hpp.
|
protected |
Definition at line 385 of file bdb_ext_blob.hpp.
Referenced by CBDB_ExtBlobStore< TBV >::GetEnv(), and CBDB_ExtBlobStore< TBV >::SetEnv().
|
protected |
Definition at line 617 of file bdb_split_blob.hpp.
Referenced by CBDB_BlobSplitStore< BV, CBDB_BlobDeMuxPersistent, CFastMutex >::GetEnv(), and CBDB_BlobSplitStore< BV, CBDB_BlobDeMuxPersistent, CFastMutex >::SetEnv().
|
protected |
Definition at line 87 of file bdb_merge.hpp.
Referenced by CBDB_MergeBlobWalker< BF >::IsEof().
|
protected |
Definition at line 178 of file bdb_merge.hpp.
|
protected |
Definition at line 387 of file bdb_ext_blob.hpp.
|
protected |
Definition at line 86 of file bdb_merge.hpp.
|
protected |
Definition at line 177 of file bdb_merge.hpp.
|
protected |
Definition at line 179 of file bdb_merge.hpp.
Referenced by CBDB_MergeBlobWalkerAsync< BF >::CAsync::GetStatus().
|
protected |
Definition at line 284 of file bdb_merge.hpp.
Referenced by CBDB_MergeStoreAsync< BStore >::CAsync::GetStatus().
|
protected |
Id to coordinates mapper.
Definition at line 621 of file bdb_split_blob.hpp.
|
mutableprotected |
Definition at line 622 of file bdb_split_blob.hpp.
|
private |
Definition at line 153 of file bdb_merge.hpp.
Referenced by CBDB_MergeBlobWalkerAsync< BF >::CAsync::GetStatus().
|
protected |
Definition at line 167 of file bdb_merge.hpp.
Referenced by CBDB_MergeBlobWalkerAsync< BF >::CJobThread::DoJob().
|
private |
Definition at line 264 of file bdb_merge.hpp.
Referenced by CBDB_MergeStoreAsync< BStore >::CAsync::GetStatus().
|
protected |
Definition at line 278 of file bdb_merge.hpp.
Referenced by CBDB_MergeStoreAsync< BStore >::CJobThread::DoJob().
|
protected |
Definition at line 184 of file bdb_merge.hpp.
Referenced by CBDB_MergeBlobWalkerAsync< BF >::CBDB_MergeBlobWalkerAsync().
|
protected |
Definition at line 286 of file bdb_merge.hpp.
Referenced by CBDB_MergeStoreAsync< BStore >::CBDB_MergeStoreAsync().
|
protected |
Definition at line 90 of file bdb_merge.hpp.
Referenced by CBDB_MergeBlobWalker< BF >::GetUint4Key().
|
protected |
Definition at line 182 of file bdb_merge.hpp.
|
protected |
Definition at line 91 of file bdb_merge.hpp.
Referenced by CBDB_MergeBlobWalker< BF >::GetKeyPtr().
|
protected |
Definition at line 183 of file bdb_merge.hpp.
|
protected |
Recently read id interval.
Definition at line 399 of file bdb_ext_blob.hpp.
Referenced by CBDB_ExtBlobStore< TBV >::CBDB_ExtBlobStore().
|
protected |
Last operation status.
Definition at line 398 of file bdb_ext_blob.hpp.
|
protected |
Recently read id interval.
Definition at line 400 of file bdb_ext_blob.hpp.
Referenced by CBDB_ExtBlobStore< TBV >::CBDB_ExtBlobStore().
|
private |
Definition at line 310 of file bdb_blob.hpp.
Referenced by CBDB_LobFile::CBDB_LobFile(), CBDB_LobFile::Fetch(), CBDB_LobFile::GetData(), CBDB_LobFile::GetKey(), and CBDB_LobFile::x_Put().
|
private |
Super BLOB location vector.
Definition at line 224 of file bdb_ext_blob.hpp.
Referenced by CBDB_BlobMetaContainer::ComputeSerializationSize(), CBDB_BlobMetaContainer::Deserialize(), CBDB_BlobMetaContainer::GetLoc(), CBDB_BlobMetaContainer::GetSuperLoc(), CBDB_BlobMetaContainer::Serialize(), CBDB_BlobMetaContainer::SetLoc(), and CBDB_BlobMetaContainer::SetSuperLoc().
|
mutableprotected |
Definition at line 174 of file bdb_merge.hpp.
Referenced by CBDB_MergeBlobWalkerAsync< BF >::CAsync::GetStatus().
|
mutableprotected |
Definition at line 283 of file bdb_merge.hpp.
Referenced by CBDB_MergeStoreAsync< BStore >::CAsync::GetStatus().
|
protected |
Obj to coordinates mapper.
Definition at line 624 of file bdb_split_blob.hpp.
|
protected |
Definition at line 625 of file bdb_split_blob.hpp.
|
protected |
Definition at line 384 of file bdb_ext_blob.hpp.
|
protected |
Definition at line 631 of file bdb_split_blob.hpp.
|
protected |
Definition at line 615 of file bdb_split_blob.hpp.
Referenced by CBDB_BlobSplitStore< TBV, TObjDeMux, TL >::CBDB_BlobSplitStore().
|
private |
Definition at line 257 of file bdb_split_blob.hpp.
Referenced by CBDB_BlobDeMuxPersistent::CBDB_BlobDeMuxPersistent(), and CBDB_BlobDeMuxPersistent::~CBDB_BlobDeMuxPersistent().
|
private |
Definition at line 204 of file bdb_blob.hpp.
Referenced by CBDB_BlobReaderWriter::PendingCount(), CBDB_BlobReaderWriter::Read(), and CBDB_BlobReaderWriter::Write().
|
private |
Definition at line 245 of file bdb_blob.hpp.
Referenced by CBDB_BLobStream::PendingCount(), CBDB_BLobStream::Read(), and CBDB_BLobStream::Write().
|
protected |
Maximum number of records.
Definition at line 181 of file bdb_split_blob.hpp.
Referenced by CBDB_BlobDeMux::GetCoordinates().
|
protected |
Volumes record counts.
Definition at line 178 of file bdb_split_blob.hpp.
Referenced by CBDB_BlobDeMux::GetCoordinates(), CBDB_BlobDeMuxPersistent::Load(), CBDB_BlobDeMux::NewPlane(), and CBDB_BlobDeMuxPersistent::Save().
|
protected |
Definition at line 287 of file bdb_merge.hpp.
|
protected |
Definition at line 288 of file bdb_merge.hpp.
Referenced by CBDB_MergeStoreAsync< BStore >::CAsync::GetStatus().
|
protected |
Flag carrying reverse split status.
Definition at line 639 of file bdb_split_blob.hpp.
|
protected |
temp block for bitvector serialization
Definition at line 140 of file bdb_bv_store.hpp.
|
protected |
temp block for bitvector serialization
Definition at line 382 of file bdb_ext_blob.hpp.
Referenced by CBDB_ExtBlobStore< TBV >::CBDB_ExtBlobStore().
|
protected |
Definition at line 630 of file bdb_split_blob.hpp.
Referenced by CBDB_BlobSplitStore< BV, CBDB_BlobDeMuxPersistent, CFastMutex >::GetFileName().
|
protected |
Definition at line 393 of file bdb_ext_blob.hpp.
|
protected |
Definition at line 392 of file bdb_ext_blob.hpp.
|
protected |
temporary bitset
Definition at line 138 of file bdb_bv_store.hpp.
|
protected |
Definition at line 613 of file bdb_split_blob.hpp.
|
private |
Definition at line 203 of file bdb_blob.hpp.
Referenced by CBDB_BlobReaderWriter::SetTransaction(), and CBDB_BlobReaderWriter::Write().
|
private |
Definition at line 244 of file bdb_blob.hpp.
Referenced by CBDB_BLobStream::SetTransaction(), and CBDB_BLobStream::Write().
|
protected |
Volume max size.
Definition at line 180 of file bdb_split_blob.hpp.
Referenced by CBDB_BlobDeMux::GetCoordinates().
|
protected |
Volumes BLOB sizes.
Definition at line 177 of file bdb_split_blob.hpp.
Referenced by CBDB_BlobDeMux::GetCoordinates(), CBDB_BlobDeMuxPersistent::Load(), CBDB_BlobDeMux::NewPlane(), and CBDB_BlobDeMuxPersistent::Save().
|
protected |
Definition at line 616 of file bdb_split_blob.hpp.
Referenced by CBDB_BlobSplitStore< BV, CBDB_BlobDeMuxPersistent, CFastMutex >::SetVolumeCacheSize().
|
private |
Definition at line 298 of file bdb_split_blob.hpp.
Referenced by CBDB_BlobDeMux_RoundRobin::GetCoordinates(), and CBDB_BlobDeMux_RoundRobin::GetVolumeSize().
|
protected |
Volumes.
Definition at line 627 of file bdb_split_blob.hpp.
|
mutableprotected |
Volumes locker.
Definition at line 628 of file bdb_split_blob.hpp.
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().
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().
Uint8 CBDB_ExtBlobMap::SBlobChunkLoc::offset |
chunk offset
Definition at line 77 of file bdb_ext_blob.hpp.
Referenced by CBDB_BlobMetaContainer::Deserialize(), CBDB_ExtBlobMap::SBlobChunkLoc::SBlobChunkLoc(), and CBDB_BlobMetaContainer::Serialize().
unsigned CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::rows |
Definition at line 249 of file bdb_bv_store.hpp.
Referenced by CBDB_MatrixBvStore< TBV, TM >::SMatrixDescr::operator=().
Uint8 CBDB_ExtBlobMap::SBlobChunkLoc::size |
chunk size
Definition at line 78 of file bdb_ext_blob.hpp.
Referenced by CBDB_BlobMetaContainer::Deserialize(), CBDB_ExtBlobMap::SBlobChunkLoc::SBlobChunkLoc(), and CBDB_BlobMetaContainer::Serialize().
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().
CBDB_RawFile::TBuffer CBDB_ExtBlobStore< TBV >::TBuffer |
Definition at line 310 of file bdb_ext_blob.hpp.
|
friend |
Definition at line 198 of file bdb_blob.hpp.
|
friend |
Definition at line 248 of file bdb_blob.hpp.
|
friend |
Definition at line 169 of file bdb_merge.hpp.
|
friend |
Definition at line 280 of file bdb_merge.hpp.
|
friend |
Definition at line 170 of file bdb_merge.hpp.
|
friend |
Definition at line 281 of file bdb_merge.hpp.