gEDA-dev: SPICE rawwaveform file
John Griessen
john at ecosensory.com
Tue Dec 4 10:32:18 EST 2007
Anthony J Bybell wrote:
> On Mon, 3 Dec 2007, Dan McMahill wrote:
>>I was envisioning ending up with this amount by
>> virtue of having lots and lots (10s of thousands) of waveforms in the
>> data file. So the ability to pick out one of them efficiently and
>> without parsing all 10 Gb is important.
>
> Right, that's the "fun" tricky part but it's not insurmountable. There
> are plenty of ways to do this and a lot depends on the access patterns
> desired. (e.g., read one/many waveforms across the whole dump, determine
> the values for everything at a given time value t, etc.)
I imagine a combination of both arrangements of data would be good for retrieving from disk drives.
First, record waveforms so they have values in a string for each wave, up to some time interval that is manageable, with time
segment ID at top of string, then switch to the next waveform until all done, then start the first wave for the next time
interval, repeat. That would let you find the chunks of data for wave 989 out of 3400 waves much quicker than
data arranged as all values per tiniest time step, repeat.
Perhaps the only non-database method to have speed for both kinds of searches is to record it both ways in
the same data file?
There is an assumption here that you can't have access to disk drive details like sector size, but maybe disk tools like LVM could
help. When you create a merge of two disks, can a tool like LVM create a new "virtual block size" that is smaller than the
physical ones? If so, you could create a storage method that uses the small block size as in "start all data chunks at a new
block, with the fist line being a time segment and wave number tag. Then some of the work done by a database would be done in
mapping actual disk block zones of data to the small virtual blocks that let you _randomly_ access data better.
And the data could be just easy access text and still get the benefit I am thinking of above.
John G
--
Ecosensory Austin TX
tinyOS devel on: ubuntu Linux; tinyOS v2.0.2; telosb ecosens1
More information about the geda-dev
mailing list