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
Patch Links:
—
Reply to this email directly or view it on GitHub.
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