This pull request contains new version of prefetching targeted for pssasync branch. It also has one commit which is one one the steps for pss async implementation: I merged Factory and Cache class, so that virtual XrdOucCache::Create() can be left out. You can view, comment on, or merge this pull request online at: https://github.com/xrootd/xrootd/pull/341 -- Commit Summary -- * Replace Prefetch class with File class to do async reads. * Remove ReadInBlocks(). * Compile success. * Implement write queue. * Fixes in destruction. * Change variable names. * Cleanup.e * Global limit of RAM resources. * Use same lock for RAM and disk download status. Add Prefetch function(). * Add bit array for prefetch status. * Add prefetch option in configuration. * Implement prefetch score. * Implement prefetch. * Cache prefetch score. * Remove oboslete member. * Move base IO class to separate file. * Move base IO class to separate file. * Add missing initialization. * Add dump log messages. * Don't increase ref count to prefetching blocks. * Add missing initialization. * Remove prefetching block from map in ProcessBlockResponse if it does not have a ref count. * Removed failed prefetched block in ProcessRequest(). * return immediately if read from disk failes in Read(). * Write statistics in info file. * Save score as float. * Print info message about prefetch score at the end of destructor. * Reserver ram resources in prefetching. * Fix class name in log messages. * Check write queue size. * Change log messages. * Fix spelling in log. * Add log message in Cache::HaveFreeWritingSlots. * Changes in log messages. * Unregister file from cache prefetch when it is complete. * Temporary change -- Randomize prefetch file list. * Keep failed blocks in map. * Fix valgrind error in constructor. * Handle case where File::Read() does not wait blocks to be processed. * Handle case where File::Read() does not wait blocks to be processed. * Add util function to release block. * Report client error codes in log. * Add path info in File::InitiateClose log. * Add asserts. * Check free writing slots before requesting ram block in File::Read(). * Increase severity of message if bytes were missed. * Fix double read size from direct reads. * Fix error in de-registering blocks from write queue at the distruction time. This change solves bug #61. * Fix evaluation of prefetch score. * Handle failed async requests. * Fix error from the previous commit. * Set errno in RequestBlock() and RequestBlocksDirect() if failed. * Wait for signal in Prefetch() function when there is no open file * in Prefetch wait 5ms if ram limit has been reached. * Optimize random file access in GetNextFileToPrefetch(). * Optimize detection of file available for prefetching. * DeRegister/Register files in case when they are ready for prefetching. * First implementation of File::ReadV(). * Fix compilation errror. * Import vread code from async-vread-baq branch. * Add debug print. * Parse prefetch entry correctly. * Fix bug in VReadProcessBlocks -- removing vector while iterating. * Fix iteration in VReadFromDisk. * Fix offset in disk reads * Review open issues, make it compile. * Whitespace changes. * pfc.prefetch now takes int argument: max number of blocks to prefetch per file. * Merge Factory class into Cache class. This makes OucCache::Create() potentially obsolete. -- File Changes -- M src/XrdFileCache.cmake (4) M src/XrdFileCache/XrdFileCache.cc (207) M src/XrdFileCache/XrdFileCache.hh (87) A src/XrdFileCache/XrdFileCacheConfiguration.cc (299) D src/XrdFileCache/XrdFileCacheFactory.cc (607) D src/XrdFileCache/XrdFileCacheFactory.hh (167) A src/XrdFileCache/XrdFileCacheFile.cc (1038) A src/XrdFileCache/XrdFileCacheFile.hh (263) A src/XrdFileCache/XrdFileCacheIO.hh (45) M src/XrdFileCache/XrdFileCacheIOEntireFile.cc (56) M src/XrdFileCache/XrdFileCacheIOEntireFile.hh (13) M src/XrdFileCache/XrdFileCacheIOFileBlock.cc (34) M src/XrdFileCache/XrdFileCacheIOFileBlock.hh (9) M src/XrdFileCache/XrdFileCacheInfo.cc (23) M src/XrdFileCache/XrdFileCacheInfo.hh (40) D src/XrdFileCache/XrdFileCachePrefetch.cc (1018) D src/XrdFileCache/XrdFileCachePrefetch.hh (199) M src/XrdFileCache/XrdFileCachePrint.cc (5) A src/XrdFileCache/XrdFileCachePurge.cc (207) A src/XrdFileCache/XrdFileCacheVRead.cc (321) -- Patch Links -- https://github.com/xrootd/xrootd/pull/341.patch https://github.com/xrootd/xrootd/pull/341.diff --- Reply to this email directly or view it on GitHub: https://github.com/xrootd/xrootd/pull/341 ######################################################################## Use REPLY-ALL to reply to list To unsubscribe from the XROOTD-DEV list, click the following link: https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1