WO1998049820A2 - System and method for recording transactions - Google Patents
System and method for recording transactions Download PDFInfo
- Publication number
- WO1998049820A2 WO1998049820A2 PCT/US1998/008354 US9808354W WO9849820A2 WO 1998049820 A2 WO1998049820 A2 WO 1998049820A2 US 9808354 W US9808354 W US 9808354W WO 9849820 A2 WO9849820 A2 WO 9849820A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- transaction
- entry
- list
- pointer
- transaction entry
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q3/00—Selecting arrangements
- H04Q3/0016—Arrangements providing connection between exchanges
- H04Q3/0029—Provisions for intelligent networking
- H04Q3/005—Personal communication services, e.g. provisions for portability of subscriber numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/1305—Software aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13097—Numbering, addressing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13102—Common translator
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13204—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13251—Restricted service, class of service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13345—Intelligent networks, SCP
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13353—Routing table, map memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99939—Privileged access
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99948—Application of database or data structure, e.g. distributed, multimedia, or image
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
- Y10S707/99957—Garbage collection
Definitions
- This invention relates in general to recording transactions in a transaction log, and more particularly to recording transactions in a transaction log using a chronological list superimposed on an indexed list.
- LNP Local Number Portability
- a directory number is the number that is dialed or input by a calling party to place a telephone call.
- Each directory number in the United States includes ten digits (e.g. 404- 222-2500).
- a directory number contains a three digit area code ("NPA") followed by a three digit exchange code (“NXX"). The first six digits of a directory number are referred to as the "NPA-NXX.” For example, there are 10,000 directory numbers that start with the NPA- NXX 404-222 (i.e., 404-222-0001, 404-222-0002, etc.).
- each NPA-NXX is typically assigned to a single switch.
- an NPA-NXX is no longer assigned to a single switch.
- a directory number may be "ported" to a' switch served by a different service provider so the NPA-NXX of a directory number no longer uniquely identifies a switch.
- Traditional telephone routing procedures assume that the NPA-NXX of a directory number uniquely identifies a switch. To accommodate LNP, new telephone routing procedures are needed because the NPA-NXX of a directory number no longer uniquely identifies a switch.
- the originating switch may refer to an LNP database to determine which switch serves a particular directory number.
- the LNP database includes a list of directory numbers and corresponding Local Routing Numbers ("LRN").
- LRN identifies the switch which serves the directory number.
- Each local service provider may maintain its own LNP database. For example, if a telephone call is placed from a directory number in Network A to a directory number in Network B, the originating switch in Network A refers to an LNP database in Network A to determine where the call should be routed.
- the LNP database includes an entry for the called directory number which indicates that the directory number is served by a switch in Network B. Therefore, the originating switch in Network A routes the telephone call to a switch in Network B.
- the subscriber's directory number When a subscriber changes local service providers, the subscriber's directory number is ported to a network managed by a different local service provider. To reflect the change, the local service providers must update their respective LNP databases with network information for the new local service provider. Ideally, all of the LNP databases are updated simultaneously so that calls to the subscriber's directory number are properly routed after the change in service providers. However, in reality, there is a delay between updates because the updates are performed independently by each local service provider. If the LNP databases are not updated simultaneously, then a non-call associated message may "loop" between local service provider networks, i.e., the message may be routed between the networks in a loop until both LNP databases are updated.
- looping may occur if a subscriber moves from local service provider A to local service provider B and the LNP databases are not all updated when a CLASS (Custom Local Area Signaling Services) service such as the "Repeat Dialing" service is invoked for the subscriber's directory number.
- CLASS Customer Local Area Signaling Services
- the LNP database for local service provider A and the LNP database for local service provider B both indicate that the subscriber's directory number is served by a switch in Network A.
- local service provider A updates its LNP database to indicate that the subscriber's directory number is served by a switch in Network B.
- local service provider B does not immediately update its LNP database so its LNP database still indicates that the customer's number is served by a switch in Network A. If the subscriber's directory number is initially busy, Repeat
- Dialing may be invoked to monitor the directory number to determine when the directory number is available. Once the subscriber's directory number is available, the call may be completed. Non-call associated messages are used to monitor the status of the subscriber's directory number. Some of the messages require Global Title Translation ("GTT").
- GTT Global Title Translation
- the Network A switch queries the LNP database of Network A to determine which switch serves the directory number. The LNP database of Network A indicates that a switch in Network B serves the directory number, so Network A sends a message to Network B to determine the status of the called number. When Network B receives the message, the LNP database of Network B is queried to determine which switch serves the directory number.
- the LNP database of Network B indicates that the message should be routed to a switch in Network A so Network B sends the message back to Network A.
- the message continues to loop between Network A and Network B until the LNP database of Network B is updated. Looping may also occur if there is an error in one of the LNP databases. An error may arise from a human error or a processing error.
- Looping is a problem because a looping message consumes network resources and negatively impacts network performance and reliability. Looping messages also create an overload condition on the network, causing legitimate calls to fail.
- Several solutions have been proposed to solve the looping problem.
- One proposed solution involves marking a message with a "dirty" bit. A dirty bit is set by the originating network before the message is sent. The originating network checks the dirty bit for each message it receives from another network. If the dirty bit is set, then the originating network detects a loop.
- a disadvantage of the dirty bit proposal is that the dirty bit must be preserved by all local service providers. However, there is no provision for a dirty bit in the existing message routing protocol, so there is no guarantee that the dirty bit will be preserved.
- Another proposed solution is "gateway screening". This solution requires that a network screen messages received from other networks to detect a looping message. A message received from another network is screened to determine whether the message originated in the network receiving the message. If the message originated in the network receiving the message, then the message is dropped. A disadvantage of this solution is that it will only detect loops involving an originating network. If a loop occurs between two non-originating networks, it is not detected. A third proposed solution is transaction ID logging.
- Transaction ID logging maintains a log of messages recently sent to other networks and compares a message received from another network to the message log. If the received message matches a message in the log, a loop is detected. The log is maintained so that it only contains messages sent within a predetermined period of time.
- transaction LD logging is theoretically appealing, it has not been previously implemented because of concerns that it would adversely impact network performance.
- the Illinois Commerce Commission (“ICC”) a group formed to study message looping in LNP enabled telecommunications networks and to provide recommended solutions, considered but did not pursue transaction ID logging.
- the IIC Subcommittee concluded that transaction ID logging was too processor intensive, and therefore, did not pursue transaction ID logging.
- the present invention satisfies the above-described needs by using a chronological list superimposed on an indexed list to implement transaction LD logging.
- the chronological list expedites maintaining the log and the indexed list expedites searching the log.
- the present invention may be used to detect messages looping between networks.
- the present invention provides a system and method for recording transactions, such as non-call associated messages, in a transaction log using a chronological list superimposed on an indexed list.
- a transaction log includes a number of transaction entries. Each transaction entry corresponds to a previous transaction. When a new transaction is received, the new transaction is compared to the existing transactions in the transaction log.
- a loop is detected. Once a transaction loop is detected, appropriate action may be taken to break the loop. To ensure that a valid subsequent transaction is not detected as a looping transaction, stale transaction entries are deleted from the transaction log. Typically, a transaction entry is stale if it has been in the transaction log longer than a predetermined maintenance period.
- a transaction entry typically includes a transaction descriptor field, a time stamp field, a chronological list pointer field and an indexed list pointer field.
- the transaction descriptor field contains a transaction descriptor which identifies the transaction and other transaction information.
- the time stamp field contains a time stamp indicating when the transaction was initiated.
- the chronological list pointer field may contain a chronological list pointer pointing to the next oldest transaction entry.
- the indexed list pointer field may contain an indexed list pointer pointing to another transaction entry with the same index.
- Each transaction entry in the transaction log is placed in both the chronological list and the indexed list.
- the chronological list orders the transaction entries from the oldest transaction entry to the latest transaction entry.
- Chronological list pointers are associated with the transaction entries in the chronological list. For example, a first chronological list pointer points to the oldest transaction entry and a last chronological list pointer points to the latest transaction entry. The order of the remaining transaction entries in the chronological list is maintained using chronological list pointers.
- a chronological list pointer links a transaction entry to the next oldest transaction entry. The chronological list minimizes the time needed to identify and delete a stale transaction entry.
- the indexed list is a list of indexed list entry pointers. Each indexed list entry pointer corresponds to an index and points to a transaction entry with the same index.
- the index for a transaction entry may be determined by hashing the transaction descriptor for the transaction entry. If there is more than one transaction entry with the same index, then the transaction entries are linked together via the indexed list pointer fields of the transaction entries. For example, if there are two transaction entries with the same index, then the indexed list entry pointer points to the first transaction entry and the indexed list pointer field of the first transaction entry points to the next transaction entry.
- the indexed list reduces the number of transaction entries which must be searched to determine whether there is a match between a new transaction and an existing transaction. Reducing the number of transaction entries minimizes the time needed to compare a new transaction with an existing transaction.
- the transaction entries are checked to determine whether any of the transaction entries have been stored in the transaction log for longer than the predetermined maintenance period.
- the first chronological list pointer is used to identify the oldest transaction entry in the transaction log.
- the time stamp field of the oldest transaction entry is checked to determine whether the transaction entry is stale. If the oldest transaction entry is stale, then the transaction entry is deleted from the chronological list and the indexed list. To delete the oldest transaction entry from the chronological list, the first chronological pointer is updated to point to the next oldest transaction entry. To delete the oldest transaction entry from the indexed list, the indexed list entry pointer corresponding to the oldest transaction entry is updated.
- the indexed list entry pointer field of the oldest transaction entry contains an end of list indicator, then there are no other transaction entries with the same index and the indexed list entry pointer is updated to contain an end of list indicator. If the indexed list entry pointer field of the oldest transaction entry contains a pointer to another transaction entry, then the indexed list entry pointer is updated to point to that transaction entry.
- the index for the new transaction is calculated.
- the index identifies an indexed list entry pointer corresponding to the index. If there is no transaction entry which corresponds to the index, then the indexed list entry pointer contains an end of list indicator. Otherwise, the indexed list entry pointer contains a pointer to a transaction entry corresponding to the index. If there is more than one transaction entry corresponding to the index, then the indexed list pointer field of the transaction entry corresponding to the index contains a pointer to another transaction entry.
- a new transaction entry is created for the new transaction and the new transaction entry is added to the transaction log.
- the last chronological list pointer is updated to point to the new transaction entry.
- the chronological list pointer field of the transaction entry previously pointed to by the last chronological list pointer is updated to point to the new transaction entry. If the indexed list entry pointer corresponding to the index for the new transaction contains an end of list indicator, the indexed list entry pointer is updated to point to the new transaction entry. Otherwise, the indexed list pointer field of the last transaction entry corresponding to the index is updated to point to the new transaction identifier.
- the chronological list minimizes the time required to identify and delete the oldest transaction entries. There is no need to search the entire transaction log to locate the oldest transaction entry because the first chronological list pointer points to the oldest transaction entry. Similarly, only those transaction entries with the same index as the new transaction are searched to determine if a new transaction matches an existing transaction in the transaction log. The search time is minimized because only those transaction entries with the same index are searched.
- Fig. 1 is a block diagram of two switched telephone networks illustrating the operating environment for an exemplary embodiment of the present invention.
- Fig. 2 is a block diagram of a computer illustrating the operating environment for an exemplary embodiment of the present invention.
- Fig. 3 is an illustration of a transaction entry created by an exemplary embodiment of the present invention.
- Fig. 4A is an illustration of a transaction log created by an exemplary embodiment of the present invention.
- Fig. 4B is an illustration of the transaction log of Fig. 4A after the deletion of a transaction entry by an exemplary embodiment of the present invention.
- Fig. 4C is an illustration of a transaction log of Fig. 4A after the addition of a transaction entry by an exemplary embodiment of the present invention.
- Fig. 5 is a logical flow diagram illustrating the steps for maintaining a transaction log by deleting stale transaction entries in accordance with an exemplary embodiment of the present invention.
- Fig. 6A is a logical flow diagram illustrating the steps for adding a transaction entry to a transaction log in accordance with an exemplary embodiment of the present invention.
- Fig. 6B is a logical flow diagram illustrating the steps for comparing a transaction to the existing transactions in a transaction log in accordance with an exemplary embodiment of the present invention.
- the present invention is directed toward a system and method for recording transactions in a transaction log using a chronological list superimposed on an indexed list.
- the present invention may be used to implement transaction ID logging in an LNP enabled telecommunications network. Briefly described, a log of messages recently sent to other networks is maintained in a chronological list and in an indexed list. Each time a message is received from another network, the message is compared to the existing messages in the transaction log. If the message matches an existing message in the transaction log, then a loop is detected. The chronological list is used to detect and delete stale transaction entries. The indexed list is used to compare a new message to the existing messages in the transaction log. The use of a chronological list superimposed on an indexed list implements transaction ID logging without adversely impacting network performance.
- Fig. 1 is a functional block diagram that illustrates a portion of a public switched telecommunications network (“PSTN") 10 configured for LNP.
- PSTN public switched telecommunications network
- APN's Two Advanced Intelligent Networks
- Fig. 1 illustrates two networks in the LNP-enabled portion of the PSTN 10, additional networks for additional local service providers may exist.
- Fig. 1 shows both networks as AIN's, a network is not necessarily implemented as an ALN.
- An AIN is well-known to those skilled in the art and is described in the commonly-assigned patent to Weisser, Jr., U.S. Patent No. 5,430,719, which is incorporated herein by reference.
- the ALN's 11a and l ib may include a plurality of central office switches (not shown). Some of the central office switches are equipped with service switching points ("SSP's"). Representative SSP's 12a and 12b are shown in Fig. 1.
- An SSP (specifically, a Class 5 central office switch) is the ALN component of a typical electronic central office switch used by a local exchange carrier.
- the terms "SSP” and “switch” are used interchangeably herein to refer to a telecommunications switch for connecting voice-channel circuits, including voice-channel lines.
- the voice-channel lines for SSP 12a and SSP 12b are respectively 14a-n and 17a-n.
- the switches of ALN's 11a and l ib are interconnected by a network of high capacity voice-channel circuits known as trunks 22.
- Each switch of an AIN is operable for receiving a communication, such as a telephone call, originating on a line serviced by the switch, and for routing the telephone call to the correct terminating station.
- the terminating equipment is represented by telephones, 16a-n and 18a-n. Although telephones are illustrated in Fig. 1 as the pieces of terminating equipment, terminating equipment may include other communication devices, such as wireless telephones, facsimile machines, computers, modems, etc.
- Each switch in an ALN is connected to a local signal transfer point ("STP") via a data link.
- STP local signal transfer point
- switch 12a is connected to STP 24a by data link 26a
- switch 12b is connected to STP 24b by data link 26b.
- the STP's 24a and 24b are multi-port, high-speed packet switches that are programmed to respond to the routing information and route a packet to its destination.
- STP 24a of Network A is connected to STP 24b of Network B via a Signaling System 7 ("SS7”) data link 19.
- SS7 Signaling System 7
- SCP 27a is connected to STP 24a by an SS7 data link 28a and SCP 27b is connected to STP 24b by an SS7 data link 28b.
- An SCP is a remotely programmable intelligent network element. As is known to those skilled in the art, SCP's are physically implemented by relatively powerful fault tolerant computers.
- an LNP database may be located in an SCP.
- An LNP database includes a look-up table that cross-references ported directory numbers to Local Routing Numbers ("LRN"). An LRN identifies the switch which serves the ported directory number.
- Each local service provider may maintain its own LNP database. Alternatively, if future implementations of an STP or an SSP contain sufficient memory, an LNP database may be located in an STP or an SSP.
- An SSP may be configured to interface with the intelligent network elements of the ALN through the use of a "trigger."
- a trigger is defined by a predetermined set of conditions and serves as an indicator for the SSP to take certain action.
- an SSP 12a may create a digital data message for transmission over the network of digital data links 26a and 28a.
- the SSP typically holds the communication until the SSP receives a reply to its message from an appropriate network element, such as an SCP, instructing the SSP to take a certain action. If the SSP receives no instructions within a certain amount of time, the SSP "times-out" and executes a default task for the communication.
- the message created by an SSP in response to a trigger is known as a "query" message.
- a query message opens a “transaction” and the SSP generally holds the communication while the transaction remains open.
- the reply to the query message may be a "conversation” message or a "response” message.
- Conversation messages allow for bi- directional exchanges between network elements while the transaction remains open.
- a "response” message closes the transaction opened by the query message, and usually instructs the SSP to route the held communication for connection with a terminating station.
- a trigger may be activated or deactivated at an SSP by another network element through an "update" message.
- Query messages, conversation messages, response messages, and update messages are standard types of messages defined by the ALN protocol. The details of the ALN protocol are well known to those skilled in the art and will not be further described herein. For more information regarding the ALN protocol, see Bellcore Specification TR-NWT-001284 Switching Systems Generic Requirements for ALN 0.1, referenced above.
- Fig. 1 may be used to illustrate non-call associated message routing in an LNP enabled telecommunications network.
- SSP 12a detects a trigger from originating user station 16n in Network A.
- the trigger causes SSP 12a to open a transaction and to formulate a message to check the status of the directory number at end user station 18a in Network B. Additional messages to check the status of a called directory number may occur if the Repeat Dialing service is invoked. Some of the messages associated with a CLASS service such as the Repeat Dialing Service may require GTT.
- STP 24a accesses the LNP database 30a of SCP 27a to determine where the message should be routed. In this example, LNP database 30a indicates that the message should be routed to Network B so SCP 27a instructs STP 24a to route the query message to Network B via the SS7 data link 19.
- STP 24b accesses the LNP database 30b of SCP 27b to determine whether the message concerns a directory number served by a Network B switch.
- LNP database 30b indicates that the message concerns a directory number served by a Network B switch, so SCP 27b instructs STP 24b to check the status of the directory number at SSP 12b for the end user station 18a.
- SCP 27b instructs STP 24b to check the status of the directory number at SSP 12b for the end user station 18a.
- STP 24a accesses LNP database 30a of SCP 27a to determine where the message should be routed.
- LNP database 30a indicates that the message should be routed to Network B so SCP 27a instructs STP 24a to route the message to Network B via the SS7 data link 19.
- STP 24b accesses the LNP database 30b of SCP 27b to determine whether the message concerns a directory number served by a Network B switch.
- the LNP database 30b has not been updated, so the LNP database 30b indicates that the message concerns a directory number served by a Network A switch.
- SCP 27b instructs STP 24b to route the message to Network A.
- STP 24a accesses the LNP database 30a of SCP 27a to determine whether the message concerns a switch in Network A.
- LNP database 30a indicates that the message concerns a switch in Network B so the message is routed back to Network B. The message continues to loop between Network A and Network B until the LNP database of Network B is updated.
- message looping has been illustrated using the Repeat Dialing service, those skilled in the art will appreciate that message looping may occur in other situations. Message looping may occur whenever GTT is performed for messages such as Transaction Capabilities Applications Protocol ("TCAP") messages in an LNP enabled telecommunications network.
- TCAP Transaction Capabilities Applications Protocol
- FIG. 1 illustrates a conventional land-line telecommunications system.
- the disclosed embodiment of the present invention is described in the context of this conventional land-line telecommunications system. It should be understood, however, that alternative embodiments of the present invention may operate in association with cellular or other wireless telecommunications systems.
- FIG. 2 provides a brief, general description of a suitable computing environment for the invention.
- the invention may be practiced with other computer system configurations, including handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like.
- the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
- program modules may be located in both local and remote memory storage devices.
- an exemplary computer system for implementing an embodiment of the invention includes a conventional personal computer 220, including a processing unit 221, a system memory 222, and a system bus 223 that couples the system memory to the processing unit 221.
- the personal computer 220 further includes a hard disk drive 227, a magnetic disk drive 228, e.g., to read from or write to a removable disk 229, and an optical disk drive 230, e.g., for reading a CD-ROM disk 231 or to read from or write to other optical media.
- the hard disk drive 227, magnetic disk drive 228, and optical disk drive 230 are connected to the system bus 223 by a hard disk drive interface 232, a magnetic disk drive interface 233, and an optical drive interface 234, respectively.
- the drives and their associated computer- readable media provide nonvolatile storage for the personal computer 220.
- computer-readable media refers to a hard disk, a removable magnetic disk and a CD-ROM disk, it should be appreciated by those skilled in the art that other types of media which are readable by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, and the like, may also be used in the exemplary operating environment.
- a number of program modules may be stored in the drives and RAM 225, including an operating system 235, one or more application programs 236, other program modules 237, such as a transaction ID logging program module 237a, and program data 238.
- a user may enter commands and information into the personal computer 220 through a keyboard 240 and pointing device, such as a mouse 242.
- Other input devices may include a microphone, joystick, game pad, satellite dish, scanner, or the like.
- serial port interface 246 that is coupled to the system bus, but may be connected by other interfaces, such as a game port or a universal serial bus (USB).
- a monitor 247 or other type of display device is also connected to the system bus 223 via an interface, such as a video adapter 248.
- personal computers typically include other peripheral output devices (not shown), such as speakers or printers.
- the personal computer 220 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 249.
- the remote computer 249 may be a server, a router, a peer device or other common network node, and typically includes many or all of the elements described relative to the personal computer 220, although only a memory storage device 250 has been illustrated in Figure 21.
- the logical connections depicted in Figure 21 include a local area network (LAN) 251 and a wide area network (WAN) 252.
- LAN local area network
- WAN wide area network
- the personal computer 220 When used in a LAN networking environment, the personal computer 220 is connected to the LAN 251 through a network interface 253. When used in a WAN networking environment, the personal computer 220 typically includes a modem 254 or other means for establishing communications over the WAN 252, such as the Internet.
- the modem 254 which may be internal or external, is connected to the system bus 223 via the serial port interface 246.
- program modules depicted relative to the personal computer 220, or portions thereof may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
- a transaction log is comprised of a number of transaction entries, each transaction entry corresponds to a message, such as a TCAP message, sent to another network.
- An exemplary transaction entry 300 is shown in Fig. 3.
- the transaction entry includes a transaction descriptor field 302, a time stamp field 304, a chronological list pointer field 306 and an indexed list pointer field 308.
- the transaction descriptor field 302 includes a transaction descriptor which identifies the transaction associated with the message.
- the transaction descriptor field 302 also includes other information associated with the transaction.
- the transaction descriptor may include the TCAP transaction ID, the TCAP message type, the calling party point code from the SCCP header and the TCAP message length.
- the time stamp field 304 contains a time stamp which indicates the time the message was sent.
- the chronological list pointer field 306 contains a chronological list pointer to the next entry in the chronological list.
- the indexed list pointer field 308 contains an indexed list pointer to the next entry with the same index in the indexed list.
- the transaction entries are placed in chronological order in the chronological list using chronological list pointers.
- chronological list pointers Preferably, two chronological list pointers, a first chronological list pointer and a last chronological list pointer, keep track of the beginning of the chronological list and the end of the chronological list respectively.
- the first chronological list pointer identifies the oldest transaction entry in the log and the last chronological list identifies the most recent transaction entry.
- the order of the intervening transaction entries is maintained by the chronological list pointer fields of the transaction entries.
- the chronological list 406, illustrated in Fig. 4 A comprises a plurality of chronological pointers 402, 404, 426, 436, 446, 456, 466, and 476.
- the first chronological list pointer 404 points to the oldest transaction entry 420 in the chronological list and the last chronological list pointer 402 points to the latest transaction entry 470 in the chronological list.
- the chronological list pointer field of a transaction entry points to the next oldest transaction entry.
- the oldest transaction entry 420 includes a chronological list pointer field 426 which contains a chronological list pointer to the second oldest transaction entry 460.
- the second oldest transaction entry 460 includes a chronological list pointer field 466 which contains a chronological list pointer to the third oldest transaction entry 430.
- the chronological list pointer field for the latest transaction entry 470 contains an end of list indicator in the chronological list pointer field 476.
- the chronological list helps solve the problem of efficiently maintaining the transaction log.
- the transaction log is maintained by deleting stale transaction entries.
- a stale transaction entry is a transaction entry which has been stored in the transaction log for longer than a predetermined maintenance period.
- the oldest transaction entries in the transaction log may be quickly and easily identified because the oldest transaction entries are at the front of the chronological list.
- the first chronological list pointer identifies the oldest transaction entry.
- the chronological list pointer of the oldest transaction entry identifies the second oldest transaction entry.
- maintaining the transaction log by purging stale transaction entries insures that a subsequent valid message is not detected as a looping message.
- the transaction entries are also placed in an indexed list.
- the indexed list comprises a list of indexed list entry pointers. Each indexed list entry pointer corresponds to an index and points to a transaction entry which corresponds to the same index. A transaction entry corresponds to an index if the transaction descriptor for the transaction entry corresponds to the index.
- the indexes range from 0000 to 4095. However, the range of the indexes may vary from implementation to implementation.
- the lower index is preferably zero and the upper index is preferably defined as (2 n - 1), where n is an integer.
- a transaction entry corresponds to an index if the "hashed" transaction descriptor for the transaction entry matches that index.
- Hashing converts a transaction descriptor into a pseudo random index.
- the index is not truly random because for any given transaction descriptor, hashing always results in the same pseudo random index. However, the pseudo random indexes produced by hashing are sufficiently random so that the transaction entries are evenly distributed among the indexes. If the implementation uses indexes ranging from 0000 to 4095, then preferably, the transaction descriptor is hashed by calculating the modulo 4096 of the transaction descriptor. The modulo operation is performed by dividing the transaction descriptor by 4096 and returning the remainder of the division operation.
- the modulo number 4096 is preferred, in part, because the modulo of the transaction descriptor for a transaction entry may be determined by performing a logical AND operation with the transaction descriptor and 4095. As will be apparent to those skilled in the art, if the indexes range from zero to 2 n - 1, then the modulo 2 n may be determined by performing a logical AND operation with the transaction descriptor and 2 n - 1.
- Fig. 4A also illustrates the indexed list 400.
- the indexed list 400 comprises a list of indexed list entry pointers 410a, 410b, 410c . . . 410n. Each indexed list entry pointer corresponds to an index.
- indexed list entry pointer 410a corresponds to 0000 and indexed list entry pointer 410b corresponds to 0001.
- Hashing transaction descriptors may result in multiple transaction descriptors having the same index. For example, modulo 4096 of transaction descriptor 1000 and modulo 4096 of transaction descriptor 9192 are both 1000. If there are multiple transaction descriptors with the same index, then all the transaction entries with the same index are linked together via the indexed list pointer fields (e.g. 428 and 438) of the transaction entries. As shown in Fig. 4A, transaction entries 420, 430, and 440 and indexed list entry pointer 410a all correspond to index 0000. Indexed list entry pointer 410a points to transaction entry 420.
- Transaction entry 420 is linked to transaction entry 430 via its indexed list pointer field 428.
- transaction entry 430 is linked to transaction entry 440 via its indexed list pointer field 438. Since there are no other transaction entries with index 0000, transaction entry 440 contains an end of list indicator in its indexed list pointer field 448.
- the indexed list helps solve the problem of quickly searching the transaction log to determine whether a new transaction matches an existing transaction in the transaction log.
- the transaction descriptor for the new transaction is hashed to determine its index. The index is used to identify an indexed list entry pointer which, in turn, is used to identify transaction entries which correspond to the index.
- the transaction information in the transaction descriptor field of the new transaction is compared to the transaction information in the transaction descriptor fields of the transaction entries which correspond to the index. Only the transaction entries which correspond to the index are checked. If the transaction information in the transaction descriptor field of the new transaction matches the transaction information in the transaction descriptor field of an existing transaction, the indexes for the two transaction descriptors will match because hashing always produces the same index for the same input.
- a chronological list superimposed on an indexed list solves the problems of efficiently maintaining and searching the transaction log.
- the chronological list minimizes the time required to identify the oldest transaction entry. There is no need to search the transaction log to locate the oldest transaction entry because the first chronological list pointer points to the oldest transaction entry. If the oldest transaction entry is stale or if there are no available transaction entries, then the oldest transaction entry may be deleted by modifying the first chronological list pointer and by modifying the indexed list entry pointer associated with the index for the oldest transaction entry.
- the indexed list minimizes the time required to search the list for transactions which match a new transaction. Only those transaction entries with the same index as the new transaction need be compared.
- Figs. 4A, 4B and 5 The steps for maintaining the transaction log by deleting stale transaction entries may be illustrated by reference to Figs. 4A, 4B and 5.
- Fig. 4A illustrates an exemplary transaction log 408 using a chronological list 406 superimposed on an indexed list 400.
- Fig. 4B illustrates the transaction log of Fig. 4A after a stale transaction entry is purged from the transaction log.
- Fig. 5 is a logical flow diagram illustrating the steps for deleting a stale transaction entry from the transaction log.
- Fig. 4A illustrates the transaction log 408 prior to the deletion of any stale transaction entries.
- the transaction log 408 comprises six transaction entries 420, 430, 440, 450, 460 and 470.
- the first chronological list pointer 404 points to transaction entry 420 and the last chronological list pointer 402 points to transaction entry 470.
- the chronological order of the transaction entries is 420, 460, 430, 440, 450 and 470.
- the indexed list contains indexes from 0000 to 4095.
- Transaction entries 420, 430, and 440 correspond to index 0000
- transaction entry 450 corresponds to index 0002
- transaction entries 460 and 470 correspond to index 0004.
- Fig. 5 illustrates the steps for deleting stale transaction entries from the transaction log.
- a transaction is stale if it has been stored in the transaction log for longer than a predetermined maintenance period.
- Transaction log maintenance may be initiated from an idle state as shown in step 500.
- transaction log maintenance may be initiated whenever a new transaction is received.
- a timer may be used to keep track of the time elapsed since the last maintenance operation was performed and to indicate when the predetermined maintenance period has expired.
- the timer is checked in step 502 to determine if the predetermined maintenance period has expired. If the timer indicates that the predetermined maintenance period has expired, then the method proceeds to step 504.
- step 504 the transaction entry pointed to by the first chronological list pointer is selected as the selected transaction entry.
- the first chronological list pointer 404 points to transaction entry 420, so transaction entry 420 is selected as the selected transaction entry.
- transaction entry 420 is selected as the selected transaction entry.
- the time stamp field 424 of the selected transaction entry 420 is checked in step 506 to determine whether the selected transaction entry is stale. If the time stamp contained in the time stamp field 424 indicates that the selected transaction entry 420 has been stored in the transaction log 408 for longer than the predetermined maintenance period, then the selected transaction entry 420 is deleted from the chronological list 406 in step 508 and from the indexed list 400 in step 510.
- the first chronological list pointer 404 is modified to point to the next oldest transaction entry 460.
- Transaction entry 460 is identified as the next oldest transaction entry by the chronological list pointer in the chronological list pointer field 426 of the selected transaction entry 420.
- the other chronological list pointers remain the same.
- the selected transaction entry 420 is also deleted from the indexed list.
- the index for the selected transaction entry 420 is calculated by hashing all or a predetermined portion of the transaction descriptor. In one implementation of the LNP embodiment, the index is calculated by computing the modulo 4096 of a predetermined portion of the transaction descriptor for the selected transaction entry. In Fig. 4A, the index for the selected transaction entry 420 is 0000. The index is used to identify an indexed list entry pointer 410a corresponding to the index. If the indexed list pointer field 428 of the selected transaction entry 420 contains an indexed list pointer to a next transaction entry 430, then the indexed list entry pointer 410a is modified to point to the next transaction entry 430. If the indexed list pointer field 428 of the selected transaction entry 420 contains an end of list indicator, then the indexed list entry pointer 410a is modified to include an end of list indicator. The other indexed list entry pointers and indexed list pointers remain the same.
- the oldest transaction entry for a given index is always pointed to by the indexed list entry pointer because a new transaction entry is always added to the end of the indexed list. Thus, deleting a stale transaction entry from the indexed list, only requires that the indexed list entry pointer be modified.
- the details of adding a transaction entry to the indexed list are described below.
- the transaction log appears as shown in Fig. 4B.
- the transaction log now comprises five transaction entries 430, 440, 450, 460 and 470.
- the first chronological list pointer points to transaction entry 460 and the last chronological list pointer points to transaction entry 470.
- the chronological order of the transaction entries is 460, 430, 440, 450 and 470.
- Transaction entries 430 and 440 correspond to index 0000
- transaction entry 450 corresponds to index 0002
- transaction entries 460 and 470 correspond to index 0004.
- Fig. 5 shows that step 504 of selecting a transaction entry as the selected transaction entry, step 506 of making a determination as to whether the selected transaction entry is stale, step 508 of deleting the selected transaction entry from the chronological list and step 510 of deleting the selected transaction entry from the indexed list are repeated until the determination in step 506 is that the selected transaction entry is not stale.
- step 506 determines whether the selected transaction entry is not stale or if the determination in step 502 is that the predetermined maintenance period has not expired. If the determination in step 506 is that the selected transaction entry is not stale or if the determination in step 502 is that the predetermined maintenance period has not expired, then the method returns to the idle state of step 500. Alternatively, if transaction log maintenance was initiated by the receipt of a new transaction, the method proceeds with the steps for handling a new transaction.
- Fig. 4A illustrates an exemplary transaction log 408 using a chronological list 406 superimposed on an indexed list 400.
- Fig. 4C illustrates the transaction log of Fig. 4A after a new transaction entry is added to the transaction log.
- Fig. 6A is a logical flow diagram illustrating the steps for adding a new transaction entry to the transaction log.
- Fig 6B is a logical flow diagram illustrating the steps for making a determination as to whether a new transaction matches an existing transaction in the transaction log.
- Fig. 4A illustrates the transaction log 408 before the new transaction is received.
- step 602 a new transaction is received.
- step 604 a determination is made as to whether there is an available transaction entry in the transaction log for a new transaction entry. If there is an available transaction entry for the new transaction, then the method proceeds to step 610 where a determination is made as to whether the new transaction matches an existing transaction in the transaction log.
- the index for the new transaction is calculated in step 630 by hashing the transaction descriptor.
- the index is calculated by taking the modulo 4096 of the transaction descriptor for the new transaction. For example, if the transaction descriptor for the new transaction is 0004, the index for the new transaction is hashed by calculating modulo 4096 of 0004 which is 0004.
- the indexed list entry pointer corresponding to the index is identified in step 632. If the index is 0004, then, as shown in Fig.
- the indexed list entry pointer 410e is identified.
- step 634 a determination is made as to whether the indexed list entry pointer contains a pointer to a transaction entry. If the indexed list entry pointer does not contain a pointer to a transaction entry, then the determination is that the transaction does not match an existing transaction in the transaction log and the method continues to step 612. If the indexed list entry pointer contains a pointer to a transaction entry, then the transaction information for the existing transaction entry is compared to the transaction information for the new transaction in step 636. In Fig. 4A, the indexed list entry pointer 410e points to transaction entry 460 so the transaction information for existing transaction entry 460 is compared to the transaction information for the new transaction.
- step 618 of Fig. 6A the network takes some action which may include closing the transaction which originated the message or resending the message.
- the method proceeds to step 638.
- the transaction information for the existing transaction entry 460 does not match the transaction information for the new transaction so the method proceeds to step 638.
- step 638 a determination is made as to whether the indexed list pointer field of the transaction entry points to another transaction entry.
- step 636 the indexed list pointer field 468 of transaction entry 460 points to transaction entry 470, so step 636 is repeated with transaction entry 470.
- the determination in step 636 is that the transaction information for transaction 470 does not match the transaction information for the new transaction so the method proceeds to step 638. If the determination in step 638 is that the indexed list pointer field of the transaction entry does not point to another transaction entry, then the method proceeds to step 612 of Fig. 6A.
- the determination in step 638 for transaction entry 470 is that the indexed list pointer field 478 of the transaction entry 470 does not point to another transaction entry so the method proceeds to step 612 of Fig. 6A.
- the transaction is added to the transaction log in steps 612- 616.
- a new transaction entry for the transaction is created.
- the new transaction entry contains a transaction descriptor field, a time stamp field, a chronological list pointer field and an indexed list pointer field.
- the transaction descriptor field preferably contains a portion of the SS7 header and the time stamp field contains a time indicating when the message associated with the new transaction occurred.
- the new transaction entry 480 includes a transaction descriptor field 482, a time stamp field 484, a chronological list pointer field 486 and an indexed list pointer field 488 and is shown in Fig. 4C.
- the new transaction entry is placed in the chronological list in step 614.
- the last chronological list pointer is updated to point to the new transaction entry.
- the chronological list pointer field for the transaction entry previously pointed to by the last chronological list pointer is also updated to point to the new transaction entry.
- the last chronological list pointer 402 is updated to point to the new transaction entry 480 and the last chronological list pointer field 476 for the transaction entry 470 previously pointed to by the last chronological list pointer is updated to point to the new transaction entry 480.
- the chronological list pointer field 486 for the new transaction entry 480 contains an end of list indicator.
- the new transaction entry is placed at the end of the list of transaction entries with the same index.
- the oldest transaction entry for a given index is always pointed to by the indexed list entry pointer.
- the transaction entries with the same index were previously identified in step 610 where a determination was made as to whether the new transaction matches an existing transaction in the transaction log.
- transaction entries 460 and 470 correspond to the same index as the transaction.
- the new transaction entry is added after transaction entry 470 by modifying the indexed list pointer field 478 of transaction entry 470 to point to the new transaction entry 480.
- the indexed list pointer field of the new transaction entry contains an end of list indicator. Alternatively, if the indexed list entry pointer for the index corresponding to the new transaction entry contains an end of list indicator, then in step 616, the indexed list entry pointer is updated to point to the new transaction entry.
- the transaction log after the new transaction entry is added is shown in Fig. 4C.
- the transaction log now comprises seven transaction entries 420, 430, 440, 450, 460, 470 and 480.
- the first chronological list pointer points to transaction entry 420 and the last chronological list pointer points to transaction entry 480.
- the chronological order of the transaction entries is 420, 460, 430, 440, 450, 470 and 480.
- Transaction entries 420, 430, and 440 correspond to index 0000
- transaction entry 450 corresponds to index 0002
- transaction entries 460, 470 and 480 correspond to index 0004.
- a transaction entry is not available in the transaction log when a transaction is received, then the oldest transaction entry is purged from the transaction log.
- the steps of making a transaction entry available for a newly received transaction are shown in Fig. 6A.
- the transaction is received in step 602.
- step 604 a determination is made as to whether there is an available transaction entry in the transaction log. If a transaction entry is not available, then the oldest transaction entry is purged from the chronological list in step 606 and is purged from the indexed list in step 608. Purging the oldest transaction entry from the chronological list and the indexed list follows the steps described above in connection with maintaining the transaction log.
- the present invention is directed toward a system and method for logging transactions in a transaction log using a chronological list superimposed on an indexed list.
- the chronological list is used to identify and delete stale transaction entries.
- the time needed to identify and delete stale transaction entries is minimized because the oldest transaction entry is at the beginning of the chronological list and is at the beginning of the list pointed to by the indexed list entry pointer corresponding to the index for the oldest transaction entry.
- the indexed list is used to compare a new transaction to the existing transactions in the transaction log to determine whether the new transaction matches an existing transaction.
- the new transaction is only compared to transaction entries with the same index as the new transaction.
- the time to determine whether the new transaction matches an existing transaction is minimized by limiting the number of transaction entries compared to only those transaction entries with the same index as the new transaction.
- the present invention may be used to implement transaction ID logging to detect non-call associated message looping in an LNP enabled telecommunications network.
- the use of a chronological list superimposed on an indexed list implements transaction ID logging without adversely impacting network performance.
- Other embodiments may be used to log other types of transactions or data.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU72577/98A AU748854B2 (en) | 1997-04-30 | 1998-04-27 | System and method for recording transactions |
CA002288053A CA2288053A1 (en) | 1997-04-30 | 1998-04-27 | System and method for recording transactions |
EP98919892A EP0986916A2 (en) | 1997-04-30 | 1998-04-27 | System and method for recording transactions |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/846,576 US6286011B1 (en) | 1997-04-30 | 1997-04-30 | System and method for recording transactions using a chronological list superimposed on an indexed list |
US08/846,576 | 1997-04-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO1998049820A2 true WO1998049820A2 (en) | 1998-11-05 |
WO1998049820A3 WO1998049820A3 (en) | 1999-01-28 |
Family
ID=25298326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1998/008354 WO1998049820A2 (en) | 1997-04-30 | 1998-04-27 | System and method for recording transactions |
Country Status (5)
Country | Link |
---|---|
US (3) | US6286011B1 (en) |
EP (1) | EP0986916A2 (en) |
AU (1) | AU748854B2 (en) |
CA (1) | CA2288053A1 (en) |
WO (1) | WO1998049820A2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1616236A2 (en) * | 2003-04-14 | 2006-01-18 | Netbotz, Inc. | Method and system for journaling and accessing sensor and configuration data |
CN114510494A (en) * | 2022-04-18 | 2022-05-17 | 成方金融科技有限公司 | Log playback method and device and storage medium |
Families Citing this family (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU6669198A (en) * | 1997-02-28 | 1998-09-18 | Siebel Systems, Inc. | Partially replicated distributed database with multiple levels of remote clients |
US6286011B1 (en) * | 1997-04-30 | 2001-09-04 | Bellsouth Corporation | System and method for recording transactions using a chronological list superimposed on an indexed list |
WO1999055098A1 (en) * | 1998-04-22 | 1999-10-28 | Siemens Aktiengesellschaft | Signalling system at a signalling point |
US6954458B1 (en) * | 1998-10-20 | 2005-10-11 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for message transport and segmentation |
GB2344196B (en) * | 1998-11-26 | 2003-03-05 | Ibm | Data processing apparatus,method and computer program with optimized key-pointing operation for log record storage |
US6836662B1 (en) * | 1998-12-22 | 2004-12-28 | Qwest Communications International, Inc. | Method and system for connecting wireless handsets with wireline switches |
US6574318B1 (en) * | 1999-04-05 | 2003-06-03 | Agere Systems Inc. | Call related information receiver to receiver transfer |
FI107974B (en) * | 1999-07-14 | 2001-10-31 | Nokia Networks Oy | Procedure and system for statistics in a telephone exchange system |
US6574750B1 (en) * | 2000-01-06 | 2003-06-03 | Oracle Corporation | Preserving consistency of passively-replicated non-deterministic objects |
US6625273B1 (en) * | 2000-03-28 | 2003-09-23 | Sevis Systems, Inc. | System and method for a local number portability cache |
US7725423B1 (en) * | 2001-02-08 | 2010-05-25 | Teradata Us, Inc. | Analyzing associations in the order of transactions |
US6662176B2 (en) * | 2001-05-07 | 2003-12-09 | Hewlett-Packard Development Company, L.P. | Database indexing and rolling storage method for time-stamped normalized event data |
US6865637B1 (en) * | 2001-06-26 | 2005-03-08 | Alcatel | Memory card and system for updating distributed memory |
US6851070B1 (en) * | 2001-08-13 | 2005-02-01 | Network Appliance, Inc. | System and method for managing time-limited long-running operations in a data storage system |
US7249118B2 (en) * | 2002-05-17 | 2007-07-24 | Aleri, Inc. | Database system and methods |
US7170989B1 (en) * | 2002-09-06 | 2007-01-30 | Sprint Communications Company L.P. | Transaction dependency manager |
US7397768B1 (en) | 2002-09-11 | 2008-07-08 | Qlogic, Corporation | Zone management in a multi-module fibre channel switch |
US6976038B2 (en) * | 2002-10-17 | 2005-12-13 | International Business Machines Corporation | Method and apparatus for real time creation and modification of a change log for multi-server synchronization |
US7455863B2 (en) * | 2002-11-07 | 2008-11-25 | Smarthealth, Inc. | Flexible elastomer articles and methods of manufacturing |
US20040114743A1 (en) * | 2002-12-11 | 2004-06-17 | Gilbert Quenton Lanier | System and method for presenting caller identification logs |
US7525910B2 (en) | 2003-07-16 | 2009-04-28 | Qlogic, Corporation | Method and system for non-disruptive data capture in networks |
US7471635B2 (en) | 2003-07-16 | 2008-12-30 | Qlogic, Corporation | Method and apparatus for test pattern generation |
US7620059B2 (en) | 2003-07-16 | 2009-11-17 | Qlogic, Corporation | Method and apparatus for accelerating receive-modify-send frames in a fibre channel network |
US7447224B2 (en) * | 2003-07-21 | 2008-11-04 | Qlogic, Corporation | Method and system for routing fibre channel frames |
US7430175B2 (en) | 2003-07-21 | 2008-09-30 | Qlogic, Corporation | Method and system for managing traffic in fibre channel systems |
US7522522B2 (en) | 2003-07-21 | 2009-04-21 | Qlogic, Corporation | Method and system for reducing latency and congestion in fibre channel switches |
US7406092B2 (en) | 2003-07-21 | 2008-07-29 | Qlogic, Corporation | Programmable pseudo virtual lanes for fibre channel systems |
US7684401B2 (en) | 2003-07-21 | 2010-03-23 | Qlogic, Corporation | Method and system for using extended fabric features with fibre channel switch elements |
US7558281B2 (en) | 2003-07-21 | 2009-07-07 | Qlogic, Corporation | Method and system for configuring fibre channel ports |
US7420982B2 (en) | 2003-07-21 | 2008-09-02 | Qlogic, Corporation | Method and system for keeping a fibre channel arbitrated loop open during frame gaps |
US7630384B2 (en) | 2003-07-21 | 2009-12-08 | Qlogic, Corporation | Method and system for distributing credit in fibre channel systems |
US7646767B2 (en) * | 2003-07-21 | 2010-01-12 | Qlogic, Corporation | Method and system for programmable data dependant network routing |
US7573909B2 (en) | 2003-07-21 | 2009-08-11 | Qlogic, Corporation | Method and system for programmable data dependant network routing |
US7525983B2 (en) | 2003-07-21 | 2009-04-28 | Qlogic, Corporation | Method and system for selecting virtual lanes in fibre channel switches |
US7894348B2 (en) | 2003-07-21 | 2011-02-22 | Qlogic, Corporation | Method and system for congestion control in a fibre channel switch |
US7466700B2 (en) | 2003-07-21 | 2008-12-16 | Qlogic, Corporation | LUN based hard zoning in fibre channel switches |
US7583597B2 (en) | 2003-07-21 | 2009-09-01 | Qlogic Corporation | Method and system for improving bandwidth and reducing idles in fibre channel switches |
US7580354B2 (en) | 2003-07-21 | 2009-08-25 | Qlogic, Corporation | Multi-speed cut through operation in fibre channel switches |
US7792115B2 (en) | 2003-07-21 | 2010-09-07 | Qlogic, Corporation | Method and system for routing and filtering network data packets in fibre channel systems |
US7522529B2 (en) | 2003-07-21 | 2009-04-21 | Qlogic, Corporation | Method and system for detecting congestion and over subscription in a fibre channel network |
US7477655B2 (en) | 2003-07-21 | 2009-01-13 | Qlogic, Corporation | Method and system for power control of fibre channel switches |
US7564789B2 (en) | 2004-02-05 | 2009-07-21 | Qlogic, Corporation | Method and system for reducing deadlock in fibre channel fabrics using virtual lanes |
US7480293B2 (en) | 2004-02-05 | 2009-01-20 | Qlogic, Corporation | Method and system for preventing deadlock in fibre channel fabrics using frame priorities |
US7340167B2 (en) * | 2004-04-23 | 2008-03-04 | Qlogic, Corporation | Fibre channel transparent switch for mixed switch fabrics |
US7930377B2 (en) | 2004-04-23 | 2011-04-19 | Qlogic, Corporation | Method and system for using boot servers in networks |
US6990698B2 (en) * | 2004-05-12 | 2006-01-31 | Wall Sr Daniel P | UPS shippable adjustable articulating bed |
US8626730B2 (en) * | 2004-06-28 | 2014-01-07 | Sap Ag | Data processing methods, systems and computer programs for providing a payment using a web service |
US7593997B2 (en) | 2004-10-01 | 2009-09-22 | Qlogic, Corporation | Method and system for LUN remapping in fibre channel networks |
US8295299B2 (en) | 2004-10-01 | 2012-10-23 | Qlogic, Corporation | High speed fibre channel switch element |
US7472138B2 (en) * | 2004-12-14 | 2008-12-30 | International Business Machines Corporation | System and method for handing input/output errors during recovery of journaling files in a data processing system |
US7519058B2 (en) | 2005-01-18 | 2009-04-14 | Qlogic, Corporation | Address translation in fibre channel switches |
FI20060427L (en) * | 2006-05-03 | 2007-11-04 | Tellabs Oy | Method and equipment for processing a sequential file |
US8589357B2 (en) * | 2006-10-20 | 2013-11-19 | Oracle International Corporation | Techniques for automatically tracking and archiving transactional data changes |
US20080140667A1 (en) * | 2006-12-07 | 2008-06-12 | Sony Ericsson Mobile Communications Ab | Device and method for creating a transaction log of data exchanges between a portable mobile communications device and other wireless devices |
US20080195750A1 (en) * | 2007-02-09 | 2008-08-14 | Microsoft Corporation | Secure cross platform auditing |
US9021482B2 (en) * | 2007-05-04 | 2015-04-28 | International Business Machines Corporation | Reordering data responses using ordered indicia in a linked list |
US7702662B2 (en) * | 2007-05-16 | 2010-04-20 | International Business Machines Corporation | Method and system for handling reallocated blocks in a file system |
US9449047B2 (en) | 2007-06-19 | 2016-09-20 | Sybase, Inc. | Dynamic modification of schemas in streaming databases |
US8745012B2 (en) | 2007-08-10 | 2014-06-03 | Sybase, Inc. | Log-structured store for streaming data |
US8140483B2 (en) * | 2007-09-28 | 2012-03-20 | International Business Machines Corporation | Transaction log management |
US8298272B2 (en) * | 2008-08-12 | 2012-10-30 | Warsaw Orthopedic Inc. | Self-locking surgical fastener |
US9082105B2 (en) * | 2009-09-08 | 2015-07-14 | Ricoh Co. Ltd. | Paper-like forms processing system and method |
US8583584B2 (en) | 2009-10-20 | 2013-11-12 | Google Inc. | Method and system for using web analytics data for detecting anomalies |
US20110119100A1 (en) * | 2009-10-20 | 2011-05-19 | Jan Matthias Ruhl | Method and System for Displaying Anomalies in Time Series Data |
US11449394B2 (en) | 2010-06-04 | 2022-09-20 | Commvault Systems, Inc. | Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources |
US8504526B2 (en) * | 2010-06-04 | 2013-08-06 | Commvault Systems, Inc. | Failover systems and methods for performing backup operations |
KR20140047230A (en) * | 2012-10-10 | 2014-04-22 | (주)티베로 | Method for optimizing distributed transaction in distributed system and distributed system with optimized distributed transaction |
US9811427B2 (en) | 2014-04-02 | 2017-11-07 | Commvault Systems, Inc. | Information management by a media agent in the absence of communications with a storage manager |
US11410176B2 (en) * | 2014-06-27 | 2022-08-09 | Tigergraph, Inc. | System and method for enhanced detection of fraudulent electronic transactions |
US10102251B2 (en) | 2015-04-14 | 2018-10-16 | Microsoft Technology Licensing, Llc | Lockless open collection data structure |
US10592494B2 (en) | 2015-04-14 | 2020-03-17 | Microsoft Technology Licensing, Llc | Collection record for overlapping data stream collections |
US10133768B2 (en) * | 2015-04-14 | 2018-11-20 | Microsoft Technology Licensing, Llc | Latest external dependee entity in transaction record |
US10031814B2 (en) | 2015-04-14 | 2018-07-24 | Microsoft Technology Licensing, Llc | Collection record location as log tail beginning |
US9959137B2 (en) | 2015-04-14 | 2018-05-01 | Microsoft Technology Licensing, Llc | Transaction redo using skip element for object |
US10747630B2 (en) | 2016-09-30 | 2020-08-18 | Commvault Systems, Inc. | Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including operations by a master monitor node |
US11200124B2 (en) | 2018-12-06 | 2021-12-14 | Commvault Systems, Inc. | Assigning backup resources based on failover of partnered data storage servers in a data storage management system |
US11099956B1 (en) | 2020-03-26 | 2021-08-24 | Commvault Systems, Inc. | Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations |
US11645175B2 (en) | 2021-02-12 | 2023-05-09 | Commvault Systems, Inc. | Automatic failover of a storage manager |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0350918A2 (en) * | 1988-07-13 | 1990-01-17 | Fujitsu Limited | Electronic switching system having call-forwarding function |
US5430719A (en) * | 1993-06-28 | 1995-07-04 | Bellsouth Corporation | Mediation of open advanced intelligent network interface by shared execution environment |
EP0750434A2 (en) * | 1995-06-19 | 1996-12-27 | AT&T IPM Corp. | Method for automatic maintenance of a local number portability database |
EP0751691A2 (en) * | 1995-06-30 | 1997-01-02 | Siemens Stromberg-Carlson | A method for routing telephone calls to subscribers of different service providers within a common numbering plan area |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5010478A (en) * | 1986-04-11 | 1991-04-23 | Deran Roger L | Entity-attribute value database system with inverse attribute for selectively relating two different entities |
US5170480A (en) * | 1989-09-25 | 1992-12-08 | International Business Machines Corporation | Concurrently applying redo records to backup database in a log sequence using single queue server per queue at a time |
US5440730A (en) * | 1990-08-09 | 1995-08-08 | Bell Communications Research, Inc. | Time index access structure for temporal databases having concurrent multiple versions |
CA2059615A1 (en) * | 1991-01-23 | 1992-07-24 | Edward J. Neubauer | Method of selecting and representing data |
US5204958A (en) * | 1991-06-27 | 1993-04-20 | Digital Equipment Corporation | System and method for efficiently indexing and storing a large database with high data insertion frequency |
US5280611A (en) * | 1991-11-08 | 1994-01-18 | International Business Machines Corporation | Method for managing database recovery from failure of a shared store in a system including a plurality of transaction-based systems of the write-ahead logging type |
JP2583010B2 (en) * | 1993-01-07 | 1997-02-19 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Method of maintaining consistency between local index table and global index table in multi-tier index structure |
WO1994018620A1 (en) * | 1993-02-08 | 1994-08-18 | Action Technologies, Inc. | Method and apparatus for managing business processes |
US5956489A (en) * | 1995-06-07 | 1999-09-21 | Microsoft Corporation | Transaction replication system and method for supporting replicated transaction-based services |
US5745750A (en) * | 1995-12-15 | 1998-04-28 | International Business Machines Corporation | Process and article of manufacture for constructing and optimizing transaction logs for mobile file systems |
US5740432A (en) * | 1996-05-28 | 1998-04-14 | Sun Microsystems, Inc. | Log file optimization in a client/server computing system |
US5832515A (en) * | 1996-09-12 | 1998-11-03 | Veritas Software | Log device layered transparently within a filesystem paradigm |
US5996054A (en) * | 1996-09-12 | 1999-11-30 | Veritas Software Corp. | Efficient virtualized mapping space for log device data storage system |
US6021408A (en) * | 1996-09-12 | 2000-02-01 | Veritas Software Corp. | Methods for operating a log device |
US5878410A (en) * | 1996-09-13 | 1999-03-02 | Microsoft Corporation | File system sort order indexes |
US5832508A (en) * | 1996-09-18 | 1998-11-03 | Sybase, Inc. | Method for deallocating a log in database systems |
US6014674A (en) * | 1996-11-14 | 2000-01-11 | Sybase, Inc. | Method for maintaining log compatibility in database systems |
US5966708A (en) * | 1997-03-28 | 1999-10-12 | International Business Machines | Tail compression of a log stream using a scratch pad of logically deleted entries |
US6286011B1 (en) * | 1997-04-30 | 2001-09-04 | Bellsouth Corporation | System and method for recording transactions using a chronological list superimposed on an indexed list |
US6219662B1 (en) * | 1997-07-10 | 2001-04-17 | International Business Machines Corporation | Supporting database indexes based on a generalized B-tree index |
-
1997
- 1997-04-30 US US08/846,576 patent/US6286011B1/en not_active Expired - Lifetime
-
1998
- 1998-04-27 CA CA002288053A patent/CA2288053A1/en not_active Abandoned
- 1998-04-27 WO PCT/US1998/008354 patent/WO1998049820A2/en not_active Application Discontinuation
- 1998-04-27 EP EP98919892A patent/EP0986916A2/en not_active Withdrawn
- 1998-04-27 AU AU72577/98A patent/AU748854B2/en not_active Ceased
-
1999
- 1999-08-06 US US09/369,550 patent/US6477546B1/en not_active Expired - Fee Related
- 1999-08-06 US US09/370,517 patent/US6230166B1/en not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0350918A2 (en) * | 1988-07-13 | 1990-01-17 | Fujitsu Limited | Electronic switching system having call-forwarding function |
US5430719A (en) * | 1993-06-28 | 1995-07-04 | Bellsouth Corporation | Mediation of open advanced intelligent network interface by shared execution environment |
EP0750434A2 (en) * | 1995-06-19 | 1996-12-27 | AT&T IPM Corp. | Method for automatic maintenance of a local number portability database |
EP0751691A2 (en) * | 1995-06-30 | 1997-01-02 | Siemens Stromberg-Carlson | A method for routing telephone calls to subscribers of different service providers within a common numbering plan area |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1616236A2 (en) * | 2003-04-14 | 2006-01-18 | Netbotz, Inc. | Method and system for journaling and accessing sensor and configuration data |
EP1616236A4 (en) * | 2003-04-14 | 2011-03-30 | American Power Conv Corp | Method and system for journaling and accessing sensor and configuration data |
CN114510494A (en) * | 2022-04-18 | 2022-05-17 | 成方金融科技有限公司 | Log playback method and device and storage medium |
Also Published As
Publication number | Publication date |
---|---|
US6286011B1 (en) | 2001-09-04 |
US6477546B1 (en) | 2002-11-05 |
CA2288053A1 (en) | 1998-11-05 |
AU748854B2 (en) | 2002-06-13 |
AU7257798A (en) | 1998-11-24 |
EP0986916A2 (en) | 2000-03-22 |
US6230166B1 (en) | 2001-05-08 |
WO1998049820A3 (en) | 1999-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6286011B1 (en) | System and method for recording transactions using a chronological list superimposed on an indexed list | |
US6028914A (en) | System and method for monitoring performance statistics in a communications network | |
US5949871A (en) | Method and apparatus for providing a service in a switched telecommunications system wherein a control message is altered by a receiving party | |
US6137876A (en) | Network call trace | |
US7929669B2 (en) | Method and system for reporting events in telecommunication networks | |
US6134316A (en) | Telecommunications network with relocateability of subscriber number | |
EP0866626B1 (en) | Method for querying replicated databases | |
JP3350862B2 (en) | How to test intelligent networks | |
US7079837B1 (en) | Caller identification queue for wireless telephones | |
US6377674B1 (en) | Method for global title translation processing | |
EP1013107B1 (en) | Local number portability | |
EP1891799B1 (en) | Methods, systems, and computer program products for selecting a global title translation mode based on an originator of a signaling message and performing global title translation according to the selected mode | |
US20070019624A1 (en) | Trunk and switch architecture for providing switched-circuit connections to on-line data services | |
EP1100279A2 (en) | Triggerless number portability system and method | |
US7277532B2 (en) | Call monitoring apparatus and method therefor | |
US20020057787A1 (en) | Method for transferring message in a message transfer part with high speed | |
US6526137B1 (en) | System and method of performing forced default routing of calls | |
US6683946B2 (en) | Local exchange carrier escape list for local number portability | |
US6654453B1 (en) | Method and system for minimizing database structure overhead in handling large volume advanced intelligent network services | |
MXPA99009898A (en) | System and method for recording transactions | |
CA2359394C (en) | Method and system for reporting events in telecommunication networks | |
WO2000033587A1 (en) | Call number translator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM GW HU ID IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG UZ VN YU ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW SD SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG |
|
AK | Designated states |
Kind code of ref document: A3 Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM GW HU ID IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG UZ VN YU ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A3 Designated state(s): GH GM KE LS MW SD SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
ENP | Entry into the national phase |
Ref document number: 2288053 Country of ref document: CA Ref country code: CA Ref document number: 2288053 Kind code of ref document: A Format of ref document f/p: F |
|
WWE | Wipo information: entry into national phase |
Ref document number: PA/a/1999/009898 Country of ref document: MX |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1998919892 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 72577/98 Country of ref document: AU |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
NENP | Non-entry into the national phase |
Ref country code: JP Ref document number: 1998547203 Format of ref document f/p: F |
|
WWP | Wipo information: published in national office |
Ref document number: 1998919892 Country of ref document: EP |
|
WWG | Wipo information: grant in national office |
Ref document number: 72577/98 Country of ref document: AU |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1998919892 Country of ref document: EP |