Re: Very High Rate Continous Transfer
- From: Bill Todd <billtodd@xxxxxxxxxxxxx>
- Date: Sat, 23 Jul 2005 16:51:31 -0400
jim_nospam_beasley@xxxxxxxxx wrote:
Because of the nature of the data I am saving, I think I can simplify quite a bit. I'll still need to figure out what hardware I need to support this, but here is the direction I am heading:
Most of the time the data will be in blocks that are about 1 mS in sample time duration. At 160 MBps, that's only 160KB per block. With a set of 7 or 8 separate physical volumes, I will write data blocks into separate files, sequentially writing in the next physical drive for each block. I can do this under software control.
It would be even easier using a single file spread across the disks under RAID-0 software control (you're effectively talking above about recreating RAID-0 in your application).
(I am not worried about redundancy at the moment. This data will be stored for only a few hours before it is transferred to a server, where data security can be addressed.)
Hmmm. 3 hrs. x 3600 sec/hr. x 160 MB/sec = 1.728 TB - considerably more space than you'll have using 7 or 8 100 GB drives even if you manage it optimally.
I read a report at Tom's Hardware that shows the worst case write bandwidth for a 2.5" Toshiba MK1032GAX 100 GB drive assymtotically goes to about 27 MBps as the drive becomes full. (Can someone verify my understanding of this? It's here: http://www.tomshardware.com/storage/20050606/toshiba-05.html#data_transfer_graph )
The number sounds reasonable, but you should still leave a bit of margin just in case (especially using a non-RAID-3 array where the disks won't be synchronized with each other, though your application may tend to be self-synchronizing). Of course, you should check the manufacturer's spec *** too.
Overhead -------- I am not sure what the processor overhead will be to open and close files while doing this.
You almost certainly don't want to be opening and closing files at all frequently: that could start to screw up your data rate to disk (even if the relevant file data is usually cached, it often gets updated on close). For that matter, you'll want to suppress any frequent on-disk updates to things like the file's last-accessed and last-modified times, reuse existing file space rather than allocate new space to avoid on-disk allocation update activity and suppress end-of-file-mark updates, etc.
The alternative is to stream the blocks into
larger files, which only changes the data read process.
With this process, I can probably rely on disk cache to absorb most remaining delays (like seek time).
Quite possibly not at the data rates you're talking about.
Drive reliability ----------------- I am wondering if I can stream data into these blocks continuously without buffering it in main memory.
Probably not - see previous comment. Besides, if you don't go through main memory you'd be completely by-passing the file system and writing driver code. But using asynchronous multi-buffering you can stay within the realm of normal application behavior without needing much memory.
As I said in an earlier post, I
want to continuously capture into memory and decide when to offload the last 10 GB of recorded data. But I am now thinking I can stream this data directly to the disks (with a significant savings in main memory) and overwrite that which I don't want to keep. How hard is this on the drives, if I do this continuously for 12 hours striaght, or for 24/7?
Drive Controller ---------------- With the solution outline given above, I will need a controller, preferrably in a 3U format (cPCI). Like I said, it will support 7 to 8 independent physical drives, at a minimum. Does anyone have a suggestion?
If you're as cost-conscious as you appear to be, consider 3.5" SATA drives - which will give you the temporary storage space you need and comparable or better bandwidth in numbers that should fit in a 3U enclosure. 3Ware makes controllers which may handle the bandwidth when used as a simple JBOD (I've heard varying reports of their capabilities at the higher RAID levels).
- bill .
- References:
- Very High Rate Continous Transfer
- From: jim_nospam_beasley
- Re: Very High Rate Continous Transfer
- From: Stephen Maudsley
- Re: Very High Rate Continous Transfer
- From: jim_nospam_beasley
- Very High Rate Continous Transfer
- Prev by Date: Re: Very High Rate Continous Transfer
- Next by Date: can somebody please email me norton's diskedit.exe ?
- Previous by thread: Re: Very High Rate Continous Transfer
- Next by thread: TCP Accelerator SAN Storage Area Network New Patent Groundbreaking Technology company : all throughputs problems on LFN / Internet now ' a past history '
- Index(es):