×

Advanced contention detection

  • US 7,831,779 B2
  • Filed: 10/05/2007
  • Issued: 11/09/2010
  • Est. Priority Date: 10/05/2006
  • Status: Active Grant
First Claim
Patent Images

1. In a multiple computer system including a multiplicity of computers, each interconnected via at least one communications network, and each of the multiplicity of computers executing a different portion of an application program written to execute only on a single computer, each of the multiplicity of computers having an independent local memory with at least one memory location being replicated in each said local memory of each said multiplicity of computers, a method for handing contention in replica memory updating in which a memory location having a specific location identifier and replicated on at least two computers, can be updated substantially simultaneously from a plurality of sources, said method of handling contention in replica memory updating comprising:

  • (A) detecting a memory updating contention comprising;

    (i) utilizing an updating format for the signal or packet carrying out the replica memory updating, said format comprising the specific identifier of the memory location to be updated, the content with which said memory location is to be updated, and a resident updating count of the updating source, said count comprising a number indicative of the sequence of occasions on which the updating source has been updated inclusive of the current updating;

    (ii) storing for each replicated memory location the updating count of the previously sent or received updating;

    (iii) comparing the resident updating count associated with the replicated memory location to be updated with the updating count of the currently received updating signal or packet; and

    (iv) indicating a contention situation if the compared updating counts are the same;

    (B) resolving said detected memory updating contention, including;

    (i) storing for each receiving replicated memory location a resolution value with the updating count of the previously received updating;

    (ii) comparing the presently resident updating count associated with the replicated memory location to be updated with the updating count of any currently received updating signal or packet; and

    (iii) actioning or not actioning the incoming signal or packet according to predetermined policies;

    (C) broadcasting a memory updating signal or packet over a communications network interconnecting a plurality of computers, including;

    (i) utilizing said updating format for the signal or packet carrying out the updating, wherein said updating count comprises a resident updating count of the updating source and comprising a number indicative of the sequence of occasions on which the updating source has been updated inclusive of the current updating, and at least one resolution value of the updating source, each said resolution value comprising a unique value of the updating source;

    (D) consolidating data in addressed memory updating so that a memory location having a specific address or identifier can be updated substantially simultaneously from a plurality of sources, including;

    (i) utilizing said updating format for the signal or packet;

    (ii) storing for each said memory location the updating count of the previously received updating; and

    (iii) from time to time on the occurrence of a predetermined condition, consolidating the stored updating count;

    (E) ensuring correct operation of at least one finite counter each storing an updating count value including;

    (i) providing at least one further data bit in addition to, and associated with, each said counter;

    (ii) changing the state of the further data bit of each counter if said counter reaches a predetermined maximum count value; and

    (iii) modifying the comparison of the count values of sequentially received updating messages or signals in accordance with the state of the further data bit associated with each said received message and the state of the further data bit of the previously received message; and

    (F) overcoming possible memory updating echoes where at least one memory location is replicated at different memories and substantially simultaneously memory updating is accomplished from a plurality of sources transmitting an updating message including the address of the location, the new content for the location, and an updating count indicative of the position of the updating message in a sequence of updating messages, said updating count being incremented by a predetermined number to indicate consecutive updating messages, and further including;

    (i) determining which source was the last to transmit in respect of a specific memory location; and

    (ii) where the same source is to transmit sequentially in respect of the same memory location, incrementing said updating count for the second transmission by more than said predetermined number.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×