User:Nikolas/New Taper Design Notes: Difference between revisions

From wiki.zmanda.com
Jump to navigation Jump to search
(initial notes)
 
(my edits)
Line 12: Line 12:
==Flow of data==
==Flow of data==
# Dumper
# Dumper
# Taper::Scribe
# Holding disk
# Holding disk
# Taper-Taper::Feeder
# Taper
#*Taper::Feeder (reads from holding, tells scribe where to find data if it needs to backtrack)
#* Taper::Scribe (writes to devices)
Or (no holding disk):
Or (no holding disk):
# Dumper
# Dumper
# Taper::Scribe
# Taper
# Taper::Feeder
#* Taper::Feeder (reads from port)
#* Taper::Scribe (writes to devices)


===Notes===
===Notes===
* Chunker just uses a Taper::Scribe
* Chunker doesn't change at all
* Taper::Scribe handles all communications with the dumper
* The details of reading from holding disk are handled by a Xfer object
* The holding disk details are handled by a Xfer object
* Taper::Scribe handles splitting dumpfiles for tapes??
* Taper::Feeder handles splitting dumpfiles for tapes??


==New [[Transfer Architecture|XFA]] Parts==
==New [[Transfer Architecture|XFA]] Parts==
* Xfer::Source::HoldingDisk($dir, $chunk_size) - used by Taper::Feeder
* Xfer::Source::HoldingDisk($filename) - used by Taper::Feeder
* Xfer::Dest::HoldingDisk($dir, $chunk_size)- used by Taper::Scribe
* Xfer::Dest::Taper($buffer_size)- used by Taper::Scribe; has lots of "I need a new tape" and "I'm starting a new file" callbacks
* Xfer::Source::Taper($changer, $dumpfile_id?)- used by amvault and amrecover
* Xfer::Dest::Taper($changer, $dumpfile_id?) - used by Taper::Feeder
Perhaps the HoldingDisk can just open files and create Xfer::Source/Dest::Fd, passing work onto them until they close.

Revision as of 22:34, 30 January 2009

Old

Flow of data

  1. Dumper
  2. Chunker
  3. Holding disk (not a process)
  4. Taper

Or (no holding disk):

  1. Dumper
  2. (via port) Taper

New

Flow of data

  1. Dumper
  2. Holding disk
  3. Taper
    • Taper::Feeder (reads from holding, tells scribe where to find data if it needs to backtrack)
    • Taper::Scribe (writes to devices)

Or (no holding disk):

  1. Dumper
  2. Taper
    • Taper::Feeder (reads from port)
    • Taper::Scribe (writes to devices)

Notes

  • Chunker doesn't change at all
  • The details of reading from holding disk are handled by a Xfer object
  • Taper::Scribe handles splitting dumpfiles for tapes??

New XFA Parts

  • Xfer::Source::HoldingDisk($filename) - used by Taper::Feeder
  • Xfer::Dest::Taper($buffer_size)- used by Taper::Scribe; has lots of "I need a new tape" and "I'm starting a new file" callbacks