for_new_version);
70 const string&
GetKey(
void);
197 static void PutFailed(
const string& blob_key);
214 const string& password,
327 inline const string&
365 inline const string&
435 if(create_time <
prev) {
439create_time =
prev+ 1;
485 intd_time =
max(dead_time, expire + 40);
virtual ~CCurVerReader(void)
CNCBlobVerManager * m_VerMgr
virtual void ExecuteSlice(TSrvThreadNum thr_num)
This is the main method to do all work this task should do.
CCurVerReader(CNCBlobVerManager *mgr)
Uint8 GetNewBlobSize(void) const
static string GetPurgeData(char separator='\n')
ENCAccessType m_AccessType
Type of access requested for the blob.
void * GetWriteMemPtr(void)
Uint8 GetCurBlobSize(void) const
Get size of the blob.
ENCAccessType GetAccessType(void) const
Get type of access this holder was created for.
virtual ~CNCBlobAccessor(void)
void RequestMetaInfo(CSrvTask *owner)
Uint2 GetTimeBucket(void) const
void SetNewVerExpire(int dead_time)
const string & GetBlobKey(void) const
Get key of the blob.
static bool Purge(const CNCBlobKeyLight &nc_key, Uint8 when)
void MoveReadPos(Uint4 move_size)
bool IsMetaInfoReady(void)
static bool HasPutSucceeded(const string &blob_key)
static void SetFailedWriteCount(int failed_write)
size_t GetWriteMemSize(void)
void SetCurBlobExpire(int expire, int dead_time=0)
static int GetFailedWriteCount(void)
unsigned int GetCurBlobTTL(void) const
void SetCurVerExpire(int dead_time)
unsigned int GetCurVersionTTL(void) const
void SetPassword(CTempString password)
static void PutFailed(const string &blob_key)
bool IsCurBlobDead(void) const
CNCBlobVerManager * m_VerManager
void SetNewBlobExpire(int expire, int dead_time=0)
int GetCurBlobDeadTime(void) const
bool IsPurged(const CNCBlobKeyLight &nc_key) const
bool ReplaceBlobInfo(const SNCBlobVerData &new_info)
CSrvRef< SNCBlobVerData > m_CurData
void SetVersionTTL(int ttl)
void x_CreateNewData(void)
static bool UpdatePurgeData(const string &data, char separator='\n')
Uint4 GetCurCreateId(void) const
void SetBlobTTL(unsigned int ttl)
Set blob's timeout after last access before it will be deleted.
unsigned int GetNewVersionTTL(void) const
string m_Password
Password that was used for access to the blob.
CSrvRef< SNCBlobVerData > m_NewData
CNCBlobAccessor(const CNCBlobAccessor &)
SNCChunkMaps * m_ChunkMaps
void Prepare(const string &key, const string &password, Uint2 time_bucket, ENCAccessType access_type)
Prepare lock for the blob identified by key, subkey and version.
Uint8 GetCurBlobCreateTime(void) const
unsigned int GetNewBlobTTL(void) const
Uint8 GetCurCreateServer(void) const
void x_DelCorruptedVersion(void)
bool IsAuthorized(void) const
Check if password provided for accessing the blob was correct.
void SetCreateServer(Uint8 create_server, Uint4 create_id)
void MoveWritePos(Uint4 move_size)
int GetCurBlobVersion(void) const
Uint4 GetReadMemSize(void)
static Uint8 GetPurgeCount()
bool IsCurVerExpired(void) const
Uint8 GetNewCreateServer(void) const
Uint4 m_ChunkPos
Current position of reading/writing inside blob's chunk.
int GetCurBlobExpire(void) const
string GetCurPassword(void) const
void SetPosition(Uint8 pos)
Initially set current position in the blob to start reading from.
int GetCurVerExpire(void) const
bool HasError(void) const
static void PutSucceeded(const string &blob_key)
void SetBlobVersion(int ver)
Uint8 GetValidServer(void) const
CNCBlobAccessor(void)
Create holder of blob lock bound to the given NetCache storage.
Uint8 GetSizeRead(void) const
void UpdateMetaInfo(Uint8 upd_server, Uint8 upd_time)
void SetBlobCreateTime(Uint8 create_time)
const void * GetReadMemPtr(void)
bool IsBlobExists(void) const
Check if blob exists.
CNCBlobAccessor & operator=(const CNCBlobAccessor &)
virtual void ExecuteSlice(TSrvThreadNum thr_num)
This is the main method to do all work this task should do.
Uint8 GetNewBlobCreateTime(void) const
bool IsCurBlobExpired(void) const
Check if blob is already expired but not yet deleted by GC.
void Release(void)
Release blob lock.
void Initialize(SNCCacheData *cache_data)
Initialize and acquire the lock.
int GetNewBlobExpire(void) const
Blob storage for NetCache.
virtual ~CNCBlobVerManager(void)
CNCBlobVerManager(const CNCBlobVerManager &)
void x_DeleteCurVersion(void)
const string & GetKey(void)
SNCCacheData * GetCacheData(void)
void ObtainReference(void)
void RequestCurVersion(CSrvTransConsumer *consumer)
void DeleteVersion(const SNCBlobVerData *ver_data)
CSrvRef< SNCBlobVerData > CreateNewVersion(void)
static CNCBlobVerManager * Get(Uint2 time_bucket, const string &key, SNCCacheData *cache_data, bool for_new_version)
CCurVerReader * m_CurVerReader
void DeadTimeChanged(SNCBlobVerData *ver_data)
SNCCacheData * m_CacheData
void RequestMemRelease(void)
virtual void ExecuteSlice(TSrvThreadNum thr_num)
This is the main method to do all work this task should do.
void DeleteDeadVersion(int cut_time)
CSrvRef< SNCBlobVerData > GetCurVersion(void)
void FinalizeWriting(SNCBlobVerData *ver_data)
CNCBlobVerManager & operator=(const CNCBlobVerManager &)
virtual void DeleteThis(void)
Virtual method "deleting" this object.
CSrvRef< SNCBlobVerData > m_CurVersion
Class to derive from to use RCU mechanism.
Main working entity in TaskServer.
Class incorporating convenient methods to work with struct timespec.
static int CurSecs(void)
Current time in seconds since epoch (time_t).
static CSrvTime Current(void)
Exact current time with precision up to nanoseconds.
Uint8 AsUSec(void) const
Converts object's value to microseconds since epoch.
Consumer of notification about transition completeness in CSrvTransitionTask.
Special task that has some information to give to its consumers but first this information should be ...
void RequestTransition(CSrvTransConsumer *consumer)
Requests task's state transition with the provided consumer to be notified when transition is finishe...
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
CWBMemDeleter(char *mem, Uint4 mem_size)
virtual void ExecuteRCU(void)
Method implementing RCU job that was scheduled earlier by CallRCU().
virtual ~CWBMemDeleter(void)
static void Initialize(void)
virtual void ExecuteSlice(TSrvThreadNum thr_num)
This is the main method to do all work this task should do.
static void RecordNotifyUpdateBlob(Uint8 update_received)
static void StartSyncBlob(Uint8 create_time)
static void ReadState(SNCStateStat &state)
static void ResetStatCounters(void)
virtual ~CWriteBackControl(void)
static void AnotherServerMain(void)
static DLIST_TYPE *DLIST_NAME() prev(DLIST_LIST_TYPE *list, DLIST_TYPE *item)
bool NotNull(void) const THROWS_NONE
Check if pointer is not null â same effect as NotEmpty().
uint32_t Uint4
4-byte (32-bit) unsigned integer
uint16_t Uint2
2-byte (16-bit) unsigned integer
uint64_t Uint8
8-byte (64-bit) unsigned integer
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
const struct ncbi::grid::netcache::search::fields::KEY key
void SetWBHardSizeLimit(Uint8 limit)
void SetWBSoftSizeLimit(Uint8 limit)
void SetWBWriteTimeout(int timeout1, int timeout2)
Uint8 GetWBSoftSizeLimit(void)
int GetWBWriteTimeout(void)
Uint8 GetWBHardSizeLimit(void)
void SetWBInitialSyncComplete(void)
int GetWBFailedWriteDelay(void)
void SetWBFailedWriteDelay(int delay)
ENCAccessType
Type of access to NetCache blob.
Full information about NetCache blob (excluding key)
Uint2 TSrvThreadNum
Type for thread number in TaskServer.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4