Unique id's

coder at ibm.net coder at ibm.net
Sun Apr 13 09:16:01 CEST 1997


On 12/04/97 at 12:55 PM, "Jon A. Lambert" <jlsysinc at ix.netcom.com> said:
>> From: coder at ibm.net
>> On 12/04/97 at 12:51 AM, "Jon A. Lambert" <jlsysinc at ix.netcom.com> said:

>> There's no problem if two ObjectID's contain the same timestamp.  It
>> doesn't matter at all.  What has to be unique is the combination of
>> record# and timestamp -- and that combo must be unique for the entire life
>> of the database.  Happily this is not a problem until April 2038, longer
>> if you chose a different timestamp format.
>> 

>Ahh your ID has two parts.  I use something called a CriticalSection
>object to block the ' id++; ' function.  Its very similar to a mutex,
>except the reset occurs automatically upon leaving  the code section. 
>Its supposed be slightly more efficient, but I believe its really a mutex
>under the covers. I use it alot, all over the place. :-)

Check into the base code for your CriticalSection.  I've seen far to many
such blobs whose definition of a critical section is that it is the ONLY
thread in the application allowed to execute for the duration.  <shudder> 
(This how OS/2 and Windows handle their "critical section" API's, and I've
seen something similar in a library that shall remain nameless for SunOS).

>> I'm rather pleased actually -- the last time I had the server in a shape
>> it would actually run, I had it creating and destroying about 100,000
>> objects per hour while mobiles wandered about the game going in and out of
>> spoof/watcher areas, and breeding like crazy.  
>> 
>> Figure, that's what, about 40+ million objects being created and
>> destroyed...  Certainly not enough to cause a 32bit wrap, but a good
>> enough test to demonstrate that the idea works. 

>Whoa Nelly!   I don't expect to reach anything approaching this rate of
>creation and destruction.  

Neither do I for actual production databases.  It was a contrived stress
test of the area.  I tend to do a lot of those sorts of things.  

  Okay, we'll create two rooms linked by a single door.  
  Now lets create a simple mobile that just bounces back and 
    forth between those rooms thru that door.
  Now lets clone that puppy a few thousand times.
  Turn on the box and see what happens!

>Have you checked your machine for viruses lately? ;-)

Heck.  I am the virus.

--
J C Lawrence                               Internet: claw at null.net
----------(*)                              Internet: coder at ibm.net
...Honourary Member of Clan McFud -- Teamer's Avenging Monolith...




More information about the mud-dev-archive mailing list