[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference ulysse::rdb_vms_competition

Title:DEC Rdb against the World
Moderator:HERON::GODFRIND
Created:Fri Jun 12 1987
Last Modified:Thu Feb 23 1995
Last Successful Update:Fri Jun 06 1997
Number of topics:1348
Total number of notes:5438

1074.0. "RdB vs RMS question" by UNTADI::LEWIS (F9 Pilot on the Outside Edge) Mon Jan 27 1992 14:58

    This question has also been placed in the DECmessageQ notesfile.
    
    I am considering using DECmessageQ to feed data in record sized
    messages to an RdB database.
    
    What I am planning is to have a process attached to each incoming queue
    which inserts the records into a table (1 for each record type).
    Another (set of) process(es) will query these tables, and using joined
    data, update the "live" tables in other RdB database(s).
    
    I have been told that I "must" adopt an alternative of using FTSV to
    copy an RMS feeder file to the target node, and then have a (set of)
    process(es) which opens the feeder files, sorts them, finds the
    relevant record types, reads the data, joins them, and then writes them
    to the RdB database(s). The reason given is that if a large amount of
    data are delivered, the time taken to load the data into rdB twice
    would be fatal.
    
    I really don't accept this, but I don't have any numbers to back me up
    (or prove me wrong). I am assuming that DECmessageQ can deliver the
    data as fast as FTSV could, and that RdB can insert them into a table
    at least as fast as DECmessageQ could deliver them (for a given
    machine). And then that performing an SQL query on two tables, and
    writing the result to a third would far outstrip the similar procedure
    in RMS.
    
    I am not very familiar with RMS (grew up with RdB), but whereas the
    data being inserted into the RdB file would be journalled (I assume it
    would still keep up with DMQ), where would the RMS journal file come
    from ? would that have to be copied from the source node as well ? 
    
Thanks for any help or pointers.
    
    Rob
T.RTitleUserPersonal
Name
DateLines
1074.1MJBOOT::WEINBROMTyrannosaurus DECsFri Jan 31 1992 22:0644
    Well, I grew up with RMS-11 (and then RMS-32 and then Rdb...)
    
    Anyway, I'm not sure that I understand your questions, but here goes:
    
    RMS has a SIP (System Integrated Product, a layered product where the
    software is already embedded in VMS like DECnet) that provides
    Recovery-unit, After-image and Before-image journalling.  
    
    Be aware that (at least when I worked with RMS journalling) the process
    using the journalled files and the files themselves had to reside on
    the same node. i.e. no DECnet remote access to journalled files.  This
    had to do with the fact that the lock manager only works in a single
    node or VAXcluster environment, not across nodes "joined" only by
    DECnet.
    
    By the way, RMS journalling is not a stellar performer (see the RMS
    notes file).  RMS had to be retrofitted for journalling and one of the
    design goals was apparently to disturb as little of the code/design as
    possible.  On the other hand, journalling was designed into
    Rdb/DBMS/KODA.  Also, you can't back up the RMS journal on-line nor can
    you close out the journal files and start new ones.  In addition, RMS
    journals changes at the bucket (like a database page) level,  not
    record or node. Therefore, change a record and you store the entire
    bucket (typically several blocks) in the AI journal file. 
    Active files = large journal files
    
    I didn't quite understand the DECmessageQ vs FTSV issue.  DECmessageQ
    has the ability to deliver individual records whereas FTSV delivers
    files.  While I've written things that use FTSV's pre- and post-
    processing, as you could do to write a complete application,  it would
    seem to me that it would be easier to use DMQ unless your "unit of
    work" is an entire file.  Even then, it would be a toss-up.  You'd
    always have an easier time controlling the process programmatically via
    DMQ then dealing with a lot of command files in FTSV.  
    
    In either case, from your description, it is clear that the process is
    not "real time".  If you can batch it up via FTSV, then the loading of
    data into the Rdb database isn't time critical and in fact the Rdb
    database doesn't up-to-the-millisecond data.  (It's not real-time, it's
    trendy! :-)
    
    Hope this helps
    
    Steve
1074.2What's important?PHDVAX::MCGINNISSun Feb 09 1992 21:1018
    I've implemented a Rdb database server for a CSO, using
    DECmessageQ for client-server communication.   The retro-fitted
    application has better response time using less resources than
    the original version which had 80-100 users directly attaching
    to the database.  DECmessageQ can be an excellent tool for
    passing messages between processes.  However, as a colleague
    of mine is fond of saying, "never underestimate the bandwidth of
    a van full of magtapes.".
    
    If you use some sort of file copy (FTSV or other), you may have
    a simpler task of designing and implementing the application:
    no two-phase commit problems, easier recovery, etc.
    
    Send me VAXmail or call at DTN 328-3042 if you would like
    to discuss this further.
    
    Ken
    
1074.3ThanksUNTADC::LEWISF9 Pilot Sliced, Diced and ShreddedMon Feb 10 1992 17:273
    Thanks for the responses,
    
    Rob