ROOT » PROOF » PROOFPLAYER » TVirtualPacketizer

class TVirtualPacketizer: public TObject


TVirtualPacketizer

The packetizer is a load balancing object created for each query.
It generates packets to be processed on PROOF worker servers.
A packet is an event range (begin entry and number of entries) or
object range (first object and number of objects) in a TTree
(entries) or a directory (objects) in a file.
Packets are generated taking into account the performance of the
remote machine, the time it took to process a previous packet on
the remote machine, the locality of the database files, etc.

TVirtualPacketizer includes common parts of PROOF packetizers.
Look in subclasses for details.
The default packetizer is TPacketizerAdaptive.
To use an alternative one, for instance - the TPacketizer, call:
proof->SetParameter("PROOF_Packetizer", "TPacketizer");


Function Members (Methods)

public:
virtual~TVirtualPacketizer()
voidTObject::AbstractMethod(const char* method) const
virtual Int_tAddProcessed(TSlave*, TProofProgressStatus*, Double_t, TList**)
virtual Int_tAddWorkers(TList* workers)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual Int_tAssignWork(TDSet*, Long64_t, Long64_t)
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Int_tGetActiveWorkers()
Long64_tGetBytesRead() const
TList*GetConfigParams(Bool_t steal = kFALSE)
Double_tGetCumProcTime() const
virtual Float_tGetCurrentRate(Bool_t& all)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Long64_tGetEntriesProcessed() const
virtual Int_tGetEstEntriesProcessed(Float_t, Long64_t& ent, Long64_t& bytes, Long64_t& calls)
TList*GetFailedPackets()
virtual const char*TObject::GetIconName() const
Float_tGetInitTime() const
virtual const char*TObject::GetName() const
virtual TDSetElement*GetNextPacket(TSlave* sl, TMessage* r)
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Float_tGetProcTime() const
TNtuple*GetProgressPerf(Bool_t steal = kFALSE)
Long64_tGetReadCalls() const
TMap*GetSlaveStats() const
TProofProgressStatus*GetStatus()
virtual const char*TObject::GetTitle() const
Long64_tGetTotalEntries() const
virtual UInt_tTObject::GetUniqueID() const
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tIsValid() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
virtual voidMarkBad(TSlave*, TProofProgressStatus*, TList**)
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
voidTObject::operator delete(void* ptr)
voidTObject::operator delete(void* ptr, void* vp)
voidTObject::operator delete[](void* ptr)
voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetFailedPackets(TList* list)
virtual voidSetInitTime()
static voidTObject::SetObjectStat(Bool_t stat)
voidSetProgressStatus(TProofProgressStatus* st)
voidSetTotalEntries(Long64_t ent)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp) const
virtual voidStopProcess(Bool_t abort, Bool_t stoptimer = kFALSE)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
TDSetElement*CreateNewPacket(TDSetElement* base, Long64_t first, Long64_t num)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
Long64_tGetEntries(Bool_t tree, TDSetElement* e)
virtual Bool_tHandleTimer(TTimer* timer)
voidTObject::MakeZombie()
voidoperator=(const TVirtualPacketizer&)
TVirtualPacketizer(const TVirtualPacketizer&)
TVirtualPacketizer(TList* input, TProofProgressStatus* st = 0)

Data Members

public:
static TObject::<anonymous>TObject::kBitMask
static TObject::EStatusBitsTObject::kCanDelete
static TObject::EStatusBitsTObject::kCannotPick
static TObject::EStatusBitsTObject::kHasUUID
static TObject::EStatusBitsTObject::kInvalidObject
static TVirtualPacketizer::EStatusBitskIsDone
static TVirtualPacketizer::EStatusBitskIsInitializing
static TObject::<anonymous>TObject::kIsOnHeap
static TObject::EStatusBitsTObject::kIsReferenced
static TVirtualPacketizer::EStatusBitskIsTree
static TObject::EStatusBitsTObject::kMustCleanup
static TObject::EStatusBitsTObject::kNoContextMenu
static TObject::<anonymous>TObject::kNotDeleted
static TObject::EStatusBitsTObject::kObjInCanvas
static TObject::<anonymous>TObject::kOverwrite
static TObject::<anonymous>TObject::kSingleKey
static TObject::<anonymous>TObject::kWriteDelete
static TObject::<anonymous>TObject::kZombie
protected:
Bool_tfAWLastFillWhether to fill the last measurement
Int_tfActWrksLastActive workers at fProcTimeLast
Long_tfCircNCircularity
TNtupleD*fCircProgKeeps circular info for "instantenous"
TList*fConfigParamsList of configuration parameters
TStringfDataSetName of the dataset being processed (for dataset-driven runs)
Float_tfEffSessLastNumber of effective sessions at fProcTimeLast
Float_tfEvtRateLastEvt rate at fProcTimeLast
TList*fFailedPacketsa list of packets that failed while processing
Float_tfInitTimetime before processing
Float_tfMBsReadLastMBs read at fProcTimeLast
Double_tfMaxPacketTimemaximum packet time
Double_tfMinPacketTimeminimum packet time
Float_tfProcTimetime since start of processing
Float_tfProcTimeLastTime of the last measurement
TTimer*fProgressprogress updates timer
TNtuple*fProgressPerf{Active workers, evt rate, MBs read} as a function of processing time
TProofProgressStatus*fProgressStatuspointer to status in the player.
Float_tfReportPeriodTime between reports if nothing changes (estimated proc time / 100)
TMap*fSlaveStatsslave status, keyed by correspondig TSlave
TTimefStartTimetime offset
Bool_tfStopTermination of Process() requested?
Float_tfTimeUpdttime between updates
Long64_tfTotalEntriestotal number of entries to be distributed;
TVirtualPacketizer::EUseEstOptfUseEstOptControl usage of estimated values for the progress info
Bool_tfValidConstructed properly?
static TVirtualPacketizer::EUseEstOptkEstAverage
static TVirtualPacketizer::EUseEstOptkEstCurrent
static TVirtualPacketizer::EUseEstOptkEstOff

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TVirtualPacketizer(TList* input, TProofProgressStatus* st = 0)
 Constructor.
~TVirtualPacketizer()
 Destructor.
Long64_t GetEntries(Bool_t tree, TDSetElement* e)
 Get entries.
TDSetElement * GetNextPacket(TSlave* sl, TMessage* r)
 Get next packet.
void StopProcess(Bool_t abort, Bool_t stoptimer = kFALSE)
 Stop process.
TDSetElement* CreateNewPacket(TDSetElement* base, Long64_t first, Long64_t num)
 Creates a new TDSetElement from from base packet starting from
 the first entry with num entries.
 The function returns a new created objects which have to be deleted.
Bool_t HandleTimer(TTimer* timer)
 Send progress message to client.
void SetInitTime()
 Set the initialization time
Int_t AddWorkers(TList* workers)
 Adds new workers. Must be implemented by each real packetizer properly.
 Returns the number of workers added, or -1 on failure.
TVirtualPacketizer(TList* input, TProofProgressStatus* st = 0)
void operator=(const TVirtualPacketizer& )
Int_t AssignWork(TDSet* , Long64_t , Long64_t )
{ return -1; }
Bool_t IsValid() const
{ return fValid; }
Long64_t GetEntriesProcessed() const
Int_t GetEstEntriesProcessed(Float_t , Long64_t& ent, Long64_t& bytes, Long64_t& calls)
{ ent = GetEntriesProcessed(); bytes = GetBytesRead(); calls = GetReadCalls(); return 0; }
Float_t GetCurrentRate(Bool_t& all)
{ all = kTRUE; return (fProgressStatus? fProgressStatus->GetCurrentRate() : 0.); }
Long64_t GetTotalEntries() const
{ return fTotalEntries; }
TList * GetFailedPackets()
{ return fFailedPackets; }
void SetFailedPackets(TList* list)
{ fFailedPackets = list; }
Long64_t GetBytesRead() const
Long64_t GetReadCalls() const
Double_t GetCumProcTime() const
Float_t GetInitTime() const
{ return fInitTime; }
Float_t GetProcTime() const
{ return fProcTime; }
TNtuple * GetProgressPerf(Bool_t steal = kFALSE)
TList * GetConfigParams(Bool_t steal = kFALSE)
void MarkBad(TSlave* , TProofProgressStatus* , TList** )
{ return; }
Int_t AddProcessed(TSlave* , TProofProgressStatus* , Double_t , TList** )
{ return fProgressStatus; }
void SetProgressStatus(TProofProgressStatus* st)
{ fProgressStatus = st; }
void SetTotalEntries(Long64_t ent)
{ fTotalEntries = ent; }
TMap * GetSlaveStats() const
{ return fSlaveStats; }
Int_t GetActiveWorkers()
{ return -1; }