US20060093109A1 - Methods, systems, and computer-readable mediums for indexing and rapidly searching data records - Google Patents
Methods, systems, and computer-readable mediums for indexing and rapidly searching data records Download PDFInfo
- Publication number
- US20060093109A1 US20060093109A1 US11/266,717 US26671705A US2006093109A1 US 20060093109 A1 US20060093109 A1 US 20060093109A1 US 26671705 A US26671705 A US 26671705A US 2006093109 A1 US2006093109 A1 US 2006093109A1
- Authority
- US
- United States
- Prior art keywords
- call
- phone number
- index
- record
- records
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000004044 response Effects 0.000 claims abstract description 25
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Definitions
- the present invention generally relates to rapidly searching data records and, more particularly, relates to methods, computer-readable mediums, and systems for indexing and rapidly searching for call records in a telecommunications database.
- Telecommunications companies periodically receive requests for searching call records.
- the requests may come in the form of a court subpoena asking for call records for certain phone numbers on specified or a range of dates and/or times.
- internal security departments for telecommunications companies may need to request call record searches to investigate internal security issues.
- telecommunications billing departments may occasionally need to search call records to verify a bill or to correct a billing issue.
- Previous systems are slow at executing a search of this kind, typically taking as much as three days to complete a search. Because previous systems are so slow, the mainframe or billing system costs alone for previous systems to run searches such as those mentioned above can amount to millions of dollars per year.
- previous systems are limited by the call record history available for searching, a cost of the search, and/or the duration of the search.
- Some previous systems limit the call history searched due to cost and time constraints. For instance, the search may be limited to the past 60 days of call history. Thus, information prior to the 60-day mark is potentially lost without some special custom procedure for retrieving the data.
- There are parts of the data that may remain in various different systems for various lengths of time. Thus, some of the call record history can potentially be found.
- custom procedures to retrieve call records can be even more time consuming and costly than standard procedures.
- each call record may include an originating phone number of a call, a terminating phone number, a billed phone number, a date the call occurred, a time the call occurred, a duration of the call, a calling party, a called party, and a switch that carried the call among other related parameters.
- the method involves receiving the call records and sorting the call records such that a call record for a call that occurred on a particular date is stored with all other call records for calls on that particular date.
- the method further involves creating an index record for each phone number included in the call records where each index record includes a phone number and a location of the call record associated with the phone number.
- the index records are then sorted by phone number where all index records that include a same phone number associated with call records from the same date are stored together.
- the index records associated with a particular date are merged into an index file associated with that particular date and a master index file associated with that particular date is created.
- the master index file includes each phone number included in the index file and a location of a first index record in that index file for each phone number included in the master index file.
- the method involves reading a search request for a call record where the search request includes a date and a phone number associated with the call record requested. Then the master index file is searched for the phone number in the search request where the master index file searched is associated with the date included in the search request. In response to locating the phone number in the master index file, the first index record for the phone number included in the search request is located in the index file and read. Then, in response to reading the first index record for the phone number included in the search request, the call record associated with the first index record for the phone number is located and retrieved.
- next index record in the index file is read.
- the call record associated with the next index record is located and retrieved.
- Each next index record is read and the associated call record is retrieved until the next index record no longer includes the phone number in the search request. Then a search result including each call record retrieved is returned.
- Another embodiment is a method of rapidly searching for a call record.
- the method involves receiving a search request that includes a date and a phone number associated with the call record requested.
- a master index file associated with the date is searched for the phone number included in the search request.
- the master index file includes phone numbers associated with calls that occurred on the date in the search request.
- Each phone number in the master index file is associated with at least one call record available for retrieval.
- the master index file also includes a pointer for each phone number included in the master index file.
- the pointers indicate a location of a first index record for the phone number in an index file associated with the date in the search request and the master index file.
- the index file includes at least one index record for each call record available for retrieval and each index record includes a phone number that is also included in a call record available for retrieval and a pointer indicating a location of the call record.
- the index file is searched for each index record associated with the phone number included in the search request. Further, in response to locating an index record associated with the phone number in the search request, the call record associated with that index record is located and retrieved. Finally, a search result including each call record retrieved is returned.
- Still another embodiment of the present invention is a system for indexing and rapidly searching for call records.
- the system includes a first computer operative to receive the call records and sort the call records.
- a call record for a call that occurred on a particular date is stored with all other call records for calls occurring on that particular date.
- the first computer is further operative to create an index record for each phone number in the call records where each index record includes a phone number and a location of the call record associated with the phone number.
- the first computer sorts the index records by phone number where all index records that include a same phone number associated with call records from the same date are stored adjacent to one another.
- the index records associated with a particular date are then merged into an index file associated with that particular date and a master index file associated with that particular date is created.
- the master index file includes each phone number included in the index file and a location of a first index record in that index file for each phone number included in the master index file.
- the first computer is still further operative to read a search request for a call record.
- the search request includes a date and a phone number associated with the call record requested.
- the first computer searches the master index file for the phone number in the search request where the master index file searched is associated with the date included in the search request.
- the first computer is operative to locate in the index file and read each index record for the phone number included in the search request.
- the first computer is operative to retrieve the call record associated with that index record and return a search result that includes each call record retrieved.
- the system may also include a second computer operative to receive, store, and/or forward the search request to a variety of computers including the first computer and receive, store, and/or forward the search result returned by the first computer.
- the system may still further include a third computer operative to prepare the call records received by the first computer where the first computer is further operative to query the third computer for the call records.
- aspects of the invention may be implemented as a computer process, a computing system, or as an article of manufacture such as a computer program product or computer-readable medium.
- the computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process.
- the computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process.
- FIG. 1 is a schematic diagram illustrating aspects of a personal computer (PC), server, and billing system network utilized in an illustrative embodiment of the invention
- FIG. 2 illustrates computing system architecture for a search server computer utilized in an illustrative embodiment of the invention
- FIG. 3 illustrates an operational flow performed in indexing call records according to an illustrative embodiment of the invention.
- FIG. 4 illustrates an operational flow performed in searching data records for call records according to an illustrative embodiment of the invention.
- FIG. 5 is an interface display of a search result utilized in an illustrative embodiment of the invention.
- embodiments of the present invention provide methods, systems, and computer-readable mediums indexing and rapidly searching for call records.
- references are made to accompanying drawings that form a part hereof, and in which are shown by way of illustration specific embodiments or examples. These illustrative embodiments may be combined, other embodiments may be utilized, and structural changes may be made without departing from the spirit and scope of the present invention.
- the following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims and their equivalents.
- FIGS. 1-2 and the following discussion are intended to provide a brief, general description of a suitable computing environment in which the embodiments of the invention may be implemented. While the invention will be described in the general context of program modules that execute in conjunction with a BIOS program that executes on a personal or server computer, those skilled in the art will recognize that the invention may also be implemented in combination with other program modules.
- program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types.
- program modules may be located in both local and remote memory storage devices.
- the network 100 includes PCs 105 a - 105 n , a central server 108 , search servers 107 a - 107 n , and billing systems 110 a - 110 n .
- Each PC 105 a - 105 n is a client PC of the central server 108 and includes a call record view application 109 .
- the call record view applications provide a vehicle to receive search requests from users via a search interface, for example a search interface 112 , and to display retrieved search results.
- the call record view application 109 is the subject of patent application Ser. No. 10/094,640, entitled System and Method for Managing CDR Information filed on Mar. 12, 2002, which is hereby incorporated by reference.
- the search interface 112 includes a variety of fields for receiving parameters related to searching for call records.
- the interface 112 includes a phone number field 114 for receiving one or more phone numbers for which call records are sought, a date field 115 for receiving a date or date range of calls associated with the call records searched, and a time field 117 for receiving a time or time range of the calls.
- the search interface 112 also may include a type field 118 designating whether a phone number sought is of all types, an originating phone number of a call, a terminating phone number, and/or a billed phone number.
- the central server 108 receives search requests from the client PCs 105 and forwards the search requests to each search server 107 a - 107 n .
- Each server 107 a - 107 n downloads call record data from a respective billing system 110 a - 110 n each day.
- the billing systems 110 a - 110 n are regional, and thus capture call records for that region. Therefore, parallel searching of each region may take place for each search request. Parallel searching enables smaller groups of records to be searched simultaneously, which permits the search to go faster than trying to search all the data at a single location at once or consecutively. Furthermore, the searching takes place on the search servers 107 a - 107 n and thus, does not require extensive billing system resources or time.
- FIG. 2 illustrates a computing system architecture for a search server 107 utilized in an illustrative embodiment of the invention.
- the search server 107 includes a central processing unit (CPU) 210 , a system memory 202 , and a system bus 252 that couples the system memory 202 to the CPU 210 .
- the system memory 202 includes read-only memory (ROM) 206 and random access memory (RAM) 204 .
- ROM read-only memory
- RAM random access memory
- a basic input/output system 208 (BIOS) containing the basic routines that help to transfer information between elements within the search server 107 , such as during start-up, is stored in ROM 206 .
- BIOS basic input/output system 208
- the search server 107 further includes a mass storage device (MSD) 214 for storing an operating system 216 such as WINDOWS XP, from MICROSOFT CORPORATION of Redmond, Wash., a search application 250 for searching data records, an indexing application 254 for indexing data, and other applications 211 , for example a word processing and/or spreadsheet application.
- MSD 214 may be a redundant array of inexpensive discs (RAID) system for storing data including software capable of supporting a TCP/IP or other protocol stack.
- the indexing application 254 indexes the call records downloaded to call record storage 235 , for example call records 237 a - 237 d . Indexing of the call records produces temporary indexes 230 a - 230 n , which are merged to create an index file 239 including index records 240 , and a master index file 255 that includes master index records. Additional details regarding the indexing of call records will be describe below with respect to FIG. 3 .
- the MSD 214 is connected to the CPU 210 through a mass storage controller (not shown) connected to the system bus 252 .
- the MSD 214 and its associated computer-readable media provide non-volatile storage for the search server 107 .
- computer-readable media can be any available media that can be accessed by the CPU 210 .
- An input/output controller 224 may also be included with the search server 107 for receiving and processing input from a number of input devices (not shown).
- the input/output controller 224 communicates with the CPU 210 through the system bus 252 .
- the CPU 210 may employ various operations, discussed in more detail below with reference to FIGS. 3 and 4 to provide and utilize the signals propagated between the search server 107 and the billing system 110 .
- the CPU 210 may store data to and access data from mass storage device 214 , such as electronic memory. Data is transferred to and received from the storage device 214 through the system bus 252 .
- the CPU 210 may be a general-purpose computer processor.
- the CPU 210 in addition to being a general-purpose programmable processor, may be firmware, hard-wired logic, analog circuitry, other special purpose circuitry, or any combination thereof.
- the search server 107 operates in a networked environment, as shown in FIGS. 1 and 2 , using logical connections to remote computing devices via network communication, such as an Intranet, or a local area network (LAN).
- the search server 107 may connect to a network 120 via a network interface unit 212 .
- the network interface unit 212 may also be utilized to connect to other types of networks and remote computer systems.
- a computing system such as the search server 107 , typically includes at least some form of computer-readable media.
- Computer readable media can be any available media that can be accessed by the search server 107 .
- Computer-readable media might comprise computer storage media and communication media.
- Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
- Computer storage media includes, but is not limited to, RAM, disk drives, a collection of disk drives, flash memory, other memory technology or any other medium that can be used to store the desired information and that can be accessed by the search server 107 .
- Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.
- modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above should also be included within the scope of computer-readable media.
- Computer-readable media may also be referred to as computer program product.
- the operational flow 300 begins at operation 301 where the search server 107 monitors the billing system 110 and detects new data or call records available for processing.
- the billing systems 110 a - 110 n prepare their respective call records that contain details of calls transacted over a telecommunications network.
- the call records are typically generated by a switch and transferred to a call detail record (CDR) collector before being sent to the billing system 110 .
- CDR call detail record
- Each call record may include an originating phone number of a call, a terminating phone number, a billed phone number, a date the call occurred, a time the call occurred, a duration of the call, a calling party name, a called party name, call type, carrier identifier, and/or a switch that carried the call among other parameters.
- the operational flow continues to operation 304 where the billing system 110 copies and modifies the call records to exclude data unnecessary in locating the call record and sends the modified call records to the search server 107 . This may include removing headers, trailers, and some summary information. This may also include removing unnecessary fields such as switch type and trunk usage information.
- the operational flow 300 continues to operation 307 where the search server 107 monitors for and receives the modified call records by querying the billing system 110 for new call records and downloading the new call records. It should be appreciated that the search server may also retrieve the call records directly from a CDR collector (not shown) and/or a Voice over IP system (not shown).
- the operational flow 300 then continues to operation 308 where the search server reads a modified call record.
- the search server 107 reduces the modified call record in size by reformatting the call record to exclude information such as the date.
- the search server 107 stores the call records by date, which allows for faster searching. Storing the call records by date makes the date information within the call record unnecessary, thus removing the date information from the call record allows for smaller files.
- the search server 107 appends the reformatted call record to the call record storage file 235 for each date according to the date calls associated with the respective call record occurred.
- the search server 107 stores a call record for a call that occurred on a particular date with all other call records for calls on that particular date.
- the search server 107 creates index records 261 for each phone number included in the reformatted call record storage files 235 .
- the search server 107 converts the phone numbers included in the reformatted call records storage files 235 to a key or hash.
- the search server 107 may store these index records in the temporary index files 230 a - 230 n until the downloaded call records are processed.
- Each index record includes a phone number 240 and a location or address 260 a - 260 d of the call record associated with the phone number in the call record storage file 235 .
- there are two index records generated for each call record one for the originating number and one for the terminating number. In some cases the originating number (or rarely the terminating number) is unknown.
- index record is created. If the billed number is known and is different than both the originating number and the terminating number, an additional index record is created.” If no valid numbers are found on the record, the record is not stored and no indexes are created.
- the search server 107 makes a determination as to whether a quantity of index records created have reached a predetermined threshold quantity, for example 4 million. If not, the operational flow branches to detect operation 315 described below. When the quantity of index records has reached the predetermined threshold quantity, the operational flow continues to operation 314 where the search server 107 sorts the index records by phone number such that all index records that include a same phone number associated with call records from the same date are stored together.
- a predetermined threshold quantity for example 4 million.
- the operational flow 300 then continues to detect operation 315 where a determination is made as to whether the all the new call records have been received and processed. If not, the operational flow 300 branches back to operation 307 described above.
- the operational flow 300 continues from detect operation 315 to operation 316 where any remaining index records are sorted and written out in a manner similar to operation 314 .
- the flow continues at merge operation 317 where the search server 107 merges index records associated with a particular date into the index file 239 associated with that particular date. Operation 317 also creates a master index file 255 associated with that particular date.
- the master index file includes each phone number 257 included in the index file 239 and a location or address 232 of a first index record 240 in that index file 239 for each phone number included in the master index file 255 .
- the search server 107 creates index records, index files, and master index files for each date where calls associated with the stored call records occur.
- the operational flow 300 then returns control to other operations at return operation 320 . It should be appreciated that the file of modified call records received at operation 307 are deleted after operation 317 .
- the operational flow 400 begins operation 402 where a search request is received at a client PC 105 and forwarded to the central server 108 .
- the PC 105 may receive a list of phone numbers to search for, but the PC 105 forwards each phone number to the central server 108 as separate request.
- the central server 108 may receive, store, and forward the search request to each search server 107 a - 107 n.
- the operational flow 400 then continues to operation 407 where the search server 107 reads the search request for one or more call records.
- the search request at least includes a date range and phone number associated with the call records requested.
- the search server 107 converts the phone numbers received in the search request to a key or hash. This conversion operation is identical to the conversion operation executed in operation 311 of FIG. 3 .
- the search server 107 begins with the first date of the date range and continues to operation 410 .
- the search server 107 searches the master index file 255 for the hash of the phone number in the search request.
- the master index file 255 is associated with the date included in the search request.
- the operational flow 400 then continues to detect operation 412 where the search server 107 makes a determination as to whether the hash representing the phone number of the search request is located in the master index file 255 for the date of the search request. If not, the operational flow 400 continues to operation 418 described below.
- the operational flow 400 continues to operation 414 .
- the search server 107 locates the index file 239 associated with the master index file and locates and reads the first index record for the hash of the phone number included in the search request.
- the search server 107 locates and retrieves the call record associated with the first index record for the phone number. It should also be appreciated that because of the possibility of the same hash generated by two or more different phone numbers in a computer system, the search server 107 verifies that the phone numbers in the call records retrieved actually match the search request phone number. The operational flow 400 then continues to operation 416 where the search server 107 reads the next index records including the phone number in the search request. It should be appreciated that the index records may also be matched for type of phone number when type is included in the search request.
- the search server 107 determines whether the next index record includes the correct hash or key matching the search request. When the correct hash is included, the operational flow 400 returns to operation 415 described above. Matching the search request may include matching all parameters in the search request including a time of the call, duration, and switch if included.
- the operational flow 400 continues to operation 418 where the search server 107 determines whether there are more dates from the search request to search. When there are more dates to search, the operational flow 400 returns to operation 410 described above. When there are no more dates to search, the operational flow 400 continues to operation 419 . At operation 419 , the search server 107 returns the search results to the central server 108 having retrieved all the call records matching the search request.
- the central server 108 receives, merges, stores, and forwards the search results to the requesting client PC 105 . Then at operation 421 the requesting client PC 105 displays the search result call records as illustrated below in FIG. 5 .
- FIG. 5 is an interface display 500 of a search result utilized in an illustrative embodiment of the invention.
- the interface display 500 displayed via the client PC 105 , may include the type 502 of search request phone number, the called phoned number 504 , the calling phone number 505 , the date of the call 507 , time of the call 508 , duration of the call 510 , a call type 512 , and an indicator 514 as to whether the call was answered as well as other call record parameters.
- the present invention is presently embodied as methods, systems, computer program products or computer readable mediums encoding computer programs for indexing and rapidly searching for call records in a computing system.
Abstract
Description
- This patent application is a continuation of U.S. patent application Ser. No. 10/980,590, entitled “METHODS, SYSTEMS, AND COMPUTER-READABLE MEDIUMS FOR INDEXING AND RAPIDLY SEARCHING DATA RECORDS,” filed on Nov. 3, 2004 and assigned to the same assignee as this application. The aforementioned patent application is expressly incorporated herein, in its entirety, by reference.
- The present invention generally relates to rapidly searching data records and, more particularly, relates to methods, computer-readable mediums, and systems for indexing and rapidly searching for call records in a telecommunications database.
- Telecommunications companies periodically receive requests for searching call records. The requests may come in the form of a court subpoena asking for call records for certain phone numbers on specified or a range of dates and/or times. Additionally, internal security departments for telecommunications companies may need to request call record searches to investigate internal security issues. Also, telecommunications billing departments may occasionally need to search call records to verify a bill or to correct a billing issue. Previous systems are slow at executing a search of this kind, typically taking as much as three days to complete a search. Because previous systems are so slow, the mainframe or billing system costs alone for previous systems to run searches such as those mentioned above can amount to millions of dollars per year.
- Also, previous systems are limited by the call record history available for searching, a cost of the search, and/or the duration of the search. Some previous systems limit the call history searched due to cost and time constraints. For instance, the search may be limited to the past 60 days of call history. Thus, information prior to the 60-day mark is potentially lost without some special custom procedure for retrieving the data. There are parts of the data that may remain in various different systems for various lengths of time. Thus, some of the call record history can potentially be found. However, custom procedures to retrieve call records can be even more time consuming and costly than standard procedures.
- Accordingly there is an unaddressed need in the industry to address the aforementioned deficiencies and inadequacies.
- In accordance with embodiments of the present invention, the above and other problems are solved by methods, systems, and computer-readable-mediums for indexing and rapidly searching data records. The present methods of searching for call records as disclosed in embodiments of the present invention are fast, inexpensive and scalable to larger data sets. One embodiment provides a computer-implemented method of indexing and rapidly searching for call records in a computing system. Each call record may include an originating phone number of a call, a terminating phone number, a billed phone number, a date the call occurred, a time the call occurred, a duration of the call, a calling party, a called party, and a switch that carried the call among other related parameters. The method involves receiving the call records and sorting the call records such that a call record for a call that occurred on a particular date is stored with all other call records for calls on that particular date.
- The method further involves creating an index record for each phone number included in the call records where each index record includes a phone number and a location of the call record associated with the phone number. The index records are then sorted by phone number where all index records that include a same phone number associated with call records from the same date are stored together. Next, the index records associated with a particular date are merged into an index file associated with that particular date and a master index file associated with that particular date is created. The master index file includes each phone number included in the index file and a location of a first index record in that index file for each phone number included in the master index file.
- Still further, the method involves reading a search request for a call record where the search request includes a date and a phone number associated with the call record requested. Then the master index file is searched for the phone number in the search request where the master index file searched is associated with the date included in the search request. In response to locating the phone number in the master index file, the first index record for the phone number included in the search request is located in the index file and read. Then, in response to reading the first index record for the phone number included in the search request, the call record associated with the first index record for the phone number is located and retrieved.
- Subsequently, a next index record in the index file is read. In response to the next index record including the phone number in the search request, the call record associated with the next index record is located and retrieved. Each next index record is read and the associated call record is retrieved until the next index record no longer includes the phone number in the search request. Then a search result including each call record retrieved is returned.
- Another embodiment is a method of rapidly searching for a call record. The method involves receiving a search request that includes a date and a phone number associated with the call record requested. A master index file associated with the date is searched for the phone number included in the search request. The master index file includes phone numbers associated with calls that occurred on the date in the search request. Each phone number in the master index file is associated with at least one call record available for retrieval. The master index file also includes a pointer for each phone number included in the master index file. The pointers indicate a location of a first index record for the phone number in an index file associated with the date in the search request and the master index file. The index file includes at least one index record for each call record available for retrieval and each index record includes a phone number that is also included in a call record available for retrieval and a pointer indicating a location of the call record.
- In response to locating the phone number included in the search request in the master index file, the index file is searched for each index record associated with the phone number included in the search request. Further, in response to locating an index record associated with the phone number in the search request, the call record associated with that index record is located and retrieved. Finally, a search result including each call record retrieved is returned.
- Still another embodiment of the present invention is a system for indexing and rapidly searching for call records. The system includes a first computer operative to receive the call records and sort the call records. A call record for a call that occurred on a particular date is stored with all other call records for calls occurring on that particular date. The first computer is further operative to create an index record for each phone number in the call records where each index record includes a phone number and a location of the call record associated with the phone number. The first computer then sorts the index records by phone number where all index records that include a same phone number associated with call records from the same date are stored adjacent to one another. The index records associated with a particular date are then merged into an index file associated with that particular date and a master index file associated with that particular date is created. The master index file includes each phone number included in the index file and a location of a first index record in that index file for each phone number included in the master index file.
- The first computer is still further operative to read a search request for a call record. The search request includes a date and a phone number associated with the call record requested. The first computer then searches the master index file for the phone number in the search request where the master index file searched is associated with the date included in the search request. In response to locating the phone number in the master index file, the first computer is operative to locate in the index file and read each index record for the phone number included in the search request. Further, in response to the phone number in an index record matching the phone number in the search request, the first computer is operative to retrieve the call record associated with that index record and return a search result that includes each call record retrieved.
- The system may also include a second computer operative to receive, store, and/or forward the search request to a variety of computers including the first computer and receive, store, and/or forward the search result returned by the first computer. The system may still further include a third computer operative to prepare the call records received by the first computer where the first computer is further operative to query the third computer for the call records.
- Aspects of the invention may be implemented as a computer process, a computing system, or as an article of manufacture such as a computer program product or computer-readable medium. The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process.
- These and various other features as well as advantages, which characterize the present invention, will be apparent from a reading of the following detailed description and a review of the associated drawings.
-
FIG. 1 is a schematic diagram illustrating aspects of a personal computer (PC), server, and billing system network utilized in an illustrative embodiment of the invention; -
FIG. 2 illustrates computing system architecture for a search server computer utilized in an illustrative embodiment of the invention; -
FIG. 3 illustrates an operational flow performed in indexing call records according to an illustrative embodiment of the invention. -
FIG. 4 illustrates an operational flow performed in searching data records for call records according to an illustrative embodiment of the invention; and -
FIG. 5 is an interface display of a search result utilized in an illustrative embodiment of the invention. - As described briefly above, embodiments of the present invention provide methods, systems, and computer-readable mediums indexing and rapidly searching for call records. In the following detailed description, references are made to accompanying drawings that form a part hereof, and in which are shown by way of illustration specific embodiments or examples. These illustrative embodiments may be combined, other embodiments may be utilized, and structural changes may be made without departing from the spirit and scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims and their equivalents.
- Referring now to the drawings, in which like numerals represent like elements through the several figures, aspects of the present invention and the illustrative operating environment will be described.
FIGS. 1-2 and the following discussion are intended to provide a brief, general description of a suitable computing environment in which the embodiments of the invention may be implemented. While the invention will be described in the general context of program modules that execute in conjunction with a BIOS program that executes on a personal or server computer, those skilled in the art will recognize that the invention may also be implemented in combination with other program modules. - Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held 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. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
- Referring now to
FIG. 1 , a schematic diagram illustrating aspects of a personal computer (PC), server, andbilling system network 100 utilized in an illustrative embodiment of the invention will be described. As shown inFIG. 1 , thenetwork 100 includes PCs 105 a-105 n, acentral server 108,search servers 107 a-107 n, and billing systems 110 a-110 n. Each PC 105 a-105 n is a client PC of thecentral server 108 and includes a callrecord view application 109. The call record view applications provide a vehicle to receive search requests from users via a search interface, for example asearch interface 112, and to display retrieved search results. The callrecord view application 109 is the subject of patent application Ser. No. 10/094,640, entitled System and Method for Managing CDR Information filed on Mar. 12, 2002, which is hereby incorporated by reference. - The
search interface 112 includes a variety of fields for receiving parameters related to searching for call records. For example, theinterface 112 includes aphone number field 114 for receiving one or more phone numbers for which call records are sought, adate field 115 for receiving a date or date range of calls associated with the call records searched, and atime field 117 for receiving a time or time range of the calls. Thesearch interface 112 also may include atype field 118 designating whether a phone number sought is of all types, an originating phone number of a call, a terminating phone number, and/or a billed phone number. - The
central server 108 receives search requests from the client PCs 105 and forwards the search requests to eachsearch server 107 a-107 n. Eachserver 107 a-107 n downloads call record data from a respective billing system 110 a-110 n each day. The billing systems 110 a-110 n are regional, and thus capture call records for that region. Therefore, parallel searching of each region may take place for each search request. Parallel searching enables smaller groups of records to be searched simultaneously, which permits the search to go faster than trying to search all the data at a single location at once or consecutively. Furthermore, the searching takes place on thesearch servers 107 a-107 n and thus, does not require extensive billing system resources or time. -
FIG. 2 illustrates a computing system architecture for asearch server 107 utilized in an illustrative embodiment of the invention. Thesearch server 107 includes a central processing unit (CPU) 210, asystem memory 202, and asystem bus 252 that couples thesystem memory 202 to theCPU 210. Thesystem memory 202 includes read-only memory (ROM) 206 and random access memory (RAM) 204. A basic input/output system 208 (BIOS), containing the basic routines that help to transfer information between elements within thesearch server 107, such as during start-up, is stored inROM 206. Thesearch server 107 further includes a mass storage device (MSD) 214 for storing anoperating system 216 such as WINDOWS XP, from MICROSOFT CORPORATION of Redmond, Wash., asearch application 250 for searching data records, anindexing application 254 for indexing data, andother applications 211, for example a word processing and/or spreadsheet application. It should be appreciated that theMSD 214 may be a redundant array of inexpensive discs (RAID) system for storing data including software capable of supporting a TCP/IP or other protocol stack. - The
indexing application 254 indexes the call records downloaded to callrecord storage 235, for example call records 237 a-237 d. Indexing of the call records produces temporary indexes 230 a-230 n, which are merged to create anindex file 239 includingindex records 240, and amaster index file 255 that includes master index records. Additional details regarding the indexing of call records will be describe below with respect toFIG. 3 . - The
MSD 214 is connected to theCPU 210 through a mass storage controller (not shown) connected to thesystem bus 252. TheMSD 214 and its associated computer-readable media, provide non-volatile storage for thesearch server 107. Although the description of computer-readable media contained herein refers to a mass storage device, such as a hard disk or RAID array, it should be appreciated by those skilled in the art that computer-readable media can be any available media that can be accessed by theCPU 210. - An input/
output controller 224 may also be included with thesearch server 107 for receiving and processing input from a number of input devices (not shown). The input/output controller 224 communicates with theCPU 210 through thesystem bus 252. - The
CPU 210 may employ various operations, discussed in more detail below with reference toFIGS. 3 and 4 to provide and utilize the signals propagated between thesearch server 107 and the billing system 110. TheCPU 210 may store data to and access data frommass storage device 214, such as electronic memory. Data is transferred to and received from thestorage device 214 through thesystem bus 252. TheCPU 210 may be a general-purpose computer processor. Furthermore as mentioned below, theCPU 210, in addition to being a general-purpose programmable processor, may be firmware, hard-wired logic, analog circuitry, other special purpose circuitry, or any combination thereof. - According to various embodiments of the invention, the
search server 107 operates in a networked environment, as shown inFIGS. 1 and 2 , using logical connections to remote computing devices via network communication, such as an Intranet, or a local area network (LAN). Thesearch server 107 may connect to anetwork 120 via anetwork interface unit 212. It should be appreciated that thenetwork interface unit 212 may also be utilized to connect to other types of networks and remote computer systems. - A computing system, such as the
search server 107, typically includes at least some form of computer-readable media. Computer readable media can be any available media that can be accessed by thesearch server 107. By way of example, and not limitation, computer-readable media might comprise computer storage media and communication media. - Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, disk drives, a collection of disk drives, flash memory, other memory technology or any other medium that can be used to store the desired information and that can be accessed by the
search server 107. - Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above should also be included within the scope of computer-readable media. Computer-readable media may also be referred to as computer program product.
- Referring now to
FIGS. 1, 2 , and 3 anoperational flow 300 performed in indexing call records according to an illustrative embodiment of the invention will be described. Theoperational flow 300 begins atoperation 301 where thesearch server 107 monitors the billing system 110 and detects new data or call records available for processing. Next atoperation 302 the billing systems 110 a-110 n prepare their respective call records that contain details of calls transacted over a telecommunications network. The call records are typically generated by a switch and transferred to a call detail record (CDR) collector before being sent to the billing system 110. Each call record may include an originating phone number of a call, a terminating phone number, a billed phone number, a date the call occurred, a time the call occurred, a duration of the call, a calling party name, a called party name, call type, carrier identifier, and/or a switch that carried the call among other parameters. - The operational flow continues to
operation 304 where the billing system 110 copies and modifies the call records to exclude data unnecessary in locating the call record and sends the modified call records to thesearch server 107. This may include removing headers, trailers, and some summary information. This may also include removing unnecessary fields such as switch type and trunk usage information. Next, theoperational flow 300 continues tooperation 307 where thesearch server 107 monitors for and receives the modified call records by querying the billing system 110 for new call records and downloading the new call records. It should be appreciated that the search server may also retrieve the call records directly from a CDR collector (not shown) and/or a Voice over IP system (not shown). - The
operational flow 300 then continues tooperation 308 where the search server reads a modified call record. Next, atoperation 309 thesearch server 107 reduces the modified call record in size by reformatting the call record to exclude information such as the date. Thesearch server 107 stores the call records by date, which allows for faster searching. Storing the call records by date makes the date information within the call record unnecessary, thus removing the date information from the call record allows for smaller files. Atoperation 310, thesearch server 107 appends the reformatted call record to the callrecord storage file 235 for each date according to the date calls associated with the respective call record occurred. Thesearch server 107 stores a call record for a call that occurred on a particular date with all other call records for calls on that particular date. - At
operation 311, thesearch server 107 createsindex records 261 for each phone number included in the reformatted call record storage files 235. Thesearch server 107 converts the phone numbers included in the reformatted callrecords storage files 235 to a key or hash. Thesearch server 107 may store these index records in the temporary index files 230 a-230 n until the downloaded call records are processed. Each index record includes aphone number 240 and a location or address 260 a-260 d of the call record associated with the phone number in the callrecord storage file 235. Typically there are two index records generated for each call record, one for the originating number and one for the terminating number. In some cases the originating number (or rarely the terminating number) is unknown. When this happens only a single index record is created. If the billed number is known and is different than both the originating number and the terminating number, an additional index record is created.” If no valid numbers are found on the record, the record is not stored and no indexes are created. - At detect
operation 312, thesearch server 107 makes a determination as to whether a quantity of index records created have reached a predetermined threshold quantity, for example 4 million. If not, the operational flow branches to detectoperation 315 described below. When the quantity of index records has reached the predetermined threshold quantity, the operational flow continues tooperation 314 where thesearch server 107 sorts the index records by phone number such that all index records that include a same phone number associated with call records from the same date are stored together. - The
operational flow 300 then continues to detectoperation 315 where a determination is made as to whether the all the new call records have been received and processed. If not, theoperational flow 300 branches back tooperation 307 described above. When the new call records have been received and processed, theoperational flow 300 continues from detectoperation 315 tooperation 316 where any remaining index records are sorted and written out in a manner similar tooperation 314. After all index records are written, the flow continues atmerge operation 317 where thesearch server 107 merges index records associated with a particular date into the index file 239 associated with that particular date.Operation 317 also creates amaster index file 255 associated with that particular date. The master index file includes eachphone number 257 included in theindex file 239 and a location or address 232 of afirst index record 240 in that index file 239 for each phone number included in themaster index file 255. Thesearch server 107 creates index records, index files, and master index files for each date where calls associated with the stored call records occur. Theoperational flow 300 then returns control to other operations atreturn operation 320. It should be appreciated that the file of modified call records received atoperation 307 are deleted afteroperation 317. - Turning now to
FIGS. 1, 2 , and 4, anoperational flow 400 performed in searching data records for call records according to an illustrative embodiment of the invention will be described. Theoperational flow 400 beginsoperation 402 where a search request is received at a client PC 105 and forwarded to thecentral server 108. In the present illustrative embodiment, the PC 105 may receive a list of phone numbers to search for, but the PC 105 forwards each phone number to thecentral server 108 as separate request. Atoperation 404 thecentral server 108 may receive, store, and forward the search request to eachsearch server 107 a-107 n. - The
operational flow 400 then continues tooperation 407 where thesearch server 107 reads the search request for one or more call records. The search request at least includes a date range and phone number associated with the call records requested. Next, atoperation 408, thesearch server 107 converts the phone numbers received in the search request to a key or hash. This conversion operation is identical to the conversion operation executed inoperation 311 ofFIG. 3 . Next, atoperation 409 thesearch server 107 begins with the first date of the date range and continues tooperation 410. Atoperation 410, thesearch server 107 searches themaster index file 255 for the hash of the phone number in the search request. Themaster index file 255 is associated with the date included in the search request. - The
operational flow 400 then continues to detectoperation 412 where thesearch server 107 makes a determination as to whether the hash representing the phone number of the search request is located in themaster index file 255 for the date of the search request. If not, theoperational flow 400 continues tooperation 418 described below. When the hash of the phone number of the search request is included in themaster index file 255, theoperational flow 400 continues tooperation 414. Atoperation 414, in response to locating hash of the phone number in themaster index file 255, thesearch server 107 locates the index file 239 associated with the master index file and locates and reads the first index record for the hash of the phone number included in the search request. - Next at
operation 415, in response to reading the first index record for the phone number included in the search request, thesearch server 107 locates and retrieves the call record associated with the first index record for the phone number. It should also be appreciated that because of the possibility of the same hash generated by two or more different phone numbers in a computer system, thesearch server 107 verifies that the phone numbers in the call records retrieved actually match the search request phone number. Theoperational flow 400 then continues tooperation 416 where thesearch server 107 reads the next index records including the phone number in the search request. It should be appreciated that the index records may also be matched for type of phone number when type is included in the search request. - At
operation 417, thesearch server 107 determines whether the next index record includes the correct hash or key matching the search request. When the correct hash is included, theoperational flow 400 returns tooperation 415 described above. Matching the search request may include matching all parameters in the search request including a time of the call, duration, and switch if included. - When the correct hash is not included, the
operational flow 400 continues tooperation 418 where thesearch server 107 determines whether there are more dates from the search request to search. When there are more dates to search, theoperational flow 400 returns tooperation 410 described above. When there are no more dates to search, theoperational flow 400 continues tooperation 419. Atoperation 419, thesearch server 107 returns the search results to thecentral server 108 having retrieved all the call records matching the search request. - At
operation 420, thecentral server 108 receives, merges, stores, and forwards the search results to the requesting client PC 105. Then atoperation 421 the requesting client PC 105 displays the search result call records as illustrated below inFIG. 5 . -
FIG. 5 is aninterface display 500 of a search result utilized in an illustrative embodiment of the invention. Theinterface display 500, displayed via the client PC 105, may include thetype 502 of search request phone number, the called phonednumber 504, the callingphone number 505, the date of thecall 507, time of thecall 508, duration of thecall 510, acall type 512, and anindicator 514 as to whether the call was answered as well as other call record parameters. - Thus, the present invention is presently embodied as methods, systems, computer program products or computer readable mediums encoding computer programs for indexing and rapidly searching for call records in a computing system.
- The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/266,717 US20060093109A1 (en) | 2004-11-03 | 2005-11-03 | Methods, systems, and computer-readable mediums for indexing and rapidly searching data records |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/980,590 US6987845B1 (en) | 2004-11-03 | 2004-11-03 | Methods, systems, and computer-readable mediums for indexing and rapidly searching data records |
US11/266,717 US20060093109A1 (en) | 2004-11-03 | 2005-11-03 | Methods, systems, and computer-readable mediums for indexing and rapidly searching data records |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/980,590 Continuation US6987845B1 (en) | 2004-11-03 | 2004-11-03 | Methods, systems, and computer-readable mediums for indexing and rapidly searching data records |
Publications (1)
Publication Number | Publication Date |
---|---|
US20060093109A1 true US20060093109A1 (en) | 2006-05-04 |
Family
ID=35550829
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/980,590 Expired - Fee Related US6987845B1 (en) | 2004-11-03 | 2004-11-03 | Methods, systems, and computer-readable mediums for indexing and rapidly searching data records |
US11/217,835 Expired - Fee Related US7801281B2 (en) | 2004-11-03 | 2005-09-01 | Collecting and delivering call data associated with court ordered traps |
US11/266,717 Abandoned US20060093109A1 (en) | 2004-11-03 | 2005-11-03 | Methods, systems, and computer-readable mediums for indexing and rapidly searching data records |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/980,590 Expired - Fee Related US6987845B1 (en) | 2004-11-03 | 2004-11-03 | Methods, systems, and computer-readable mediums for indexing and rapidly searching data records |
US11/217,835 Expired - Fee Related US7801281B2 (en) | 2004-11-03 | 2005-09-01 | Collecting and delivering call data associated with court ordered traps |
Country Status (2)
Country | Link |
---|---|
US (3) | US6987845B1 (en) |
WO (1) | WO2006052541A2 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100218251A1 (en) * | 2005-04-15 | 2010-08-26 | Microsoft Corporation | Detection of Artificially Generated System Load |
US20110238638A1 (en) * | 2010-03-29 | 2011-09-29 | International Business Machines Corporation | Methods and systems for obtaining and correcting an index record for a virtual storage access method keyed sequential data set |
US20180150491A1 (en) * | 2012-12-17 | 2018-05-31 | Capital One Services, Llc | Systems and methods for providing searchable customer call indexes |
CN113906721A (en) * | 2019-05-31 | 2022-01-07 | 苹果公司 | Initiating an enterprise messaging session |
US11531992B2 (en) | 2017-05-16 | 2022-12-20 | Apple Inc. | Messaging system for organizations |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6987845B1 (en) * | 2004-11-03 | 2006-01-17 | Bellsouth Intellectual Property Corporation | Methods, systems, and computer-readable mediums for indexing and rapidly searching data records |
US8285744B2 (en) * | 2005-09-30 | 2012-10-09 | Rockwell Automation Technologies, Inc. | Indexing and searching manufacturing process related information |
US20070136340A1 (en) * | 2005-12-12 | 2007-06-14 | Mark Radulovich | Document and file indexing system |
US8649489B2 (en) * | 2006-10-13 | 2014-02-11 | At&T Intellectual Property I, L.P. | Method and apparatus for improving identification of a party in a communication transaction |
CN101079918B (en) * | 2007-06-27 | 2010-06-16 | 宇龙计算机通信科技(深圳)有限公司 | A display method and system of call records |
US8315363B2 (en) * | 2008-08-08 | 2012-11-20 | Verizon Patent And Licensing Inc. | Network call recording |
CN101404689B (en) * | 2008-10-17 | 2011-01-12 | 闻泰集团有限公司 | Call record ordering method for mobile communication terminal |
CN101754145B (en) * | 2008-12-19 | 2014-05-07 | 康佳集团股份有限公司 | Telephone number searching method and device and mobile terminal |
US8917840B2 (en) * | 2009-12-14 | 2014-12-23 | International Business Machines Corporation | Enhanced privacy caller identification system |
US8892120B2 (en) | 2011-12-13 | 2014-11-18 | Gladiator Innovations, Llc | Methods in a wireless communication system for crime investigation, evidence generation and analysis |
US10210592B2 (en) * | 2014-03-30 | 2019-02-19 | Teoco Ltd. | System, method, and computer program product for efficient aggregation of data records of big data |
CN104065826A (en) * | 2014-06-30 | 2014-09-24 | 宇龙计算机通信科技(深圳)有限公司 | User equipment and data display method |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5325290A (en) * | 1989-08-14 | 1994-06-28 | Compucom Communications Corp. | Billing system with data indexing |
US5680611A (en) * | 1995-09-29 | 1997-10-21 | Electronic Data Systems Corporation | Duplicate record detection |
US6233313B1 (en) * | 1998-03-26 | 2001-05-15 | Bell Atlantic Network Services | Call detail reporting for lawful surveillance |
US20010056362A1 (en) * | 1998-07-29 | 2001-12-27 | Mike Hanagan | Modular, convergent customer care and billing system |
US6658099B2 (en) * | 1999-10-22 | 2003-12-02 | Convergys Cmg Utah, Inc. | System and method for processing call detail records |
US20050086062A1 (en) * | 2002-01-28 | 2005-04-21 | Clark Jonathan A. | Monitoring of network usage |
US20050276386A1 (en) * | 2004-06-15 | 2005-12-15 | Cisco Technology, Inc. | System and method for end-to-end communications tracing |
US20060093113A1 (en) * | 2004-11-03 | 2006-05-04 | Bellsouth Intellectual Property Corporation | Collecting and delivering call data associated with court ordered traps |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930344A (en) * | 1997-10-14 | 1999-07-27 | At & T Corp. | Method and apparatus for tracing a specific communication |
-
2004
- 2004-11-03 US US10/980,590 patent/US6987845B1/en not_active Expired - Fee Related
-
2005
- 2005-09-01 US US11/217,835 patent/US7801281B2/en not_active Expired - Fee Related
- 2005-10-31 WO PCT/US2005/039473 patent/WO2006052541A2/en active Application Filing
- 2005-11-03 US US11/266,717 patent/US20060093109A1/en not_active Abandoned
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5325290A (en) * | 1989-08-14 | 1994-06-28 | Compucom Communications Corp. | Billing system with data indexing |
US5680611A (en) * | 1995-09-29 | 1997-10-21 | Electronic Data Systems Corporation | Duplicate record detection |
US6233313B1 (en) * | 1998-03-26 | 2001-05-15 | Bell Atlantic Network Services | Call detail reporting for lawful surveillance |
US20010056362A1 (en) * | 1998-07-29 | 2001-12-27 | Mike Hanagan | Modular, convergent customer care and billing system |
US6658099B2 (en) * | 1999-10-22 | 2003-12-02 | Convergys Cmg Utah, Inc. | System and method for processing call detail records |
US20050086062A1 (en) * | 2002-01-28 | 2005-04-21 | Clark Jonathan A. | Monitoring of network usage |
US20050276386A1 (en) * | 2004-06-15 | 2005-12-15 | Cisco Technology, Inc. | System and method for end-to-end communications tracing |
US20060093113A1 (en) * | 2004-11-03 | 2006-05-04 | Bellsouth Intellectual Property Corporation | Collecting and delivering call data associated with court ordered traps |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100218251A1 (en) * | 2005-04-15 | 2010-08-26 | Microsoft Corporation | Detection of Artificially Generated System Load |
US8793788B2 (en) * | 2005-04-15 | 2014-07-29 | Microsoft Corporation | Detection of artificially generated system load |
US20110238638A1 (en) * | 2010-03-29 | 2011-09-29 | International Business Machines Corporation | Methods and systems for obtaining and correcting an index record for a virtual storage access method keyed sequential data set |
US8527481B2 (en) * | 2010-03-29 | 2013-09-03 | International Business Machines Corporation | Methods and systems for obtaining and correcting an index record for a virtual storage access method keyed sequential data set |
US20180150491A1 (en) * | 2012-12-17 | 2018-05-31 | Capital One Services, Llc | Systems and methods for providing searchable customer call indexes |
US10409797B2 (en) * | 2012-12-17 | 2019-09-10 | Capital One Services, Llc | Systems and methods for providing searchable customer call indexes |
US10872068B2 (en) | 2012-12-17 | 2020-12-22 | Capital One Services, Llc | Systems and methods for providing searchable customer call indexes |
US11714793B2 (en) | 2012-12-17 | 2023-08-01 | Capital One Services, Llc | Systems and methods for providing searchable customer call indexes |
US11531992B2 (en) | 2017-05-16 | 2022-12-20 | Apple Inc. | Messaging system for organizations |
CN113906721A (en) * | 2019-05-31 | 2022-01-07 | 苹果公司 | Initiating an enterprise messaging session |
Also Published As
Publication number | Publication date |
---|---|
WO2006052541A2 (en) | 2006-05-18 |
US6987845B1 (en) | 2006-01-17 |
US7801281B2 (en) | 2010-09-21 |
WO2006052541A3 (en) | 2006-10-05 |
US20060093113A1 (en) | 2006-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060093109A1 (en) | Methods, systems, and computer-readable mediums for indexing and rapidly searching data records | |
US7092956B2 (en) | Deduplication system | |
US6638314B1 (en) | Method of web crawling utilizing crawl numbers | |
US6219818B1 (en) | Checksum-comparing change-detection tool indicating degree and location of change of internet documents | |
EP2729884B1 (en) | Managing storage of data for range-based searching | |
US7734606B2 (en) | System and method for regulatory intelligence | |
US20130117255A1 (en) | Accessing a dimensional data model when processing a query | |
US7346633B2 (en) | System providing methodology for replication subscription resolution | |
Ashayer et al. | Predicate matching and subscription matching in publish/subscribe systems | |
US8478797B2 (en) | Atomic deletion of database data categories | |
US20060004934A1 (en) | Flexible and error resistant data buffering and connectivity | |
US20040133581A1 (en) | Database management system, data structure generating method for database management system, and storage medium therefor | |
US20120303613A1 (en) | Automatic update of searches | |
US20020129062A1 (en) | Apparatus and method for cataloging data | |
JP2000003321A (en) | Message storage structure of high performance | |
CN108647357B (en) | Data query method and device | |
CN111352902A (en) | Log processing method and device, terminal equipment and storage medium | |
US7904363B2 (en) | Database for financial market data storage and retrieval | |
US9043311B1 (en) | Indexing data updates associated with an electronic catalog system | |
CN111460255A (en) | Music work information data acquisition and storage method | |
CN113127455A (en) | Data management method and device, electronic equipment and readable storage medium | |
WO2007068279A1 (en) | Method and computer system for updating a database from a server to at least one client | |
CN112052259A (en) | Data processing method, device, equipment and computer storage medium | |
US9230011B1 (en) | Index-based querying of archived data sets | |
WO2001039012A2 (en) | Efficient web server log processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: AT&T INTELLECTUAL PROPERTY I, L.P., NEVADA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AT&T DELAWARE INTELLECTUAL PROPERTY, INC. (FORMERLY D/B/A AT&T BLS INTELLECTUAL PROPERTY, INC., FORMERLY D/B/A/ AT&T INTELLECTUAL PROPERTY, INC., FORMERLY D/B/A/ BELLSOUTH INTELLECTUAL PROPERTY CORPORATION);REEL/FRAME:021685/0788 Effective date: 20080930 Owner name: AT&T INTELLECTUAL PROPERTY I, L.P.,NEVADA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AT&T DELAWARE INTELLECTUAL PROPERTY, INC. (FORMERLY D/B/A AT&T BLS INTELLECTUAL PROPERTY, INC., FORMERLY D/B/A/ AT&T INTELLECTUAL PROPERTY, INC., FORMERLY D/B/A/ BELLSOUTH INTELLECTUAL PROPERTY CORPOR;REEL/FRAME:021685/0788 Effective date: 20080930 Owner name: AT&T INTELLECTUAL PROPERTY I, L.P., NEVADA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AT&T DELAWARE INTELLECTUAL PROPERTY, INC. (FORMERLY D/B/A AT&T BLS INTELLECTUAL PROPERTY, INC., FORMERLY D/B/A/ AT&T INTELLECTUAL PROPERTY, INC., FORMERLY D/B/A/ BELLSOUTH INTELLECTUAL PROPERTY CORPOR;REEL/FRAME:021685/0788 Effective date: 20080930 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |