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