comp.lang.ada
 help / color / mirror / Atom feed
From: rieachus@comcast.net
Subject: Re: Two-stage suspend operations
Date: Mon, 9 May 2016 16:15:06 -0700 (PDT)
Date: 2016-05-09T16:15:06-07:00	[thread overview]
Message-ID: <df5f5eda-be56-4387-9931-d1c59f52d575@googlegroups.com> (raw)
In-Reply-To: <ly7ff3r4nk.fsf@pushface.org>

On Monday, May 9, 2016 at 4:56:15 AM UTC-4, Simon Wright wrote:
> I see what you mean. It's just that the wording in the ARM made it sound
> as though "two-stage suspend operations" was a phrase widely known in
> the community, which clearly isn't the case.

If you look at this article from Wikipedia: https://en.wikipedia.org/wiki/Two-phase_locking  and go down to "strong strict two-phase locking" you will see that it is not you, me or the Ada Rationale.  There are a lot of inconsistent names floating around in this area, and the Rationale apparently chose one that lost out. (Strong strict two-phase locking may not interest you, I just picked the article as one showing considerable name confusion in 2011.)

I'm curious as to why you are interested in this area.  Ada is a great language for implementing in memory databases.  At MITRE I worked on both ground based and in-flight radar systems.  The emphasis was on consistency and non-blocking. 

After a system crash or power failure, rather than reconstruct the previous state, the usual goal was to restart as fast as possible, so some or all of the previous data was ignored.  Restoring (name) tags to tracks was very much a nice to have, but couldn't be done until you had several detections to combine into a track, which took many seconds.  (Both airborne and ground radars often stop emitting for short periods for various reasons including incoming missiles.  In those restarts you may or may not be able to match tracks with the old data.  Big Waah! Extra work for operators is a small price to pay for survival.)   

Anyway it was much, much easier to "roll your own" Ada database than use a commercial database.  Why?  Commercial databases are not real-time systems.  In a radar system you may need transactions to complete in N milliseconds for a relatively small N, while commercial databases consider 2 seconds average response times good enough.  With this particular Ada "trick" each track record could have its own lock, and threads could cache the address of the record and lock it only when necessary.  Transaction times were on average microseconds, with 2 or 3 milliseconds being worst case.


  reply	other threads:[~2016-05-09 23:15 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-07 16:13 Two-stage suspend operations Simon Wright
2016-05-08  3:56 ` rieachus
2016-05-08 19:26   ` Simon Wright
2016-05-09  2:12     ` rieachus
2016-05-09  8:56       ` Simon Wright
2016-05-09 23:15         ` rieachus [this message]
2016-05-10  5:46           ` Simon Wright
2016-05-10 21:14 ` rieachus
2016-05-11  8:55   ` Simon Wright
2016-05-11 21:20 ` rieachus
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox