The first MVCC database was Rdb/ELN, also known as JRD, that ran on VMS and VAX/Eln (Dave Cutler's first post-VMS operation system).

I had been working on an open ended advanced development project after shipping VAX Datatrieve.  The biggest problem I had with VAX Datatrieve was when running against DEC's CODASYL database (based on two phase record locking) users would regularly lock each others out, hang, and eventually die with a "you are the victim of a deadlock" error.  I liked transactions but thought that the operational characteristics of transactional databases stunk.

There were two ideas I have been noodling.  One as a CODASYL database from Prime that used page copy on write when generating reports.  The other was an ARPA research project called SDD1 that examined how loose a distributed database could be without network wide locking.  It didn't actually work very well, but it did have transaction-aware message queue operations that essentially played with the concept of time.

One day I was driving down Route 3 in Manchester, New Hampshire, that rather than keeping multiple page images, I could keep multiple record versions, hopefully on the same page, and with clever bookkeeping have individual transactions keep track of which of server record versions it should see.  So it solved concurrency control, transaction backout, garbage collection, and database restart without journalling.

So I put aside my natural language query project and launched into JRD, and in a couple of weeks had enough there to rudimentary performance measurements using an internal benchmark called DECU (DEC University -- a student/class scheduling system).

DEC had an official RDMS project that a started earlier but had to spin off that was going exactly nowhere. The general DEC attitude towards relational database systems was that they were intrinsically slow and were mostly for people too stupid to understand CODASYL databases.

VAX DBMS (the CODASYL dbms) ran DECU in 28 minutes.  My JRD, running with 10 (count 'em -- 10) page buffers ran in 30 minutes causing a massive shock wave within DEC.  Cranking up the buffers to 50 or so blew the doors off VAX DBMS.

DEC management considered JRD to be too technically risky, so they fired the project leader of the official RDMS project, which got taken over by the VAX DBMS group to rewrite using the low end of the CODASYL system.

I was, of course, ripped, but my project was picked up by Storage Engineering in Colorado with a home for my renegade group in Corporate R&D.  The Storage Engineering guys real interest was using JRD inside a future database machine.  Cutler hated RMS (ISAM) with a passion and fell in love with a relational database system for VAX/ELN.

I was completely disgusted with DEC politics, so as soon as Rdb/ELN was ready to go, I quite and started Groton Database Systems, later renamed Interbase.

The two JRDs were architecturally very similar, though the DEC JRD was in Bliss and the GDS JRD in C.  Both used a Y-valve to connect a client to a database (the DEC version supported both Rdb/ELN and Rdb/VMS) or remote interface, the two remote interfaces had radically different protocols.

The DSRI cross system compatibility was strong enough that some could use VAX Datatrieve on VMS to talker to an Interbase database on an Apollo workstation.

Heady times.

On 5/26/2022 3:19 AM, Molnár Attila wrote:
https://en.wikipedia.org/wiki/Multiversion_concurrency_control#History


-----Eredeti üzenet-----
Feladó: Pól Ua L. via Firebird-devel 
[mailto:firebird-devel@lists.sourceforge.net]
Küldve: 2022. május 26., csütörtök 9:11
Címzett: For discussion among Firebird Developers 
<firebird-devel@lists.sourceforge.net>
Másolatot kap: Pól Ua L. <dra...@protonmail.com>
Tárgy: Re: [Firebird-devel] isc_dpb_dbkey_scope



Hi Jim,

great to see that you're still keeping your finger in the Firebird pie!

There is a very good reason that multi-version concurrency control won
out big time (Wikipedia lists 80+ database systems with MVCC).
Interbase was the second.
Just as a matter of historical interest, which was the first database to 
release with MVCC? Oracle?

Best regards,

Pól...


Jim Starkey, AmorphousDB, LLC



Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel
--
Jim Starkey, AmorphousDB, LLC


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to