A Simple Thought

Stephen D. Williams sdw at lig.net
Tue Mar 30 01:55:46 BST 1999



roddey at us.ibm.com wrote:

> >Ahh, there's the trick.  I believe I have most of a design for an data
> structure
> >that is fast in memory yet is 'flat' and can have its chunks just written
> out or
> >read in at any point.  It builds on some very old ideas I came up with for
> a
> >language I designed.  When viewed as an interchange format, it may not be
> the
> >most optimal space wise (although it should be better than XML text) but
> trades
> >a small amount of space for nearly zero processing overhead.  There will
> >probably also be a procedure for 'compacting' an object for storage into a
> >database or sending over a slow link vs. the 'fast' format usable between
> >servers in a cluster.
> >
>
> I think though that this would only hold up as long as you are looking at
> XML data as a read-only data source. Once you started doing significant
> editing of the data, having a flat structure like that would be more of a
> hinderance than a help, would it not? What if I have a 10MB flat buffer and
> want to add another child to the second element? This kind of gets into the
> quandry that you've nailed in one nail, but now its even harder to nail a
> whole raft of others as well as with the more general purpose mechanisms.
>
> I dunno, if I were thinking along these lines, to keep it reasonably
> portable, I'd look at the binary format as a fast serialization mechanism
> and at least create native language objects for each one. By the time you
> put enough stream format markers and whatnot into the stream to know where
> things are, and interpret those during runtime, it might be just as fast to
> pay the cost for creating a much more flexible, native object format for in
> memory manipulation.

I have a way around the modification issue.  It's a data structure I call 'elastic memory'.
It's really the main reason that I'm going to have to start mostly from scratch.
I AM trying to hit a number of nails at once and it won't be easy and I'm not sure I can make
it perfect, however I believe I can get close.  I'm only worrying about Java at the moment
with some allowances for certain restrictions that come into play and typical usage in network
protocols.

There are a number of situations where serialization just doesn't cut it.  As I mention,
imagine serializing/deserializing on every method call in a program.

I designed some of these mechanisms MANY years ago (about 8 I think) while designing a
language after I'd already built a language based on Postscript syntax for a project.  In
testing the first language, I learned the horrors of 'malloc storms' that happen when you
follow a typical design paradigm.  My system which allowed a complex application to be
represented by meta data would do about 25000 mallocs in a standard run through the app.  A
Java web server app for a very complex app  I just completed with a team does about 150,000
object creations (measured by forcing a garbage collection) in one run through the app.  It
works amazingly well, but still blows most of it's processing for things that could be
avoided.

The cool thing is that I found a way to implement it in Java.

Thanks for sparring with me! ;-)
sdw

> xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
> Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
> To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
> (un)subscribe xml-dev
> To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
> subscribe xml-dev-digest
> List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)

--
OptimaLogic - Finding Optimal Solutions     Web/Crypto/OO/Unix/Comm/Video/DBMS
sdw at lig.net   Stephen D. Williams  Senior Consultant/Architect   http://sdw.st
43392 Wayside Cir,Ashburn,VA 20147-4622 703-724-0118W 703-995-0407Fax 5Jan1999



xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)




More information about the Xml-dev mailing list