Fair scheduling for mixed-query loads

Information

  • Patent Grant
  • 10817513
  • Patent Number
    10,817,513
  • Date Filed
    Tuesday, June 27, 2017
    7 years ago
  • Date Issued
    Tuesday, October 27, 2020
    3 years ago
  • CPC
    • G06F16/24535
    • G06F16/2453
    • G06F16/2455
    • G06F16/24542
    • G06F16/951
  • Field of Search
    • CPC
    • G06F16/24535
    • G06F16/24542
    • G06F16/2455
    • G06F16/2453
    • G06F16/951
  • International Classifications
    • G06F16/2453
    • G06F16/951
    • G06F16/2455
    • Term Extension
      543
Abstract
A fair scheduling system with methodology for scheduling queries for execution by a database management system in a fair manner. The system obtains query jobs for execution by the database management system and cost estimates to execute the query jobs. Based on the cost estimates, the system causes the database management system to execute the query jobs as separate sub-query tasks in a round-robin fashion. By doing so, the execution latency of low cost query jobs that return few results is reduced when the query jobs are concurrently executed with high cost query jobs that return many results.
Description
TECHNICAL FIELD

The present disclosure relates generally to scheduling computer-executable tasks for execution by computing devices and, more specifically, to techniques for scheduling queries for execution by database management systems.


BACKGROUND

Many database management systems are available to help users manage data. One way such systems help users is to answer questions the users have about the data. In the context of database management systems, questions are typically referred to as “queries” and answers typically referred to as “results”. Users submit queries to database management systems and receive answers to the queries in the form of results.


To answer queries, database management systems use computing resources such as memory and processor resources. Different queries require different amounts of computing resources to answer. For example, a query that returns 50,000 results may consume more computing resources than one that returns 10 results.


00 results, the fair scheduler 10 can execute multiple queries at the same time (i.e., (i.e., concurrently). The process performed by a database management system of determining the results of a query is often referred to as “executing” the query. Multiple queries executed concurrently by a database management system can contend with each other for use of the same computing resources. Many database management systems perform synchronization and scheduling functions for sharing computing resources amongst multiple concurrent query executions.


Unfortunately, despite these synchronization and scheduling efforts, problems can arise when database management systems execute multiple queries concurrently where some of the queries are “high cost” queries and others are “low cost” queries. With this type of mixed query-load, execution of the high cost queries can require use of so many computing resources that they “starve” low cost queries of computing resources. The result may be that the database management systems take a long amount of time to return answers to the low cost queries. Overall, some database management systems handle mixed query loads in such a way that latency of the low-cost queries and the throughput of the query load are longer than users expect them to be.


The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by their inclusion in this section.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a block diagram illustrating a fair scheduling system, per an embodiment;



FIG. 2 is a block diagram illustrating a possible database data model for storing network access information, per an embodiment;



FIG. 3A and FIG. 3B comprise a single flowchart illustrating operation of the fair scheduling system per an embodiment;



FIG. 4 is a block diagram of a computer system upon which embodiments can be implemented.





DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form to avoid unnecessarily obscuring the present invention.


General Overview

A fair scheduling system with methodology for scheduling queries for execution by a database management system is described. In one embodiment, for example, a method is described for scheduling a query job for execution by a database management system as separately executable sub-query tasks. Each sub-query task can have a lower execution cost than the execution cost of the query job. Further, each sub-query task can have the same or approximately the same execution cost. The method may be performed multiply or concurrently for multiple query jobs.


The method includes obtaining the query job and a cost estimate to execute the job. As an example, the cost estimate may be specified as a number of results the query job is expected to return.


The method further includes dividing the query job into a plurality of sub-query tasks based on the cost estimate exceeding a predetermined threshold cost.


The method further includes enqueuing a query job item representing the query job onto the end (tail) of a job execution queue. When the query job item is enqueued, the job execution queue can contain other previously enqueued query job items corresponding to previously obtained query jobs.


After the query job item reaches the front (head) of the job execution queue which in typical operation does not occur until all previously enqueued query job items have been dequeued from the front of the job execution queue, the method further includes dequeuing the query job item from the front of the job execution queue.


After dequeuing the query job item, the method initiates execution of the first sub-query task of the query job by the database management system. After causing the database management system to begin executing the first sub-query task of the query job, the method determines whether there are more sub-query tasks of the query job to execute. If there are more sub-query tasks to execute, then the method again enqueues the query job item onto the end of the job execution queue. The dequeuing of the query job item from the front of the job execution queue, initiating execution of the next sub-query task of the query job, and enqueuing the query job item back onto the end of the job execution queue can be repeated until execution of all of the sub-query tasks of the query job have been initiated.


If, after dequeuing a query job item from the front of the job execution queue and initiating execution of the last sub-query task, there are no more sub-query tasks to execute, then the query job item is not enqueued again onto the end of the job execution queue.


In some embodiments, the method enforces a maximum number of query job items that can be enqueued onto the job execution at the same time. More specifically, a query job item for a newly obtained query job is not enqueued onto the end of the job execution queue if the number of query job items already in the job execution queue is at the maximum number. The query job item is enqueued onto the job execution after an existing query job item is dequeued and the method determines that there are no more sub-query tasks to execute for the query job corresponding to the dequeued query job item. Since multiple query jobs can be obtained when the number of query job items already in the job execution queue is at the maximum number, a separate queue can be maintained to hold query job items for query jobs that are waiting to be added to job execution queue. Enforcing the maximum number of query job items that can be enqueued onto the job execution at the same time effectively limits the number of sub-query tasks concurrently executed by the database management system and can avoid negatively affecting throughput of query loads with many high cost queries.


Techniques are provided for scheduling, in a fair manner, queries for execution by database management systems. In one embodiment, the techniques involve obtaining a computer-executable job and a cost estimate to execute the job. For example, the computer-executable job can be a query and the cost estimate can be specified as a number of results the query is expected to return.


Based on the cost estimate exceeding a threshold cost, the job is divided into a sequence of computer-executable tasks. For example, if the query is expected to return 50,000 results and the threshold cost is 1,000 results, the query can be divided evenly into 50 sub-query tasks each of which returns 1,000 results. The techniques further involve enqueing a job item representing the job onto the end of a job execution queue. Other previously obtained jobs can be similarly divided and job items representing those other jobs similarly previously enqueued onto the end of the job execution queue.


After the job item for the job has reached the front of the job execution queue, the job item is dequeued from the front of the job execution queue. After dequeing the job item, the techniques further involve causing execution of the first task of the job to be initiated by a database management system. After initiating execution of the first task, a determination is made whether there are more tasks of the job to execute. If there are more tasks of the job to execute, the job item for the job is re-enqueued onto the end of the job execution queue. If there are no more tasks of the job to execute, then the job item is not re-enqueued. The dequeing, initiating execution of the next task of the job, and re-enqueing of the job item repeats until all tasks of the job have completed or the job is cancelled. The dequeing, initiating execution of the next task, and re-enqueing can be similarly repeated for all job items in the job execution queue.


Per one aspect of the present invention, the techniques involving dividing a query job into multiple sub-query tasks where each sub-query task, when executed, returns a “page” of the results that the query job would return if executed as a single task. For example, a query job that is expected to return 50,000 results can be divided into 50 sub-query tasks where the first sub-query task returns the first 1,000 results of the 50,000 results, the second sub-query task returns the next 1,000 results of the 50,000 results, etc. to the fiftieth sub-query task of that returns the last 1,000 results of the 50,000 results.


Fair Scheduling System


FIG. 1 is a block diagram illustrating a fair scheduling system, per an embodiment. The system 100 includes one or more clients 102 operatively coupled to fair scheduler 104. Fair scheduler 104 is operatively coupled to database management system 106 which is operatively coupled to database 108.


Clients 102 can be any set of one or more computing devices that submit query job requests to fair scheduler 104. Examples of clients 102 include, but are not limited to, personal computing devices, desktop computing devices, workstation computing devices, server computing devices, mobile phones, tablets, laptops or any other phone or general-purpose computing device that is executing software for submitting query job requests to fair scheduler 104. Clients 102 also may comprise processes or programs.


Clients 102 can be operated by users in which case the users can command clients 102 to submit query job requests to fair scheduler 104. Such commands can be caused by user interactions with graphical user interfaces or command line interfaces, for example. Alternatively, clients 102 can operate “unattended”. In this case, an automated process executing on clients 102 can submit query job requests to fair scheduler 104. In addition, some clients 102 can be operated by users and other clients 102 can operate unattended. Thus, a mix of user-operated and unattended clients 102 is possible. In some usage scenarios, multiple clients 102 submit multiple query job requests to the fair scheduler 104 at or about the same time.


Fair scheduler 104 can be any set of one or more computing devices configured to perform any of the fair scheduling techniques described herein. Examples of fair scheduler 104 include, but are not limited to, personal computing devices, desktop computing devices, workstation computing devices, server computing devices, or any other general-purpose computing device that is executing software for performing any of the fair scheduling techniques described herein.


Database management system 106 can be any set of one or more computing devices used to execute queries against database 108. Examples of database management system 106 include, but are not limited to, personal computing devices, desktop computing devices, workstation computing devices, server computing devices, or any other general-purpose computing device that is executing database management software. The database management software can be any database management software capable of supporting any of the fair scheduling techniques disclosed herein. In one exemplary non-limiting embodiment, the database management software is a version of Apache Cassandra. In another exemplary non-limiting embodiment, the database management software is a version of Apache HBase.


Database 108 can be any set of one or more computing devices used to store data against which the database management system 106 executes queries. Examples of database 108 include, but are not limited to, personal computing devices, desktop computing devices, workstation computing devices, server computing devices, or any other general-purpose computing device that is storing database data managed by database management system 106.


In some embodiments, such as the embodiment of the FIG. 1, clients 102, fair scheduler 104, database management system 106, and database 108 are each separate sets of computing devices. In other embodiments, one or more of clients 102, fair scheduler 104, database management system 106, and database 108 are the same set of computing devices in other embodiments. For example, client 102, fair scheduler 104, database management system 106, and database 108 can be the same computing device. Where more than one of clients 102, fair scheduler 104, database management system 106, and database 108 are the same set of computing devices, software components executing on the computing devices can execute as part of the same process or the same set of processes or in different processes or different sets of processes. For example, where the fair scheduler 104 and the database management system 106 are the same set of computing devices, software components for performing fair scheduling techniques described herein and software components for executing queries against database 108 can execute as part of the same Java Virtual Machine (JVM) process or set of processes.


If executing in separate processes or separate sets of processes, software components of clients 102, fair scheduler 104, and database management system 106 can communicate with each other using any suitable inter-process communications mechanism including, but not limited to, networking communications protocols such as, for example, Transmission Control Protocol/Internet Protocol (TCP/IP). If executing in the same process, the software components can communicate with each other through one or more Application Programming Interfaces (APIs).


Query Job Requests

In an embodiment, clients 102 submit query job requests to the fair scheduler 104. A query job request can contain values for query parameters and can contain a query execution cost estimate, among other information. As discussed in greater detail below, the fair scheduler 104 can use the query parameter values and the cost estimate in the query job request when causing sub-query tasks of query job to be executed by the database management system 106.


The query parameters can vary between different query jobs per the requirements of the implementation at hand. One non-limiting example of a query job is: get the group of columns contained by a specified column family for a specified row of the column family that satisfy a specified column name range predicate. An example of such a query job expressed according a version of the Apache Cassandra Thrift API is:

















get_slice(“key” : key,



  “column_parent” : {“column_family” : column_family},



  “predicate” :



    { “slice_range” :



      { “start” : start_column_name,



        “end” : end_column_name,



       “reverse” : reverse,



       “count” : count }



    } )










In the above-example query job, there are six query parameters: key, column_family, start_column_name, end_column_name, reverse, and count. Other query jobs may have a fewer number or a greater number of query parameters or different query parameters. In the above-example query job, values for one or more of the six query parameters can be specified in a query job request. Values for any other query parameters that are not specified in the query job request can be provided by the fair scheduler. For example, a query job request can specify a value for the key parameter and a value for the start_column_name parameter and the fair scheduler 104 can provide values for the column_family, end_column_name, reverse, and count query parameters, as just one example.


In the above-example query job, the value of the key query parameter uniquely identifies a row in the column family specified by the value of the column_family parameter. The columns of that row of that column family can be ordered by column name. The value of the reverse parameter is a Boolean value. If the value of the reverse parameter is false, then the column name range predicate of the above-example query job restricts results to columns having a column name that is greater than or equal to the value of start_column_name parameter and less than or equal to the value of the end_column_name_parameter. If the value of the reverse parameter is true, then the column name range predicate restricts results to columns having a column name that is less than or equal to the value of start_column_name parameter and greater than or equal to the value of the end_column_name parameter. The value of the count parameter limits the number results to the specified number of the columns that satisfy the column name range predicate.


Example Query Job Request

For providing clear examples, embodiments of the fair scheduling techniques of the present disclosure are described hereinafter with respect to an example query job request. However, the techniques are not limited to the example query job request.


The example query job request follows an example use case in which network access information is stored in a column family of the database by network address of the accessing network device and the time of the network access.


A possible data model 200 of a database 108 for storing the network access information is illustrated in FIG. 2. The data model 200 includes a column family 202. The column family 202 contains one or more rows. Each row can be keyed by a unique key. For example, key 204 can uniquely identify the first row of column family 202. Each row can contain a set of zero or more ordered columns. Each column can have a name and a value. Within a row, each column name can be unique. The columns of a row can be ordered by column name per an ordering scheme. Example ordering schemes include ASCII, UTF-8, Long, UUID (lexical or time), date, a combination two or more of the foregoing ordering schemes, and other ordering schemes. Different rows can have different numbers of columns. For example, one row can have only one column and another row can have a billion or more columns. Different column values may have different sizes. For example, one column value can be just a few bytes in size while another column value can be 1 gigabyte or more in size.


For the use case of storing network access information, each key of the column family 202 can be a network address. For example, key 204 may be an Internet Protocol (IP) address such as “192.168.0.10”. The columns in a row of the column family 202 can store information about network access involving the network address identified by the key of the row. For example, each column of the row can correspond to a single network access event involving the network address. For example, the name of the column within a row can be a unique timestamp value (unique for a column name within the row) representing the date and time of the network access event and the value of the column can be information about the network access event such as information collected from network access logs, e-mail messages, call data records, etc.


In a variation of on the example use case, each column of a row can correspond to multiple network access events involving the network address. For example, the name of the column within the row can be a unique timestamp value (unique for a column name within the row) representing a range of time during which one or more network access events involving the network address occurred. The name of the column can correspond to the starting time of the range. Recalling that columns of a row can be stored in ascending order by column name, the ending time of the range can be determined from the name of the next column in the row. The value of the column can include one or more sub-values. The value can be variable length encoded or otherwise encoded or compressed. Each sub-value can correspond to a single network access event involving the network address. A sub-value corresponding to a network access event can have three parts:

  • An offset from the time in the column name. The time at which the corresponding network access event occurred can be determined from the column name and the offset;
  • A pointer to a block of information containing information about one or more network access events including the corresponding network address event. For example, the pointer can be a key and a column name of another column family that stores blocks of information about network access events.
  • A sub-block identifier that identifies, within the block of information identified by the pointer, sub-information about the corresponding network access event. For example, the sub-block identifier can be a byte offset range or a line number range that identifies the sub-information within the block of information.


Different query job requests can request different numbers of results. For example, with the example use cases, the number of results returned can depend on the range of time specified in the query job requests. For example, one query job request can request network access information involving a specified network address for a range of time that spans days, weeks, or months while another query job request can request network access information for a range of time that spans minutes. The query job request for the larger span of time can return tens of thousands of results or more while the query job request for the smaller span of time can return only ten results of less. If the larger query job is executed by the database management system 106 concurrently with the smaller query job, the latency of the smaller query job can be negatively affected by the concurrent execution of the larger query job.


Query Job Cost Estimate

As mentioned above, a query job request from a client 102 can include a cost estimate for the database management system 106 to execute the query job. For example, the query job request can specify the number of results the query job is expected to return. For example, for the above example query job involving network access information, a query job request can specify a number of columns that the query job is expected to return.


Alternatively, a query job request may not specify a query job cost estimate. In this case, the fair scheduler 104 may generate a query cost estimate. Such estimate may be generated in several different ways and the fair scheduler 104 is not limited to any way of generating a query cost estimate. For example, the fair scheduler 104 may generate a query cost estimate based on query parameters values specified in the query job request. For example, the fair scheduler 104 may ask the database management system 106 for a cost estimate providing the query parameter values for use by the database management system in generated the cost estimate. The database management system may not completely execute the query job when generating the estimate. The fair scheduler 104 may generate a query cost estimate in other ways and embodiments are not limited to any way of generating a query cost estimate.


Yet another alternative, a final query cost estimate may be generated based on a combination of a query cost estimate provided in a query job request and a preliminary query cost estimate generated by the fair scheduler 104. The preliminary cost estimate may be generated per the approach in the previous paragraph, for example. For example, the fair scheduler 104 may generate the final query cost estimate based on a mathematical combination of the query cost estimate in the query job request and the preliminary query cost estimate generated by the fair scheduler. This alternative can be performed by the fair scheduler to reduce cost estimation errors relative the above approaches where only one of the query job request or the fair scheduler 104 provides the cost estimate.


Threshold Cost

As indicated above, the query cost estimate for a query job is used by the fair scheduler 104 to determine whether the query job should be broken down into separately executable sub-query tasks. This determination can be made by comparing the query cost estimate to a threshold cost. If the query cost estimate exceeds the threshold cost, then the fair scheduler can cause the query job to be executed by the database management system 106 as multiple sub-query tasks. If the query cost estimate is lower than the threshold cost, then the query job can be executed as a single query task.


The threshold cost can be predefined. For example, a query job with a cost estimate above 1,000 results can be broken up into multiple separately executable sub-query tasks. In this case, if the cost estimate is at or below 1,000, the query job can be executed as a single task.


The threshold cost can be determined based on query execution metrics collected for previously executed query jobs. Such metrics can include measured executions latencies of the previously executed query jobs. Execution latency for a query job can be measured, for example, as the time between:

  • when the query job starts execution and when the first result of the query job is returned,
  • when the query job starts execution and when the last result of the query job is returned,
  • a mathematical combination of the above two execution latency metrics.


Query execution metrics collected for previously executed query jobs can also include measured execution throughput. Measured execution throughput can be measured, for example, as the number of query jobs that start and finish execution within a certain period of time.


Collected query execution metrics can be used by the fair scheduler to adjust the threshold cost on an ongoing basis.


Dividing Query Jobs

As mentioned above, the fair scheduler can divide the query job into multiple sub-query tasks if the cost estimate for the query exceeds the threshold cost. In one approach, the fair scheduler divides the query job evenly based on the cost estimate and the current threshold cost. For example, if the cost estimate for a query job is 100,000 results and the current threshold cost is 1,000 results, the fair scheduler can divide the query job into 100 sub-query tasks each expected to return 1,000 results. By dividing each query job of a mixed-query load evenly, or approximately evenly, as separately executable sub-query tasks that are executed in a round-robin fashion through the job execution queue, the high cost query jobs of the mixed-load are executed fairly with the low-cost query jobs of the mixed-load thereby preventing the high cost query jobs from starving the low cost query jobs for computing resources of the database management system.


In other approaches, query jobs are divided unevenly. For example, a query job that exceeds the threshold cost can be divided into multiple sub-query tasks where each successive sub-query task is expected to return fewer and fewer results (or, alternatively, more and more results).


Paging Query Results

The fair scheduler 104 can divide a query job into multiple sub-query tasks by using a result limiter for each of the sub-query tasks. The result limiter limits the number of results that the sub-query task returns when executed by the database management system 106. For example, the count query parameter can be used in the following sub-query task to limit the number of results returned when the sub-query task executed by the database management system 106 to at most the specified number of results.

















get_slice(“key” : key,



  “column_parent” : {“column_family” : column_family},



  “predicate” :



    { “slice_range” :



      { “start” : start_column_name,



        “end” : end_column_name,



       “reverse” : reverse,



       “count” : count }



} )










If a sub-query task, when executed, returns the number of results specified as the result limiter, then the fair scheduler 104 can determine that more results of the query job are available. In this case, the fair scheduler 104 can configure the next sub-query task to get the next set of results based on the last result returned by the previous sub-query task. For example, given a threshold cost of 1,000 results and a query job request with a cost estimate of 10,000 results, the fair scheduler 104 can cause the database management system 106 to execute the following sub-query task to obtain the first 1,000 results:

















get_slice(“key” : key,



  “column_parent” : {“column_family” : column_family},



  “predicate” :



    { “slice_range” :



      { “start” : start_column_name,



       “end” : ‘’,



       “reverse” : reverse,



       “count” : 1000 }



} )










In the above example, sub-query task, the value ‘ ’ for the end sub-parameter indicates to the database management system 106 that at most 1000 columns should be returned from the row keyed by the value for the key parameter starting with the column in the row having the name matching the value of the start_column_name parameter. If less than 1000 columns are returned by this sub-query task, then the query job is finished and no more sub-query tasks need be executed for the query job. If this is the case, the query estimate of 10,000 columns was inaccurate by an order of magnitude. If, as expected, 1,000 columns are returned by this sub-query tasks, then the next sub-query task for the query job can be configured based on the name of the last column returned by the previous sub-query task. For example, assume the parameter last_column_name holds as its value the name of the last column (e.g., the 1000th column) returned by the first sub-query task that returned the first 1,000 columns. The fair scheduler 104 can cause the database management system to execute the following sub-query task to obtain the next 1,000 results:

















get_slice(“key” : key,



  “column_parent” : {“column_family” : column_family},



  “predicate” :



    { “slice_range” :



      { “start” : last_column_name,



       “end” : ‘’,



       “reverse” : reverse,



       “count” : 1001 }



} )










Here, since name of the last column returned by the previous sub-query task is provided as the value for the start parameter in this sub-query task, the first column returned by this sub-query task will be the same as the last column returned by the previous sub-query task. This is done to avoid inadvertently skipping columns between two consecutively executed sub-query tasks for a query job. Accordingly, a value of 1001 is provided for the count parameter to obtain the next 1,000 columns.


The above paging scheme assumes that the columns within a row are ordered by column name and the names of the columns within the row are unique within the row. More generally, the above paging scheme can be applied over a set of potential results in which each potential result is ordered within the set by a unique value associated with the potential result.


Method of Operation

The following description presents method steps that may be implemented using computer-executable instructions, for directing operation of a device under processor control. The computer-executable instructions may be stored on a computer-readable medium, such as hard disk, CD, DVD, flash memory, or the like. The computer-executable instructions may also be stored as a set of downloadable computer-executable instructions, for example, for downloading and installation from an Internet location (e.g., Web server).



FIG. 3A and FIG. 3B comprise a single flowchart 300 illustrating overall operation of the fair scheduling system, per an embodiment. The method of operation starts at step 302, with the system obtaining a query job. How the system obtains the query job is not of importance. For example, the system can obtain the query job in a query job request or some other way. At a minimum the query job contains a specification of one or more query parameters.


At step 304, the system obtains a cost estimate for the query job. As with the query job, how the system obtains the cost estimate is not particularly important. For example, the cost estimate may be specified in a query job request if the query job was obtained in a query job request. As another example, the cost estimate may be obtained from a cost analysis of the query job performed by the system. The cost analysis may be based on the query parameters specified in the query job.


At step 306, the system obtains a threshold cost in some manner. The threshold cost may be predetermined before step 302 (i.e., before the query job is obtained). Generally, a threshold cost is selected so that high cost query jobs are broken down into multiple separately executable lower cost sub-query tasks. If the threshold cost is too high, not enough high cost query jobs may be broken down into multiple separately executable lower cost sub-query tasks by the system thereby causing excessive starvation of concurrently executing low cost query jobs for shared computing resources. If, on the other hand, the threshold cost is too low, low cost query jobs may be unnecessarily broken down into multiple separately executable lower cost sub-query tasks by the system thereby causing excessive latency for the low-cost query jobs.


The threshold cost may be configured by an administrator of the system. During operation, the system may dynamically adjust the threshold cost based on query workload history. Such history may include query execution metrics for low cost and high cost query jobs. Such query execution metrics can include latency and throughput of query jobs, or another metric.


At step 308, the system determines whether the obtained cost estimate exceeds (or equals) the obtained threshold cost. If so, system determines (step 310) to divide the query job into multiple separately executable sub-query tasks. The division may be based on the cost estimate and the threshold cost. For example, the query job can be divided evenly into N sub-query tasks where N is the ((cost estimate/threshold cost)+1). In this case, the first N−1 tasks would be expected to have equal execution cost. The Nth task would be expected to have at most the execution cost of one of the first N−1 tasks. If the system determines that the obtained cost estimate does not exceed (or equals) the obtained threshold cost, then the query job is not divided and executed as a single query task.


Whether the query job is divided or not, at step 312, a job item representing the query job is enqueued to the end of a job execution queue. The job execution queue holds up to M number of job items where M represents the maximum number of query jobs that the system will allow the database management system to concurrently execute query tasks for. Like the threshold cost, the size of the job execution queue (e.g., the maximum number M of job items allowed in the job execution queue at one time) may be predetermined and/or dynamically adjusted based on query workload history. If the job execution queue has M job items in it when a new query job is obtained at step 302 (i.e., the job execution queue is full), then the system may block further processing of the new query job until an existing query job finishes execution (e.g., until an existing query job is cancelled and the job item for the query job is removed from the job execution queue or until all sub-query tasks of an existing query job have been executed and the job item for the query is dequeued from the job execution queue). The system may maintain another queue for ordering and tracking new query jobs that are obtained when the job execution queue is full.


At step 314, the job item enqueued at step 312 is dequeued after the job item reaches the front of the job execution queue. The job item will not reach the front of the job execution queue until all job items closer to the front of the job execution queue have been dequeued or removed from the job execution queue. Among other information, a job item representing a query job enqueued onto the job execution queue may contain query job specification data such as query parameters for the query job. The job item may also contain fair scheduling bookkeeping data such as (a) the number of sub-query tasks the query job was divided into, if the query job was divided at step 310, (b) a numerical result limiter to be used for all sub-query tasks or per-sub-query tasks numerical result limiters, and (c) a paging value representing the last result returned from the most recently completed sub-query task which can be used to configure the next sub-query task.


At step 316, the system causes the next sub-query task to be executed by the database management system. If the query job was not divided, the next sub-query task will be the only query task executed for the query job. If the query job was divided, then the next sub-query task is configured with a result limiter that limits the number of results returned by the database management system.


At step 318, the system determines if there are more sub-query tasks of the query job to execute. If so, the method returns to step 312 to re-enqueue the job item for the query job to the end of the job execution queue. If, at step 318, there are no more sub-query tasks to execute, then the query job is finished and the job item for the query job is not re-enqueued to the end of the job execution queue.


Scheduling query jobs through the job execution may be performed by the system to ensure a fair scheduling of mixed query loads. Through the system's use of the job execution queue, both high cost and low cost query jobs may be fairly and concurrently executed by the database management system in a round-robin fashion.


Cancelling a Query Job

It may be the case that execution of a sub-query task for a query job by the database management system is not progressing. For this or some other reason, a user of the fair scheduling system may wish to cancel a currently executing query job. Accordingly, in some embodiments, a request to the fair scheduling system to cancel a currently executing query job is received. Upon receiving the cancel request, the fair scheduling system removes the job item corresponding to the query job from the job execution queue. Thus, no further sub-query tasks of query job will be executed. This cancellation may have no effect on execution of the currently sub-query tasks


In some embodiments in which the database management system operates on multiple computing nodes, the system re-submits a cancelled query job as a new query job with the same query parameters but for execution on a different computing node than the computing device that the cancelled query job was last executing on when cancelled. This is useful if the reason the cancelled query job was not progressing was because of a problem at the computing node on which the cancelled query job was last executing.


The cancellation request may be provided by a user through a graphical user interface presented on the user's personal computing device. For example, the user interface may present a list of currently executing query jobs and associated interactive graphical user interface elements for cancelling selected query jobs.


Hardware Overview

Per one embodiment, the techniques described herein are implemented by one or more special-purpose computing devices. The special-purpose computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination. Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to accomplish the techniques. The special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and/or program logic to implement the techniques.


For example, FIG. 4 is a block diagram that illustrates a computer system 400 upon which an embodiment of the invention may be implemented. Computer system 400 includes a bus 402 or other communication mechanism for communicating information, and a hardware processor 404 coupled with bus 402 for processing information. Hardware processor 404 may be, for example, a general-purpose microprocessor.


Computer system 400 also includes a main memory 406, such as a random-access memory (RAM) or other dynamic storage device, coupled to bus 402 for storing information and instructions to be executed by processor 404. Main memory 406 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 404. Such instructions, when stored in non-transitory storage media accessible to processor 404, render computer system 400 into a special-purpose machine that is customized to perform the operations specified in the instructions.


Computer system 400 further includes a read-only memory (ROM) 408 or other static storage device coupled to bus 402 for storing static information and instructions for processor 404. A storage device 410, such as a magnetic disk or optical disk, is provided and coupled to bus 402 for storing information and instructions.


Computer system 400 may be coupled via bus 402 to a display 412, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device 414, including alphanumeric and other keys, is coupled to bus 402 for communicating information and command selections to processor 404. Another type of user input device is cursor control 416, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 404 and for controlling cursor movement on display 412. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.


Computer system 400 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system 400 to be a special-purpose machine. Per one embodiment, the techniques herein are performed by computer system 400 in response to processor 404 executing one or more sequences of one or more instructions contained in main memory 406. Such instructions may be read into main memory 406 from another storage medium, such as storage device 410. Execution of the sequences of instructions contained in main memory 406 causes processor 404 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.


The term “storage media” as used herein refers to any non-transitory media that store data and/or instructions that cause a machine to operation in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 410. Volatile media includes dynamic memory, such as main memory 406. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.


Storage media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 402. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.


Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor 404 for execution. For example, the instructions may initially be carried on a magnetic disk or solid state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 400 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 402. Bus 402 carries the data to main memory 406, from which processor 404 retrieves and executes the instructions. The instructions received by main memory 406 may optionally be stored on storage device 410 either before or after execution by processor 404.


Computer system 400 also includes a communication interface 418 coupled to bus 402. Communication interface 418 provides a two-way data communication coupling to a network link 420 that is connected to a local network 422. For example, communication interface 418 may be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 418 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 418 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.


Network link 420 typically provides data communication through one or more networks to other data devices. For example, network link 420 may provide a connection through local network 422 to a host computer 424 or to data equipment operated by an Internet Service Provider (ISP) 426. ISP 426 in turn provides data communication services through the world-wide packet data communication network now commonly referred to as the “Internet” 428. Local network 422 and Internet 428 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 420 and through communication interface 418, which carry the digital data to and from computer system 400, are example forms of transmission media.


Computer system 400 can send messages and receive data, including program code, through the network(s), network link 420 and communication interface 418. In the Internet example, a server 430 might transmit a requested code for an application program through Internet 428, ISP 426, local network 422 and communication interface 418.


The received code may be executed by processor 404 as it is received, and/or stored in storage device 410, or other non-volatile storage for later execution.


In the foregoing specification, embodiments of the invention have been described regarding numerous specific details that may vary from implementation to implementation. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. The sole and exclusive indicator of the scope of the invention, and what is intended by the applicants to be the scope of the invention, is the literal and equivalent scope of the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction.

Claims
  • 1. A computing system, comprising: one or more processors;storage media;one or more programs stored in the storage media and configured for execution by the one or more processors, the one or more programs comprising instructions configured for:obtaining a query for execution by a database management system and a cost estimate for the database management system to execute the query;enqueuing an item for the query onto a queue, the queue having a head, a tail, and a maximum number of allowed items;based, at least in part, on the cost estimate, dividing the query into a plurality of sub-queries;based, at least in part, on an item for the query reaching the head of the queue, causing a first sub-query of the plurality of sub-queries to be executed by the database management system; andbased, at least in part, on determining there are more sub-queries of the plurality of sub-queries to be executed by the database management system: re-enqueuing an item for the query onto the tail of the queue if a current number of items in the queue is less than the maximum number of allowed items, orwaiting until a current number of items in the queue is less than the maximum number of allowed items before re-enqueuing an item for the query onto the tail of the queue if a current number of items in the queue is not less than the maximum number of allowed items.
  • 2. The computing system of claim 1, wherein the cost estimate is a number of query results the query is expected to return.
  • 3. The computing system of claim 1, the one or more programs comprising instructions configured for: based, at least in part, on the determining there are more sub-queries of the plurality of sub-queries to be executed by the database management system, re-enqueuing an item for the query onto the tail of the queue.
  • 4. The computing system of claim 1, the one or more programs comprising instructions configured for: based, at least in part, on the determining there are more sub-queries of the plurality of sub-queries to be executed by the database management system, waiting until a current number of items in the queue is less than the maximum number of allowed items before re -enqueuing an item for the query onto the tail of the queue.
  • 5. The computing system of claim 1, wherein the first sub-query is configured with a result limiter that limits a number of results the first sub-query returns.
  • 6. The computing system of claim 1, the one or more programs further comprising instructions configured for: de-queueing an item for the query from the head of the queue; andwherein the causing the first sub-query to be executed by the database management system is based, at least in part, on the de-queueing.
  • 7. The computing system of claim 1, the one or more programs further comprising instructions configured for: based, at least in part, on determining there are no more sub-queries of the plurality of sub-queries to be executed by the database management system, not re-enqueuing an item for the query onto the tail of the queue.
  • 8. A method performed by a computing system comprising one or more processors, storage media, and one or more programs stored in the storage media and executed by the one or more processors to perform the method, the method comprising: obtaining a query for execution by a database management system and a cost estimate for the database management system to execute the query;enqueuing an item for the query onto a queue, the queue having a head, a tail, and a maximum number of allowed items;based, at least in part, on the cost estimate, dividing the query into a plurality of sub -queries;based, at least in part, on an item for the query reaching the head of the queue, causing a first sub-query of the plurality of sub-queries to be executed by the database management system; andbased, at least in part, on determining there are more sub-queries of the plurality of sub -queries to be executed by the database management system: re-enqueuing an item for the query onto the tail of the queue if a current number of items in the queue is less than the maximum number of allowed items, orwaiting until a current number of items in the queue is less than the maximum number of allowed items before re-enqueuing an item for the query onto the tail of the queue if a current number of items in the queue is not less than the maximum number of allowed items.
  • 9. The method of claim 8, wherein the cost estimate is a number of query results the query is expected to return.
  • 10. The method of claim 8, further comprising: based, at least in part, on the determining there are more sub-queries of the plurality of sub-queries to be executed by the database management system, re-enqueuing an item for the query onto the tail of the queue.
  • 11. The method of claim 8, further comprising: based, at least in part, on the determining there are more sub-queries of the plurality of sub-queries to be executed by the database management system, waiting until a current number of items in the queue is less than the maximum number of allowed items before re -enqueuing an item for the query onto the tail of the queue.
  • 12. The method of claim 8, wherein the first sub-query is configured with a result limiter that limits a number of results the first sub-query returns.
  • 13. The method of claim 8, further comprising: de-queueing an item for the query from the head of the queue; andwherein the causing the first sub-query to be executed by the database management system is based, at least in part, on the de-queueing.
  • 14. The method of claim 8, further comprising: based, at least in part, on determining there are no more sub-queries of the plurality of sub-queries to be executed by the database management system, not re-enqueuing an item for the query onto the tail of the queue.
  • 15. One or more non-transitory computer-readable media storing one or more one or more programs for execution by a computing system comprising one or more processors and storage media, the one or more programs comprising instructions configured for: obtaining a query for execution by a database management system and a cost estimate for the database management system to execute the query;enqueuing an item for the query onto a queue, the queue having a head, a tail, and a maximum number of allowed items;based, at least in part, on the cost estimate, dividing the query into a plurality of sub -queries;based, at least in part, on an item for the query reaching the head of the queue, causing a first sub-query of the plurality of sub-queries to be executed by the database management system; andbased, at least in part, on determining there are more sub-queries of the plurality of sub -queries to be executed by the database management system: re-enqueuing an item for the query onto the tail of the queue if a current number of items in the queue is less than the maximum number of allowed items, orwaiting until a current number of items in the queue is less than the maximum number of allowed items before re-enqueuing an item for the query onto the tail of the queue if a current number of items in the queue is not less than the maximum number of allowed items.
  • 16. The one or more non-transitory computer-readable media of claim 15, wherein the cost estimate is a number of query results the query is expected to return.
  • 17. The one or more non-transitory computer-readable media of claim 15, the one or more programs comprising instructions configured for: based, at least in part, on the determining there are more sub-queries of the plurality of sub-queries to be executed by the database management system, re-enqueuing an item for the query onto the tail of the queue.
  • 18. The one or more non-transitory computer-readable media of claim 15, the one or more programs comprising instructions configured for: based, at least in part, on the determining there are more sub-queries of the plurality of sub-queries to be executed by the database management system, waiting until a current number of items in the queue is less than the maximum number of allowed items before re -enqueuing an item for the query onto the tail of the queue.
  • 19. The one or more non-transitory computer-readable media of claim 15, wherein the first sub-query is configured with a result limiter that limits a number of results the first sub -query returns.
  • 20. The one or more non-transitory computer-readable media of claim 15, the one or more programs further comprising instructions configured for: de-queueing an item for the query from the head of the queue; andwherein the causing the first sub-query to be executed by the database management system is based, at least in part, on the de-queueing.
  • 21. The one or more non-transitory computer-readable media of claim 15, the one or more programs further comprising instructions configured for: based, at least in part, on determining there are no more sub-queries of the plurality of sub-queries to be executed by the database management system, not re-enqueuing an item for the query onto the tail of the queue.
PRIORITY CLAIM

This application claims the benefit as a continuation of application Ser. No. 14/726,211, filed May 29, 2015, which is a continuation of application Ser. No. 13/826,228, filed Mar. 14, 2013, now U.S. Pat. No. 9,092,482, the entire contents of each of which is hereby incorporated by reference as if fully set forth herein, under 35 U.S.C. § 120. The applicant(s) hereby rescind any disclaimer of claim scope in the parent application(s) or the prosecution history thereof and advise the USPTO that the claims in this application may be broader than any claim in the parent application(s).

US Referenced Citations (901)
Number Name Date Kind
5109399 Thompson Apr 1992 A
5329108 Lamoure Jul 1994 A
5418950 Li et al. May 1995 A
5428737 Li et al. Jun 1995 A
5428776 Rothfield Jun 1995 A
5542089 Lindsay et al. Jul 1996 A
5568390 Hirota et al. Oct 1996 A
5608899 Li et al. Mar 1997 A
5613105 Xbikowski et al. Mar 1997 A
5632009 Rao et al. May 1997 A
5670987 Doi et al. Sep 1997 A
5701456 Jacopi et al. Dec 1997 A
5724575 Hoover et al. Mar 1998 A
5781704 Rossmo Jul 1998 A
5794228 French et al. Aug 1998 A
5794229 French et al. Aug 1998 A
5798769 Chiu et al. Aug 1998 A
5845300 Comer Dec 1998 A
5857329 Bingham Jan 1999 A
5872973 Mitchell et al. Feb 1999 A
5897636 Kaeser Apr 1999 A
5902349 Endo et al. May 1999 A
5911138 Li et al. Jun 1999 A
5918225 White et al. Jun 1999 A
6057757 Arrowsmith et al. May 2000 A
6058373 Blinn May 2000 A
6073129 Levine et al. Jun 2000 A
6091956 Hollenberg Jul 2000 A
6094653 Li et al. Jul 2000 A
6161098 Wallman Dec 2000 A
6208985 Krehel Mar 2001 B1
6219053 Tachibana et al. Apr 2001 B1
6232971 Haynes May 2001 B1
6236994 Swartz et al. May 2001 B1
6243717 Gordon et al. Jun 2001 B1
6247019 Davies Jun 2001 B1
6279018 Kudrolli et al. Aug 2001 B1
6289334 Reiner et al. Sep 2001 B1
6304873 Klein et al. Oct 2001 B1
6311181 Lee et al. Oct 2001 B1
6321274 Shakib et al. Nov 2001 B1
6341310 Leshem et al. Jan 2002 B1
6366933 Ball et al. Apr 2002 B1
6369835 Lin Apr 2002 B1
6418438 Campbell Jul 2002 B1
6446062 Levine et al. Sep 2002 B1
6456997 Shukla Sep 2002 B1
6496774 Davies Dec 2002 B1
6510504 Satyanarayana Jan 2003 B2
6549752 Tsukamoto Apr 2003 B2
6549944 Weinberg et al. Apr 2003 B1
6560620 Ching May 2003 B1
6574635 Stauber et al. Jun 2003 B2
6581068 Bensoussan et al. Jun 2003 B1
6594672 Lampson et al. Jul 2003 B1
6608559 Lemelson et al. Aug 2003 B1
6631496 Li et al. Oct 2003 B1
6640231 Andersen et al. Oct 2003 B1
6642945 Sharpe Nov 2003 B1
6643613 McGee et al. Nov 2003 B2
6674434 Chojnacki et al. Jan 2004 B1
6701485 Igra et al. Mar 2004 B1
6714936 Nevin, III Mar 2004 B1
6745382 Zothner Jun 2004 B1
6775675 Nwabueze et al. Aug 2004 B1
6779151 Cahill et al. Aug 2004 B2
6820135 Dingman Nov 2004 B1
6828920 Owen et al. Dec 2004 B2
6839745 Dingari et al. Jan 2005 B1
6851108 Syme et al. Feb 2005 B1
6857120 Arnold et al. Feb 2005 B1
6877137 Rivette et al. Apr 2005 B1
6976024 Chavez et al. Dec 2005 B1
6976210 Silva et al. Dec 2005 B1
6980984 Huffman et al. Dec 2005 B1
6985950 Hanson et al. Jan 2006 B1
7028223 Kolawa et al. Apr 2006 B1
7036085 Barros Apr 2006 B2
7043702 Chi et al. May 2006 B2
7055110 Kupka et al. May 2006 B2
7058622 Tedesco Jun 2006 B1
7058648 Lightfoot et al. Jun 2006 B1
7085890 Kashyap Aug 2006 B2
7111231 Huck et al. Sep 2006 B1
7139800 Bellotti et al. Nov 2006 B2
7155728 Prabhu et al. Dec 2006 B1
7158797 Jayaraman et al. Jan 2007 B1
7158878 Rasmussen et al. Jan 2007 B2
7162475 Ackerman Jan 2007 B2
7168039 Bertram Jan 2007 B2
7171427 Witkowski Jan 2007 B2
7194680 Roy et al. Mar 2007 B1
7216133 Wu et al. May 2007 B2
7269786 Malloy et al. Sep 2007 B1
7278105 Kitts Oct 2007 B1
7290698 Poslinski et al. Nov 2007 B2
7333998 Heckerman et al. Feb 2008 B2
7370047 Gorman May 2008 B2
7379811 Rasmussen et al. May 2008 B2
7379903 Joseph May 2008 B2
7406592 Polyudov Jul 2008 B1
7426654 Adams et al. Sep 2008 B2
7451397 Weber et al. Nov 2008 B2
7454466 Bellotti et al. Nov 2008 B2
7461158 Rider et al. Dec 2008 B2
7467375 Tondreau et al. Dec 2008 B2
7487139 Fraleigh et al. Feb 2009 B2
7502786 Liu et al. Mar 2009 B2
7519589 Charnock et al. Apr 2009 B2
7525422 Bishop et al. Apr 2009 B2
7529727 Arning et al. May 2009 B2
7529734 Dirisala May 2009 B2
7546353 Hesselink et al. Jun 2009 B2
7558677 Jones Jun 2009 B2
7574409 Patinkin Aug 2009 B2
7574428 Leiserowitz et al. Aug 2009 B2
7579965 Bucholz Aug 2009 B2
7596285 Brown et al. Sep 2009 B2
7603229 Goldberg et al. Oct 2009 B2
7610290 Kruy et al. Oct 2009 B2
7614006 Molander Nov 2009 B2
7617232 Gabbert et al. Nov 2009 B2
7620628 Kapur et al. Nov 2009 B2
7627489 Schaeffer et al. Dec 2009 B2
7627812 Chamberlain et al. Dec 2009 B2
7634717 Chamberlain et al. Dec 2009 B2
7685109 Ransil Mar 2010 B1
7703021 Flam Apr 2010 B1
7706817 Bamrah et al. Apr 2010 B2
7712049 Williams et al. May 2010 B2
7716077 Mikurak May 2010 B1
7725530 Sah et al. May 2010 B2
7725547 Albertson et al. May 2010 B2
7725728 Ama et al. May 2010 B2
7730082 Sah et al. Jun 2010 B2
7730109 Rohrs et al. Jun 2010 B2
7760969 Silverbrook et al. Jul 2010 B2
7761407 Stern Jul 2010 B1
7770100 Chamberlain et al. Aug 2010 B2
7783679 Bley Aug 2010 B2
7805457 Viola et al. Sep 2010 B1
7809703 Balabhadrapatruni et al. Oct 2010 B2
7814084 Hallett et al. Oct 2010 B2
7818291 Ferguson et al. Oct 2010 B2
7818658 Chen Oct 2010 B2
7853573 Warner et al. Dec 2010 B2
7870493 Pall et al. Jan 2011 B2
7877421 Berger et al. Jan 2011 B2
7894984 Rasmussen et al. Feb 2011 B2
7899611 Downs et al. Mar 2011 B2
7908521 Sridharan et al. Mar 2011 B2
7917376 Bellin et al. Mar 2011 B2
7920963 Jouline et al. Apr 2011 B2
7933862 Chamberlain et al. Apr 2011 B2
7941321 Greenstein et al. May 2011 B2
7962281 Rasmussen et al. Jun 2011 B2
7962495 Jain et al. Jun 2011 B2
7962848 Bertram Jun 2011 B2
7970240 Chao et al. Jun 2011 B1
7971150 Raskutti et al. Jun 2011 B2
7979424 Dettinger et al. Jul 2011 B2
7984374 Caro et al. Jul 2011 B2
8001465 Kudrolli et al. Aug 2011 B2
8001482 Bhattiprolu et al. Aug 2011 B2
8010545 Stefik et al. Aug 2011 B2
8015487 Roy et al. Sep 2011 B2
8024778 Cash et al. Sep 2011 B2
8036632 Cona et al. Oct 2011 B1
8041714 Aymeloglu et al. Oct 2011 B2
8042110 Kawahara et al. Oct 2011 B1
8046283 Burns Oct 2011 B2
8073857 Sreekanth Dec 2011 B2
8103543 Zwicky Jan 2012 B1
8103962 Embley et al. Jan 2012 B2
8108138 Bruce et al. Jan 2012 B2
8112425 Baum et al. Feb 2012 B2
8126848 Wagner Feb 2012 B2
8134457 Velipasalar et al. Mar 2012 B2
8145703 Frishert et al. Mar 2012 B2
8185819 Sah et al. May 2012 B2
8214361 Sandler et al. Jul 2012 B1
8214764 Gemmell et al. Jul 2012 B2
8225201 Michael Jul 2012 B2
8229902 Vishniac et al. Jul 2012 B2
8229947 Fujinaga Jul 2012 B2
8230333 Decherd et al. Jul 2012 B2
8271461 Pike et al. Sep 2012 B2
8280880 Aymeloglu et al. Oct 2012 B1
8285725 Bayliss Oct 2012 B2
8285860 McGuire Oct 2012 B2
8290926 Ozzie et al. Oct 2012 B2
8290942 Jones et al. Oct 2012 B2
8301464 Cave et al. Oct 2012 B1
8301904 Gryaznov Oct 2012 B1
8312367 Foster Nov 2012 B2
8312546 Alme Nov 2012 B2
8352174 Milstein et al. Jan 2013 B2
8352881 Champion et al. Jan 2013 B2
8368695 Howell et al. Feb 2013 B2
8397171 Klassen et al. Mar 2013 B2
8412707 Mianji Apr 2013 B1
8417409 Bast et al. Apr 2013 B2
8417715 Bruckhaus et al. Apr 2013 B1
8429194 Aymeloglu et al. Apr 2013 B2
8433702 Carrino et al. Apr 2013 B1
8447722 Ahuja et al. May 2013 B1
8452790 Mianji May 2013 B1
8463036 Ramesh et al. Jun 2013 B1
8489331 Kopf et al. Jul 2013 B2
8489641 Seefeld et al. Jul 2013 B1
8494984 Hwang et al. Jul 2013 B2
8499287 Shafi et al. Jul 2013 B2
8504542 Chang et al. Aug 2013 B2
8510743 Hackborn et al. Aug 2013 B2
8514082 Cova et al. Aug 2013 B2
8515207 Chau Aug 2013 B2
8554579 Tribble et al. Oct 2013 B2
8554653 Falkenborg et al. Oct 2013 B2
8554709 Goodson et al. Oct 2013 B2
8560494 Downing et al. Oct 2013 B1
8577911 Stepinski et al. Nov 2013 B1
8589273 Creeden et al. Nov 2013 B2
8595234 Siripurapu et al. Nov 2013 B2
8620641 Farnsworth et al. Dec 2013 B2
8639552 Chen et al. Jan 2014 B1
8646080 Williamson et al. Feb 2014 B2
8639757 Adams et al. Mar 2014 B1
8676857 Adams et al. Mar 2014 B1
8688069 Cazanas et al. Apr 2014 B1
8689108 Duffield et al. Apr 2014 B1
8713467 Goldenberg et al. Apr 2014 B1
8726379 Stiansen et al. May 2014 B1
8739278 Varghese May 2014 B2
8799799 Cervelli et al. May 2014 B1
8742934 Sarpy et al. Jun 2014 B1
8744890 Bernier Jun 2014 B1
8745516 Mason et al. Jun 2014 B2
8763078 Castellucci et al. Jun 2014 B1
8781169 Jackson et al. Jul 2014 B2
8786605 Curtis et al. Jul 2014 B1
8787939 Papakipos et al. Jul 2014 B2
8788407 Singh et al. Jul 2014 B1
8799867 Peri-Glass et al. Aug 2014 B1
8812960 Sun et al. Aug 2014 B1
8830322 Nerayoff et al. Sep 2014 B2
8832594 Thompson et al. Sep 2014 B1
8868537 Colgrove et al. Oct 2014 B1
8903717 Elliot Dec 2014 B2
8904477 Barton Dec 2014 B2
8909597 Aymeloglu et al. Dec 2014 B2
8917274 Ma et al. Dec 2014 B2
8924429 Fisher et al. Dec 2014 B1
8924872 Bogomolov et al. Dec 2014 B1
8930331 McGrew et al. Jan 2015 B2
8935201 Fisher et al. Jan 2015 B1
8937619 Sharma et al. Jan 2015 B2
8938686 Erenrich et al. Jan 2015 B1
8954410 Chang et al. Feb 2015 B2
9009171 Grossman et al. Apr 2015 B1
9009827 Albertson et al. Apr 2015 B1
9021260 Falk et al. Apr 2015 B1
9021384 Beard et al. Apr 2015 B1
9031981 Potter et al. May 2015 B1
9043696 Meiklejohn et al. May 2015 B1
9043894 Dennison et al. May 2015 B1
9092482 Harris et al. Jul 2015 B2
9105000 White et al. Aug 2015 B1
9116975 Shankar et al. Aug 2015 B2
9123086 Freeland et al. Sep 2015 B1
9208159 Stowe et al. Dec 2015 B2
9230280 Maag et al. Jan 2016 B1
9256657 Evenson Feb 2016 B1
9262529 Colgrove et al. Feb 2016 B2
9275069 Garrod et al. Mar 2016 B1
9280532 Cicerone Mar 2016 B2
9292388 Fisher et al. Mar 2016 B2
9301103 Thompson Mar 2016 B1
9313233 Sprague et al. Apr 2016 B2
9330120 Colgrove et al. May 2016 B2
9348677 Marinelli, III et al. May 2016 B2
9378526 Sampson Jun 2016 B2
9380431 Freeland et al. Jun 2016 B1
9521194 Gabrielson Dec 2016 B1
9619507 Chang et al. Apr 2017 B2
9621767 Sampson Apr 2017 B1
9715526 Harris et al. Jul 2017 B2
9880993 Cicerone Jan 2018 B2
9906623 Sampson Feb 2018 B2
10073902 Kotagiri Sep 2018 B2
10430240 DeArment Oct 2019 B2
20010051949 Carey et al. Dec 2001 A1
20010056522 Satyanarayana Dec 2001 A1
20020033848 Sciammarella et al. Mar 2002 A1
20020065708 Senay et al. May 2002 A1
20020091694 Hrle et al. Jul 2002 A1
20020091707 Keller Jul 2002 A1
20020095658 Shulman Jul 2002 A1
20020116120 Ruiz et al. Aug 2002 A1
20020156798 LaRue et al. Oct 2002 A1
20020174201 Ramer et al. Nov 2002 A1
20020184111 Swanson Dec 2002 A1
20020194119 Wright et al. Dec 2002 A1
20030004770 Miller et al. Jan 2003 A1
20030023620 Trotta Jan 2003 A1
20030028560 Kudrolli et al. Feb 2003 A1
20030039948 Donahue Feb 2003 A1
20030061211 Shultz et al. Mar 2003 A1
20030105759 Bess et al. Jun 2003 A1
20030105833 Daniels Jun 2003 A1
20030115481 Baird et al. Jun 2003 A1
20030120675 Stauber et al. Jun 2003 A1
20030130993 Mendelevitch et al. Jul 2003 A1
20030140106 Raguseo Jul 2003 A1
20030144868 MacIntyre et al. Jul 2003 A1
20030154328 Henderson Aug 2003 A1
20030163352 Surpin et al. Aug 2003 A1
20030212670 Yalamanchi et al. Nov 2003 A1
20030212718 Tester Nov 2003 A1
20030225755 Iwayama et al. Dec 2003 A1
20030229848 Arend et al. Dec 2003 A1
20040032432 Baynger Feb 2004 A1
20040044727 Abdelaziz Mar 2004 A1
20040064256 Barinek et al. Apr 2004 A1
20040083466 Dapp et al. Apr 2004 A1
20040085318 Hassler et al. May 2004 A1
20040088177 Travis et al. May 2004 A1
20040095349 Bito et al. May 2004 A1
20040098731 Demsey et al. May 2004 A1
20040103088 Cragun et al. May 2004 A1
20040111410 Burgoon et al. Jun 2004 A1
20040117345 Bamford et al. Jun 2004 A1
20040117387 Civetta et al. Jun 2004 A1
20040126840 Cheng et al. Jul 2004 A1
20040139212 Mukherjee et al. Jul 2004 A1
20040143602 Ruiz et al. Jul 2004 A1
20040143796 Lerner et al. Jul 2004 A1
20040148301 McKay et al. Jul 2004 A1
20040153418 Hanweck Aug 2004 A1
20040153837 Preston et al. Aug 2004 A1
20040163039 McPherson et al. Aug 2004 A1
20040167912 Tsui Aug 2004 A1
20040193600 Kaasten et al. Sep 2004 A1
20040193608 Gollapudi et al. Sep 2004 A1
20040205524 Richter et al. Oct 2004 A1
20040220923 Nica Nov 2004 A1
20040221223 Yu et al. Nov 2004 A1
20040236746 Lomet Nov 2004 A1
20040254658 Sherriff et al. Dec 2004 A1
20040260702 Cragun et al. Dec 2004 A1
20040267746 Marcjan et al. Dec 2004 A1
20050004911 Goldberg et al. Jan 2005 A1
20050021397 Cui et al. Jan 2005 A1
20050027705 Sadri et al. Feb 2005 A1
20050028094 Allyn Feb 2005 A1
20050039119 Parks et al. Feb 2005 A1
20050065811 Chu et al. Mar 2005 A1
20050080769 Gemmell Apr 2005 A1
20050086207 Heuer et al. Apr 2005 A1
20050091420 Snover et al. Apr 2005 A1
20050097441 Herbach et al. May 2005 A1
20050108231 Findleton et al. May 2005 A1
20050114763 Nonomura et al. May 2005 A1
20050120080 Weinreb et al. Jun 2005 A1
20050125436 Mudunuri et al. Jun 2005 A1
20050125715 Franco et al. Jun 2005 A1
20050131935 O'Leary et al. Jun 2005 A1
20050143096 Boesch Jun 2005 A1
20050162523 Darrell et al. Jul 2005 A1
20050166144 Gross Jul 2005 A1
20050180330 Shapiro Aug 2005 A1
20050182793 Keenan et al. Aug 2005 A1
20050183005 Denoue et al. Aug 2005 A1
20050210409 Jou Sep 2005 A1
20050226473 Ramesh Oct 2005 A1
20050246327 Yeung et al. Nov 2005 A1
20050251786 Citron et al. Nov 2005 A1
20050278286 Djugash et al. Dec 2005 A1
20050283465 Dettinger et al. Dec 2005 A1
20050289524 McGinnes Dec 2005 A1
20060004740 Dettinger et al. Jan 2006 A1
20060026120 Carolan et al. Feb 2006 A1
20060026170 Kreitler et al. Feb 2006 A1
20060036574 Schweigkoffer et al. Feb 2006 A1
20060059139 Robinson Mar 2006 A1
20060070046 Balakrishnan et al. Mar 2006 A1
20060074881 Vembu et al. Apr 2006 A1
20060074967 Shaburov Apr 2006 A1
20060080316 Gilmore et al. Apr 2006 A1
20060080616 Vogel et al. Apr 2006 A1
20060080619 Carlson et al. Apr 2006 A1
20060093222 Saffer et al. May 2006 A1
20060095521 Patinkin May 2006 A1
20060106847 Eckardt et al. May 2006 A1
20060116991 Calderwood Jun 2006 A1
20060129540 Hillis et al. Jun 2006 A1
20060129746 Porter Jun 2006 A1
20060129929 Weber et al. Jun 2006 A1
20060129992 Oberholtzer et al. Jun 2006 A1
20060136360 Gebhart Jun 2006 A1
20060139375 Rasmussen et al. Jun 2006 A1
20060142949 Helt Jun 2006 A1
20060143034 Rothermel Jun 2006 A1
20060149596 Surpin et al. Jul 2006 A1
20060161558 Tamma et al. Jul 2006 A1
20060161568 Dettinger et al. Jul 2006 A1
20060203337 White Sep 2006 A1
20060209085 Wong et al. Sep 2006 A1
20060218206 Bourbonnais et al. Sep 2006 A1
20060218405 Ama et al. Sep 2006 A1
20060218491 Grossman et al. Sep 2006 A1
20060218637 Thomas et al. Sep 2006 A1
20060241856 Cobleigh et al. Oct 2006 A1
20060241974 Chao et al. Oct 2006 A1
20060242040 Rader Oct 2006 A1
20060242630 Koike et al. Oct 2006 A1
20060253502 Raman et al. Nov 2006 A1
20060265397 Bryan et al. Nov 2006 A1
20060271277 Hu et al. Nov 2006 A1
20060271838 Carro Nov 2006 A1
20060271884 Hurst Nov 2006 A1
20060279630 Aggarwal et al. Dec 2006 A1
20060288046 Gupta et al. Dec 2006 A1
20060294301 Zohar Dec 2006 A1
20070005582 Navratil et al. Jan 2007 A1
20070005801 Kumar Jan 2007 A1
20070011150 Frank Jan 2007 A1
20070016363 Huang et al. Jan 2007 A1
20070027851 Kruy et al. Feb 2007 A1
20070038646 Thota Feb 2007 A1
20070038962 Fuchs et al. Feb 2007 A1
20070050328 Li et al. Mar 2007 A1
20070050429 Goldring et al. Mar 2007 A1
20070050702 Chopin et al. Mar 2007 A1
20070057966 Ohno et al. Mar 2007 A1
20070061487 Moore et al. Mar 2007 A1
20070072591 McGary et al. Mar 2007 A1
20070078832 Ott et al. Apr 2007 A1
20070083541 Fraleigh et al. Apr 2007 A1
20070088596 Berkelhamer et al. Apr 2007 A1
20070094248 McVeigh et al. Apr 2007 A1
20070094389 Nussey et al. Apr 2007 A1
20070105597 Hwang May 2007 A1
20070112714 Fairweather May 2007 A1
20070113164 Hansen et al. May 2007 A1
20070118547 Gupta et al. May 2007 A1
20070143253 Kostamaa et al. Jun 2007 A1
20070150369 Zivin Jun 2007 A1
20070150805 Misovski Jun 2007 A1
20070156698 Gebhart Jul 2007 A1
20070168336 Ransil et al. Jul 2007 A1
20070174760 Chamberlain et al. Jul 2007 A1
20070178501 Rabinowitz et al. Aug 2007 A1
20070185850 Walters et al. Aug 2007 A1
20070192265 Chopin et al. Aug 2007 A1
20070192281 Cradick et al. Aug 2007 A1
20070198571 Ferguson et al. Aug 2007 A1
20070208497 Downs et al. Sep 2007 A1
20070208498 Barker et al. Sep 2007 A1
20070208736 Tanigawa et al. Sep 2007 A1
20070220604 Long Sep 2007 A1
20070226218 Chatterjee et al. Sep 2007 A1
20070233709 Abnous Oct 2007 A1
20070233756 D'Souza et al. Oct 2007 A1
20070240062 Christena et al. Oct 2007 A1
20070260582 Liang Nov 2007 A1
20070266336 Nojima et al. Nov 2007 A1
20070271317 Carmel Nov 2007 A1
20070294643 Kyle Dec 2007 A1
20070299697 Friedlander et al. Dec 2007 A1
20070299814 Barsness et al. Dec 2007 A1
20080015970 Brookfield et al. Jan 2008 A1
20080040684 Crump Feb 2008 A1
20080051989 Welsh Feb 2008 A1
20080052142 Bailey et al. Feb 2008 A1
20080077597 Butler Mar 2008 A1
20080077642 Carbone et al. Mar 2008 A1
20080082486 Lermant et al. Apr 2008 A1
20080104019 Nath May 2008 A1
20080104060 Abhyankar et al. May 2008 A1
20080104149 Vishniac et al. May 2008 A1
20080126344 Hoffman et al. May 2008 A1
20080126951 Sood et al. May 2008 A1
20080155440 Trevor et al. Jun 2008 A1
20080195417 Surpin et al. Aug 2008 A1
20080195608 Clover Aug 2008 A1
20080195672 Hamel et al. Aug 2008 A1
20080196016 Todd Aug 2008 A1
20080201313 Dettinger et al. Aug 2008 A1
20080201339 McGrew Aug 2008 A1
20080215543 Huang et al. Sep 2008 A1
20080215546 Baum et al. Sep 2008 A1
20080222295 Robinson et al. Sep 2008 A1
20080255973 El Wade et al. Oct 2008 A1
20080263468 Cappione et al. Oct 2008 A1
20080267107 Rosenberg Oct 2008 A1
20080267386 Cooper Oct 2008 A1
20080270316 Guidotti et al. Oct 2008 A1
20080276167 Michael Nov 2008 A1
20080278311 Grange et al. Nov 2008 A1
20080288306 Maclntyre et al. Nov 2008 A1
20080301378 Carrie Dec 2008 A1
20080301559 Martinsen et al. Dec 2008 A1
20080301643 Appleton et al. Dec 2008 A1
20080307139 Thomas Dec 2008 A1
20080313281 Scheidl et al. Dec 2008 A1
20090002492 Velipasalar et al. Jan 2009 A1
20090006150 Prigge et al. Jan 2009 A1
20090007056 Prigge et al. Jan 2009 A1
20090027418 Maru et al. Jan 2009 A1
20090030915 Winter et al. Jan 2009 A1
20090031247 Walter et al. Jan 2009 A1
20090037366 Shankar et al. Feb 2009 A1
20090037417 Shankar et al. Feb 2009 A1
20090037912 Stoitsev et al. Feb 2009 A1
20090043762 Shiverick et al. Feb 2009 A1
20090055251 Shah et al. Feb 2009 A1
20090055487 Moraes et al. Feb 2009 A1
20090083275 Jacob et al. Mar 2009 A1
20090088964 Schaaf et al. Apr 2009 A1
20090094217 Dettinger et al. Apr 2009 A1
20090106242 McGrew Apr 2009 A1
20090106308 Killian et al. Apr 2009 A1
20090119309 Gibson et al. May 2009 A1
20090125369 Kloostra et al. May 2009 A1
20090125459 Norton et al. May 2009 A1
20090132317 Dholakia May 2009 A1
20090132710 Pelley May 2009 A1
20090132921 Hwangbo et al. May 2009 A1
20090132953 Reed et al. May 2009 A1
20090143052 Bates et al. Jun 2009 A1
20090144262 White et al. Jun 2009 A1
20090144274 Fraleigh et al. Jun 2009 A1
20090144747 Baker Jun 2009 A1
20090161147 Klave Jun 2009 A1
20090164387 Armstrong et al. Jun 2009 A1
20090164934 Bhattiprolu et al. Jun 2009 A1
20090171939 Athsani et al. Jul 2009 A1
20090172511 Decherd et al. Jul 2009 A1
20090172669 Bobak et al. Jul 2009 A1
20090172674 Bobak et al. Jul 2009 A1
20090177962 Gusmorino et al. Jul 2009 A1
20090179892 Tsuda et al. Jul 2009 A1
20090187464 Bai et al. Jul 2009 A1
20090187556 Ross et al. Jul 2009 A1
20090193012 Williams Jul 2009 A1
20090198899 Revanuru Aug 2009 A1
20090199047 Vaitheeswaran et al. Aug 2009 A1
20090204570 Wong Aug 2009 A1
20090222400 Kupershmidt et al. Sep 2009 A1
20090222759 Drieschner Sep 2009 A1
20090222760 Halverson et al. Sep 2009 A1
20090222808 Faus Sep 2009 A1
20090234720 George et al. Sep 2009 A1
20090240664 Dinker et al. Sep 2009 A1
20090248721 Burton et al. Oct 2009 A1
20090249244 Robinson et al. Oct 2009 A1
20090254971 Herz Oct 2009 A1
20090271435 Yako et al. Oct 2009 A1
20090281839 Lynn et al. Nov 2009 A1
20090282068 Shockro et al. Nov 2009 A1
20090287470 Farnsworth et al. Nov 2009 A1
20090292626 Oxford Nov 2009 A1
20090299830 West et al. Dec 2009 A1
20090313223 Rantanen Dec 2009 A1
20090313311 Hoffmann et al. Dec 2009 A1
20090319418 Herz Dec 2009 A1
20100011098 Sanborn Jan 2010 A1
20100011282 Dollard et al. Jan 2010 A1
20100036831 Vemuri et al. Feb 2010 A1
20100042922 Bradateanu et al. Feb 2010 A1
20100049959 Arcese Feb 2010 A1
20100057716 Stefik et al. Mar 2010 A1
20100058212 Belitz et al. Mar 2010 A1
20100070464 Aymeloglu et al. Mar 2010 A1
20100070489 Aymeloglu et al. Mar 2010 A1
20100070523 Delgo et al. Mar 2010 A1
20100070842 Aymeloglu et al. Mar 2010 A1
20100070845 Facemire et al. Mar 2010 A1
20100070897 Aymeloglu et al. Mar 2010 A1
20100073315 Lee et al. Mar 2010 A1
20100076939 Iwaki et al. Mar 2010 A1
20100082541 Kottomtharayil Apr 2010 A1
20100082655 Silberstein et al. Apr 2010 A1
20100082671 Li et al. Apr 2010 A1
20100100963 Mahaffey Apr 2010 A1
20100103124 Kruzeniski et al. Apr 2010 A1
20100114817 Broeder et al. May 2010 A1
20100114831 Gilbert et al. May 2010 A1
20100114841 Holenstein et al. May 2010 A1
20100114887 Conway et al. May 2010 A1
20100121817 Meyer et al. May 2010 A1
20100122152 Chamberlain et al. May 2010 A1
20100131457 Heimendinger May 2010 A1
20100138842 Balko et al. Jun 2010 A1
20100145902 Boyan et al. Jun 2010 A1
20100145909 Ngo Jun 2010 A1
20100153397 Barabas et al. Jun 2010 A1
20100161565 Lee et al. Jun 2010 A1
20100161646 Ceballos et al. Jun 2010 A1
20100161688 Kesselman et al. Jun 2010 A1
20100162176 Dunton Jun 2010 A1
20100162371 Geil Jun 2010 A1
20100169376 Chu Jul 2010 A1
20100169405 Zhang Jul 2010 A1
20100173619 Hua et al. Jul 2010 A1
20100186020 Maddhirala Jul 2010 A1
20100191563 Schlaifer et al. Jul 2010 A1
20100191705 Barabas et al. Jul 2010 A1
20100191884 Holenstein et al. Jul 2010 A1
20100198684 Eraker et al. Aug 2010 A1
20100199167 Uematsu et al. Aug 2010 A1
20100199225 Coleman et al. Aug 2010 A1
20100205662 Ibrahim et al. Aug 2010 A1
20100211550 Daniello et al. Aug 2010 A1
20100211618 Anderson et al. Aug 2010 A1
20100228812 Uomini Sep 2010 A1
20100235525 McGuire Sep 2010 A1
20100235606 Oreland et al. Sep 2010 A1
20100250412 Wagner Sep 2010 A1
20100257404 Singh et al. Oct 2010 A1
20100280857 Liu et al. Nov 2010 A1
20100281458 Paladino et al. Nov 2010 A1
20100283787 Hamedi et al. Nov 2010 A1
20100293174 Bennett et al. Nov 2010 A1
20100306713 Geisner et al. Dec 2010 A1
20100313119 Baldwin et al. Dec 2010 A1
20100318503 Romine et al. Dec 2010 A1
20100318838 Katano et al. Dec 2010 A1
20100318858 Essawi et al. Dec 2010 A1
20100318924 Frankel et al. Dec 2010 A1
20100321399 Ellren et al. Dec 2010 A1
20100325526 Ellis et al. Dec 2010 A1
20100325581 Finkelstein et al. Dec 2010 A1
20100330801 Rouh Dec 2010 A1
20100332448 Holenstein et al. Dec 2010 A1
20110029498 Ferguson et al. Feb 2011 A1
20110029526 Knight et al. Feb 2011 A1
20110035396 Merz et al. Feb 2011 A1
20110041084 Karam Feb 2011 A1
20110047159 Baid et al. Feb 2011 A1
20110047540 Williams et al. Feb 2011 A1
20110060753 Shaked et al. Mar 2011 A1
20110061013 Bilicki et al. Mar 2011 A1
20110066497 Gopinath et al. Mar 2011 A1
20110066933 Ludwig Mar 2011 A1
20110074811 Hanson et al. Mar 2011 A1
20110078055 Faribault et al. Mar 2011 A1
20110078173 Seligmann et al. Mar 2011 A1
20110093327 Fordyce, III et al. Apr 2011 A1
20110093440 Asakura et al. Apr 2011 A1
20110093490 Schindlauer et al. Apr 2011 A1
20110111786 Rao May 2011 A1
20110117878 Barash et al. May 2011 A1
20110119100 Ruhl et al. May 2011 A1
20110131547 Elaasar Jun 2011 A1
20110145401 Westlake Jun 2011 A1
20110153384 Home et al. Jun 2011 A1
20110153592 DeMarcken Jun 2011 A1
20110158248 Vorunganti Jun 2011 A1
20110161096 Buehler et al. Jun 2011 A1
20110161132 Goel et al. Jun 2011 A1
20110167105 Ramakrishnan et al. Jul 2011 A1
20110170799 Carrino et al. Jul 2011 A1
20110173032 Payne et al. Jul 2011 A1
20110173619 Fish Jul 2011 A1
20110184813 Barne et al. Jul 2011 A1
20110185316 Reid et al. Jul 2011 A1
20110185401 Bak et al. Jul 2011 A1
20110208724 Jones et al. Aug 2011 A1
20110208822 Rathod Aug 2011 A1
20110213655 Henkin Sep 2011 A1
20110218934 Elser Sep 2011 A1
20110219450 McDougal et al. Sep 2011 A1
20110225198 Edwards et al. Sep 2011 A1
20110238553 Raj et al. Sep 2011 A1
20110251951 Kolkowitz Oct 2011 A1
20110252282 Meek et al. Oct 2011 A1
20110258158 Resende et al. Oct 2011 A1
20110258216 Supakkul et al. Oct 2011 A1
20110258242 Eidson et al. Oct 2011 A1
20110270812 Ruby Nov 2011 A1
20110270871 He et al. Nov 2011 A1
20110289397 Eastmond et al. Nov 2011 A1
20110289407 Naik et al. Nov 2011 A1
20110289420 Morioka et al. Nov 2011 A1
20110291851 Whisenant Dec 2011 A1
20110310005 Chen et al. Dec 2011 A1
20110314007 Dassa et al. Dec 2011 A1
20110321008 Jhoney et al. Dec 2011 A1
20120010812 Thompson Jan 2012 A1
20120011207 Morris Jan 2012 A1
20120013684 Robertson et al. Jan 2012 A1
20120014560 Obrador et al. Jan 2012 A1
20120015673 Klassen et al. Jan 2012 A1
20120019559 Siler et al. Jan 2012 A1
20120036013 Neuhaus et al. Feb 2012 A1
20120036434 Oberstein Feb 2012 A1
20120050293 Carlhian et al. Mar 2012 A1
20120066296 Appleton et al. Mar 2012 A1
20120072825 Sherkin et al. Mar 2012 A1
20120078595 Balandin et al. Mar 2012 A1
20120079363 Folting et al. Mar 2012 A1
20120084118 Bai et al. Apr 2012 A1
20120101952 Raleigh et al. Apr 2012 A1
20120102022 Miranker et al. Apr 2012 A1
20120106801 Jackson May 2012 A1
20120117082 Koperda et al. May 2012 A1
20120123989 Yu et al. May 2012 A1
20120124179 Cappio et al. May 2012 A1
20120131512 Takeuchi et al. May 2012 A1
20120136804 Lucia May 2012 A1
20120137235 Ts et al. May 2012 A1
20120144335 Abeln et al. Jun 2012 A1
20120150791 Willson Jun 2012 A1
20120159307 Chung et al. Jun 2012 A1
20120159362 Brown et al. Jun 2012 A1
20120159399 Bastide et al. Jun 2012 A1
20120159449 Arnold et al. Jun 2012 A1
20120170847 Tsukidate Jul 2012 A1
20120173381 Smith Jul 2012 A1
20120173985 Peppel Jul 2012 A1
20120174057 Narendra et al. Jul 2012 A1
20120180002 Campbell et al. Jul 2012 A1
20120188252 Law Jul 2012 A1
20120196557 Reich et al. Aug 2012 A1
20120196558 Reich et al. Aug 2012 A1
20120203708 Psota et al. Aug 2012 A1
20120208636 Feige Aug 2012 A1
20120221511 Gibson et al. Aug 2012 A1
20120221553 Wittmer et al. Aug 2012 A1
20120221580 Barney Aug 2012 A1
20120245976 Kumar et al. Sep 2012 A1
20120246148 Dror Sep 2012 A1
20120254129 Wheeler et al. Oct 2012 A1
20120277914 Crow et al. Nov 2012 A1
20120284345 Costenaro et al. Nov 2012 A1
20120284719 Phan et al. Nov 2012 A1
20120290506 Muramatsu et al. Nov 2012 A1
20120290879 Shibuya et al. Nov 2012 A1
20120296907 Long et al. Nov 2012 A1
20120311684 Paulsen et al. Dec 2012 A1
20120316845 Grey Dec 2012 A1
20120323888 Osann, Jr. Dec 2012 A1
20120330908 Stowe et al. Dec 2012 A1
20120330973 Ghuneim et al. Dec 2012 A1
20130005362 Borghei Jan 2013 A1
20130006426 Healey et al. Jan 2013 A1
20130006725 Simanek et al. Jan 2013 A1
20130006916 McBride et al. Jan 2013 A1
20130013642 Klein et al. Jan 2013 A1
20130018796 Kolhatkar et al. Jan 2013 A1
20130024268 Manickavelu Jan 2013 A1
20130024731 Shochat et al. Jan 2013 A1
20130036346 Cicerone Feb 2013 A1
20130046635 Grigg et al. Feb 2013 A1
20130046842 Muntz et al. Feb 2013 A1
20130054551 Lange Feb 2013 A1
20130060742 Chang et al. Mar 2013 A1
20130060786 Serrano et al. Mar 2013 A1
20130061169 Pearcy et al. Mar 2013 A1
20130070917 Nuestro Mar 2013 A1
20130073377 Heath Mar 2013 A1
20130073454 Busch Mar 2013 A1
20130078943 Biage et al. Mar 2013 A1
20130086482 Parsons Apr 2013 A1
20130091084 Lee Apr 2013 A1
20130096968 Van Pelt et al. Apr 2013 A1
20130097130 Bingol et al. Apr 2013 A1
20130097482 Marantz et al. Apr 2013 A1
20130110822 Ikeda et al. May 2013 A1
20130110877 Bonham et al. May 2013 A1
20130111320 Campbell et al. May 2013 A1
20130117651 Waldman et al. May 2013 A1
20130101159 Rosen Jun 2013 A1
20130143597 Mitsuya et al. Jun 2013 A1
20130150004 Rosen Jun 2013 A1
20130151148 Parundekar et al. Jun 2013 A1
20130151388 Falkenborg et al. Jun 2013 A1
20130157234 Gulli et al. Jun 2013 A1
20130165069 Nitta et al. Jun 2013 A1
20130166550 Buchmann et al. Jun 2013 A1
20130176321 Mitchell et al. Jul 2013 A1
20130179420 Park et al. Jul 2013 A1
20130198624 Aymeloglu et al. Aug 2013 A1
20130224696 Wolfe et al. Aug 2013 A1
20130225212 Khan Aug 2013 A1
20130226318 Procyk Aug 2013 A1
20130226944 Baid et al. Aug 2013 A1
20130226953 Markovich et al. Aug 2013 A1
20130231862 Delling et al. Sep 2013 A1
20130232045 Tai Sep 2013 A1
20130232220 Sampson Sep 2013 A1
20130238616 Rose et al. Sep 2013 A1
20130246170 Gross et al. Sep 2013 A1
20130251233 Yang et al. Sep 2013 A1
20130262527 Hunter et al. Oct 2013 A1
20130263019 Castellanos et al. Oct 2013 A1
20130267207 Hao et al. Oct 2013 A1
20130268520 Fisher et al. Oct 2013 A1
20130279757 Kephart Oct 2013 A1
20130282696 John et al. Oct 2013 A1
20130283097 Chen Oct 2013 A1
20130286601 Shin et al. Oct 2013 A1
20130290011 Lynn et al. Oct 2013 A1
20130290825 Arndt et al. Oct 2013 A1
20130297619 Chandarsekaran et al. Nov 2013 A1
20130304770 Boero et al. Nov 2013 A1
20130311375 Priebatsch Nov 2013 A1
20130318060 Chang et al. Nov 2013 A1
20130326537 Edelstein Dec 2013 A1
20140012886 Downing et al. Jan 2014 A1
20140019936 Cohanoff Jan 2014 A1
20140032506 Hoey et al. Jan 2014 A1
20140033010 Richardt et al. Jan 2014 A1
20140040371 Gurevich et al. Feb 2014 A1
20140047319 Eberlein Feb 2014 A1
20140047357 Alfaro et al. Feb 2014 A1
20140059038 McPherson et al. Feb 2014 A1
20140067611 Adachi et al. Mar 2014 A1
20140068487 Steiger et al. Mar 2014 A1
20140074855 Zhao et al. Mar 2014 A1
20140074888 Potter et al. Mar 2014 A1
20140079340 Kawano Mar 2014 A1
20140081685 Thacker et al. Mar 2014 A1
20140093174 Zhang et al. Apr 2014 A1
20140095273 Tang et al. Apr 2014 A1
20140095509 Patton Apr 2014 A1
20140095540 Hsiao et al. Apr 2014 A1
20140108068 Williams Apr 2014 A1
20140108074 Miller et al. Apr 2014 A1
20140108380 Gotz et al. Apr 2014 A1
20140108985 Scott et al. Apr 2014 A1
20140115589 Marinelli, III et al. Apr 2014 A1
20140115610 Marinelli, III et al. Apr 2014 A1
20140129261 Bothwell et al. May 2014 A1
20140149272 Hirani et al. May 2014 A1
20140149436 Bahrami et al. May 2014 A1
20140156527 Grigg et al. Jun 2014 A1
20140157172 Peery et al. Jun 2014 A1
20140164502 Khodorenko et al. Jun 2014 A1
20140176606 Narayan et al. Jun 2014 A1
20140181833 Bird et al. Jun 2014 A1
20140189536 Lange et al. Jul 2014 A1
20140195515 Baker et al. Jul 2014 A1
20140195887 Ellis et al. Jul 2014 A1
20140214579 Shen et al. Jul 2014 A1
20140222521 Chait Aug 2014 A1
20140244388 Manouchehri et al. Aug 2014 A1
20140267294 Ma Sep 2014 A1
20140267295 Sharma Sep 2014 A1
20140279824 Tamayo Sep 2014 A1
20140310266 Greenfield Oct 2014 A1
20140316911 Gross Oct 2014 A1
20140324876 Konik et al. Oct 2014 A1
20140333651 Cervelli et al. Nov 2014 A1
20140337772 Cervelli et al. Nov 2014 A1
20140344230 Krause et al. Nov 2014 A1
20140344231 Stowe et al. Nov 2014 A1
20150005014 Huang et al. Jan 2015 A1
20150019394 Unser et al. Jan 2015 A1
20150039886 Kahol et al. Feb 2015 A1
20150046870 Goldenberg et al. Feb 2015 A1
20150089353 Folkening Mar 2015 A1
20150089424 Duffield et al. Mar 2015 A1
20150100559 Nassar Apr 2015 A1
20150100897 Sun et al. Apr 2015 A1
20150100907 Erenrich et al. Apr 2015 A1
20150106347 McGrew et al. Apr 2015 A1
20150112641 Faraj Apr 2015 A1
20150112956 Chang et al. Apr 2015 A1
20150120176 Curtis et al. Apr 2015 A1
20150134666 Gattiker et al. May 2015 A1
20150142766 Jain et al. May 2015 A1
20150169709 Kara et al. Jun 2015 A1
20150169726 Kara et al. Jun 2015 A1
20150170077 Kara et al. Jun 2015 A1
20150172412 Escriva Jun 2015 A1
20150178825 Huerta Jun 2015 A1
20150178877 Bogomolov et al. Jun 2015 A1
20150186821 Wang et al. Jul 2015 A1
20150187036 Wang et al. Jul 2015 A1
20150212663 Papale et al. Jul 2015 A1
20150213043 Ishii et al. Jul 2015 A1
20150213134 Nie et al. Jul 2015 A1
20150227295 Meiklejohn et al. Aug 2015 A1
20150242397 Zhuang Aug 2015 A1
20150261817 Harris et al. Sep 2015 A1
20150269030 Fisher et al. Sep 2015 A1
20150331919 Freeland et al. Nov 2015 A1
20150341467 Lim et al. Nov 2015 A1
20160026923 Erenrich et al. Jan 2016 A1
20160034545 Shankar et al. Feb 2016 A1
20160062555 Ward et al. Mar 2016 A1
20160094620 Darling Mar 2016 A1
20160147730 Cicerone May 2016 A1
20160218963 Nauck Jul 2016 A1
20170075711 Berrange Mar 2017 A1
20170171348 Sampson Jun 2017 A1
20170285982 De Arment Oct 2017 A1
20180343317 Lakunishok Nov 2018 A1
20190354405 DeArment Nov 2019 A1
Foreign Referenced Citations (63)
Number Date Country
2014206155 Dec 2015 AU
103324724 Sep 2013 CN
2807899 Jul 2017 CN
102014103482 Sep 2014 DE
102014215621 Feb 2015 DE
0652513 May 1995 EP
1647908 Apr 2006 EP
1672527 Jun 2006 EP
1926074 May 2008 EP
2551799 Jan 2013 EP
2555126 Feb 2013 EP
2560134 Feb 2013 EP
2 634 745 Sep 2013 EP
2743839 Jun 2014 EP
2778977 Sep 2014 EP
2778986 Sep 2014 EP
2835745 Feb 2015 EP
2835770 Feb 2015 EP
2838039 Feb 2015 EP
2846241 Mar 2015 EP
2851852 Mar 2015 EP
2858014 Apr 2015 EP
2858018 Apr 2015 EP
2863326 Apr 2015 EP
2863346 Apr 2015 EP
2869211 May 2015 EP
2876587 May 2015 EP
2884439 Jun 2015 EP
2884440 Jun 2015 EP
2891992 Jul 2015 EP
2911078 Aug 2015 EP
2911100 Aug 2015 EP
2916276 Sep 2015 EP
2921975 Sep 2015 EP
2993595 Mar 2016 EP
2634745 May 2017 EP
2366498 Mar 2002 GB
2508503 Jan 2015 GB
2516155 Jan 2015 GB
2508293 Apr 2015 GB
2518745 Apr 2015 GB
1194178 Sep 2015 HK
1188321 Apr 2018 HK
2012778 Nov 2014 NL
2013306 Feb 2015 NL
624557 Dec 2014 NZ
622485 Mar 2015 NZ
616212 May 2015 NZ
616299 Jul 2015 NZ
WO 2000009529 Feb 2000 WO
WO 2000034895 Jun 2000 WO
WO 2002065353 Aug 2002 WO
WO 2004038548 May 2004 WO
WO 2005104736 Nov 2005 WO
WO 2008064207 May 2008 WO
WO 2009061501 May 2009 WO
WO 2010000014 Jan 2010 WO
WO 2010030913 Mar 2010 WO
WO 2010030917 Mar 2010 WO
WO 2012025915 Mar 2012 WO
WO 2013010157 Jan 2013 WO
WO 2013030595 Mar 2013 WO
WO 20130102892 Jul 2013 WO
Non-Patent Literature Citations (379)
Entry
The Apache Cassandra Project, dated 2009, 3 pages.
Mentzas et al. “An Architecture for Intelligent Assistance in the Forecasting Process,” Proceedings of the Twenty-Eighth Hawaii International Conference on System Sciences, Jan. 3-6, 1995, vol. 3, pp. 167-176.
Official Communication for European Patent Application No. 151832721.8 dated Nov. 23, 2015, 8 pages.
Official Communication for New Zealand Patent Application No. 622513 dated Apr. 3, 2014.
Official Communication for New Zealand Patent Application No. 622517 dated Apr. 3, 2014.
Official Communication for New Zealand Patent Application No. 624557 dated May 14, 2014.
Official Communication for European Patent Application No. 14158861.6 dated Jun. 16, 2014.
Official Communication for European Patent Application No. 14159464.8 dated Jul. 31, 2014.
Official Communication for New Zealand Patent Application No. 627962 dated Aug. 5, 2014.
Official Communication for New Zealand Patent Application No. 628263 dated Aug. 12, 2014.
Official Communication for Great Britain Patent Application No. 1404457.2 dated Aug. 14, 2014.
Official Communication in New Zealand Patent Application No. 628495 dated Aug. 19, 2014.
Official Communication for New Zealand Patent Application No. 628161 dated Aug. 25, 2014.
Official Communication for New Zealand Patent Application No. 628585 dated Aug. 26, 2014.
Official Communication for New Zealand Patent Application No. 628840 dated Aug. 28, 2014.
Official Communication for European Patent Application No. 14159464.8 dated Sep. 22, 2014.
Official Communication for Great Britain Patent Application No. 1408025.3 dated Nov. 6, 2014.
Official Communication for Great Britain Patent Application No. 1411984.6 dated Dec. 22, 2014.
Official Communication for European Patent Application No. 14180281.9 dated Jan. 26, 2015.
Official Communication for Great Britain Patent Application No. 1413935.6 dated Jan. 27, 2015.
Official Communication for European Patent Application No. 14180142.3 dated Feb. 6, 2015.
Official Communication for European Patent Application No. 14187996.5 dated Feb. 12, 2015.
Official Communication for European Patent Application No. 14186225.0 dated Feb. 13, 2015.
Official Communication for Australian Patent Application No. 2014201511 dated Feb. 27, 2015.
Official Communication for European Patent Application No. 14189347.9 dated Mar. 4, 2015.
Official Communication for Australian Patent Application No. 2014202442 dated Mar. 19, 2015.
Official Communication for European Patent Application No. 14180321.3 dated Apr. 17, 2015.
Official Communication for Netherlands Patent Application No. 2013306 dated Apr. 24, 2015.
Official Communication for European Patent Application No. 14197879.1 dated Apr. 28, 2015.
Official Communication for European Patent Application No. 14197895.7 dated Apr. 28, 2015.
Official Communication for Australian Patent Application No. 2014213553 dated May 7, 2015.
Official Communication for European Patent Application No. 14189802.3 dated May 11, 2015.
Official Communication for European Patent Application No. 14191540.5 dated May 27, 2015.
Official Communication for Australian Patent Application No. 2014210604 dated Jun. 5, 2015.
Official Communication for Australian Patent Application No. 2014250678 dated Jun. 17, 2015.
Official Communication for European Patent Application No. 14180432.8 dated Jun. 23, 2015.
Palmas et al., “An Edge-Bunding Layout for Interactive Parallel Coordinates” 2014 IEEE Pacific Visualization Symposium, pp. 57-64.
Map of San Jose, CA. Retrieved Oct. 2, 2013 from http://maps.bing.com.
Griffith, Daniel A., “A Generalized Huff Model,” Geographical Analysis, Apr. 1982, vol. 14, No. 2, pp. 135-144.
Celik, Tantek, “CSS Basic User Interface Module Level 3 (CSS3 UI),” Section 8 Resizing and Overflow, Jan. 17, 2012, retrieved from internet http://www.w3.org/TR/2012/WD-c553-ui-20120117/#resizing-amp-overflow retrieved on May 18, 2015.
Ananiev et al., “The New Modality API,” http://web.archive.org/web/20061211011958/http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/modality/ Jan. 21, 2006, pp. 8.
GIS-NET 3 Public—Department of Regional Planning. Planning & Zoning Information for UNINCORPORATED LA County. Retrieved Oct. 2, 2013 from http://gis.planning.lacounty.gov/GIS-NET3_Public/Viewer.html.
Definition “Overlay” downloaded Jan. 22, 2015, 1 page.
Manno et al., “Introducing Collaboration in Single-user Applications through the Centralized Control Architecture,” 2010, pp. 10.
Keylines.com, “KeyLines Datasheet,” Mar. 2014, <http://keylines.com/wp-content/uploads/2014/03/KeyLines-datasheet.pdf> downloaded May 12, 2014 in 2 pages.
Hibbert et al., “Prediction of Shopping Behavior Using a Huff Model Within a GIS Framework,” Healthy Eating in Context, Mar. 18, 2011, pp. 16.
Microsoft Office—Visio, “Add and glue connectors with the Connector tool,” <http://office.microsoft.com/en-us/visio-help/add-and-glue-connectors-with-the-connector-tool-HA010048532.aspx?CTT=1> printed Aug. 4, 2011 in 1 page.
Hansen et al. “Analyzing Social Media Networks with NodeXL: Insights from a Connected World”, Chapter 4, pp. 53-67 and Chapter 10, pp. 143-164, published Sep. 2010.
Thompson, Mick, “Getting Started with GEO,” Getting Started with GEO, Jul. 26, 2011.
Rouse, Margaret, “OLAP Cube,” <http://searchdatamanagement.techtarget.com/definition/OLAP-cube>, Apr. 28, 2012, pp. 16.
“Refresh CSS Ellipsis When Resizing Container—Stack Overflow,” Jul. 31, 2013, retrieved from internet http://stackoverflow.com/questions/17964681/refresh-css-ellipsis-when-resizing-container, retrieved on May 18, 2015.
“Potential Money Laundering Warning Signs,” snapshot taken 2003, https://web.archive.org/web/20030816090055/http:/finsolinc.com/ANTI-MONEY%20LAUNDERING%20TRAINING%20GUIDES.pdf.
Olanoff, Drew, “Deep Dive with the New Google Maps for Desktop with Google Earth Integration, It's More than Just a Utility,” May 15, 2013, pp. 1-6, retrieved from the internet: http://web.archive.org/web/20130515230641/http://techcrunch.com/2013/05/15/deep-dive-with-the-new-google-maps-for-desktop-with-google-earth-integration-its-more-than-just-a-utility/.
Umagandhi et al., “Search Query Recommendations Using Hybrid User Profile with Query Logs,” International Journal of Computer Applications, vol. 80, No. 10, Oct. 1, 2013, pp. 7-18.
Bugzilla@Mozilla, “Bug 18726—[feature] Long-click means of invoking contextual menus not supported,” http://bugzilla.mozilla.org/show_bug.cgi?id=18726 printed Jun. 13, 2013 in 11 pages.
Dramowicz, Ela, “Retail Trade Area Analysis Using the Huff Model,” Directions Magazine, Jul. 2, 2005 in 10 pages, http://www.directionsmag.com/articles/retail-trade-area-analysis-using-the-huff-model/123411.
Goswami, Gautam, “Quite Writly Said!,” One Brick at a Time, Aug. 21, 2005, pp. 7.
Conner, Nancy, “Google Apps: The Missing Manual,” May 1, 2008, pp. 15.
A Word About Banks and the Laundering of Drug Money, Aug. 18, 2012, http://www.golemxiv.co.uk/2012/08/a-word-about-banks-and-the-laundering-of-drug-money/.
Boyce, Jim, “Microsoft Outlook 2010 Inside Out,” Aug. 1, 2010, retrieved from the internet https://capdtron.files.wordpress.com/2013/01/outlook-2010-inside_out.pdf.
Huff et al., “Calibrating the Huff Model Using ArcGIS Business Analyst,” ESRI, Sep. 2008, pp. 33.
Acklen, Laura, “Absolute Beginner's Guide to Microsoft Word 2003,” Dec. 24, 2003, pp. 15-18, 34-41, 308-316.
Huff, David L., “Parameter Estimation in the Huff Model,” ESRI, ArcUser, Oct.-Dec. 2003, pp. 34-36.
Hardesty, “Privacy Challenges: Analysis: It's Surprisingly Easy to Identify Individuals from Credit-Card Metadata,” MIT News on Campus and Around the World, MIT News Office, Jan. 29, 2015, 3 pages.
Kokossi et al., “D7-Dynamic Ontoloty Management System (Design),” Information Societies Technology Programme, Jan. 10, 2002, pp. 1-27.
Map of San Jose, CA. Retrieved Oct. 2, 2013 from http://maps.google.com.
Amnet, “5 Great Tools for Visualizing Your Twitter Followers,” posted Aug. 4, 2010, http://www.amnetblog.com/component/content/article/115-5-grate-tools-for-visualizing-your-twitter-followers.html.
Manske, “File Saving Dialogs,” <http://www.mozilla.org/editor/ui_specs/FileSaveDialogs.html>, Jan. 20, 1999, pp. 7.
Huang et al., “Systematic and Integrative Analysis of Large Gene Lists Using DAVID Bioinformatics Resources,” Nature Protocols, 4.1, 2008, 44-57.
Chen et al., “Bringing Order to the Web: Automatically Categorizing Search Results,” CHI 2000, Proceedings of the SIGCHI conference on Human Factors in Computing Systems, Apr. 1-6, 2000, The Hague, The Netherlands, pp. 145-152.
Keylines.com, “An Introduction to KeyLines and Network Visualization,” Mar. 2014, <http://keylines.com/wp-content/uploads/2014/03/KeyLines-White-Paper.pdf> downloaded May 12, 2014 in 8 pages.
Li et al., “Interactive Multimodal Visual Search on Mobile Device,” IEEE Transactions on Multimedia, vol. 15, No. 3, Apr. 1, 2013, pp. 594-607.
Chung, Chin-Wan, “Dataplex: An Access to Heterogeneous Distributed Databases,” Communications of the ACM, Association for Computing Machinery, Inc., vol. 33, No. 1, Jan. 1, 1990, pp. 70-80.
Keylines.com, “Visualizing Threats: Improved Cyber Security Through Network Visualization,” Apr. 2014, <http://keylines.com/wp-content/uploads/2014/04/Visualizing-Threats1.pdf> downloaded May 12, 2014 in 10 pages.
Liu, Tianshun, “Combining GIS and the Huff Model to Analyze Suitable Locations for a New Asian Supermarket in the Minneapolis and St. Paul, Minnesota USA,” Papers in Resource Analysis, 2012, vol. 14, pp. 8.
Hogue et al., “Thresher: Automating the Unwrapping of Semantic Content from the World Wide Web,” 14th International Conference on World Wide Web, WWW 2005: Chiba, Japan, May 10-14, 2005, pp. 86-95.
“A First Look: Predicting Market Demand for Food Retail using a Huff Analysis,” TRF Policy Solutions, Jul. 2012, pp. 30.
Definition “Identify” downloaded Jan. 22, 2015, 1 page.
Microsoft—Developer Network, “Getting Started with VBA in Word 2010,” Apr. 2010, <http://msdn.microsoft.com/en-us/library/ff604039%28v=office.14%29.aspx> as printed Apr. 4, 2014 in 17 pages.
Map of San Jose, CA. Retrieved Oct. 2, 2013 from http://maps.yahoo.com.
Microsoft Office—Visio, “About connecting shapes,” <http://office.microsoft.com/en-us/visio-help/about-connecting-shapes-HP085050369.aspx> printed Aug. 4, 2011 in 6 pages.
Bogle, Philip, “Reducing Cross Domain Call Overhead Using Batched Futures”, Massachusetts Institute of Technology, dated May 1994, pp. 59-69.
Gesher, Ari, “Palantir Screenshots in the Wild: Swing Sightings,” The Palantir Blog, Sep. 11, 2007, pp. 1-12, retrieved from the internet https://www.palantir.com/2007/09/palantir-screenshots/ retrieved on Aug. 18, 2015.
Official Communication for European Patent Application No. 15155846.7 dated Jul. 8, 2015.
Official Communication for Great Britain Patent Application No. 1404553.8 dated Sep. 9, 2014.
Official Communication for European Patent Application No. 14159464.8 dated Oct. 8, 2014.
Official Communication for European Patent Application No. 151832721.8 dated Nov. 23, 2015.
European Patent Office, “Search Report” in application No. 17 178 290.7-1221, dated Nov. 11, 2018, 7 pages.
European Claims in application No. 17 178 290.7-1221, dated Nov. 2018, 2 pages.
Panagiotis et al., “ACaZoo: A Distributed Key-Vale Store Based on Replicated LSM-Trees”, IEEE, dated Oct. 8, 2014, 10 pages.
The Apache Cassandra Project.
Official Communication for European Patent Application No. 14159629.6 dated Jul. 31, 2014.
Canese et al., “Chapter 2: PubMed: The Bibliographic Database,” The NCBI Handbook, Oct. 2002, pp. 1-10.
Ballesteros et al., “Batching: A Design Pattern for Efficient and Flexible Client/Server Interaction,” Transactions on Pattern Languages of Programming, Springer Berlin Heildeberg, 2009, pp. 48-66.
Official Communication for Australian Patent Application No. 2014201580 dated Feb. 27, 2015.
Official Communication for New Zealand Patent Application No. 622485 dated Nov. 21, 2014.
Official Communication for New Zealand Patent Application No. 616299 dated Jan. 26, 2015.
Official Communication for European Patent Application No. 14159175.0 dated Feb. 4, 2016.
Sirotkin et al., “Chapter 13: The Processing of Biological Sequence Data at NCBI,” The NCBI Handbook, Oct. 2002, pp. 1-11.
Han et al., “Efficient Computation of Iceberg Cubes with Complex Measures,” ACM Sigmod, May 21-24, 2001, pp. 1-12.
Official Communication for New Zealand Patent Application No. 622414 dated Mar. 24, 2014.
Smart et al., “A Visual Approach to Semantic Query Design Using a Web-Based Graphical Query Designer,” 16th International Conference on Knowledge Engineering and Knowledge Management (EKAW 2008),ÊAcitrezza, Catania, Italy, Sep. 29-Oct. 3, 2008.
Delcher et al., “Identifying Bacterial Genes and Endosymbiont DNA with Glimmer,” Biolnformatics, vol. 23, No. 6, 2007, pp. 673-679.
Mendes et al., “TcruziKB: Enabling Complex Queries for Genomic Data Exploration,” IEEE International Conference on Semantic Computing, Aug. 2008, pp. 432-439.
Alur et al., “Chapter 2: IBM InfoSphere DataStage Stages,” IBM InfoSphere DataStage Data Flow and Job Design, Jul. 1, 2008, pp. 35-137.
Official Communication for Canadian Patent Application No. 2807899 dated Oct. 24, 2014.
Mizrachi, Ilene, “Chapter 1: Gen Bank: The Nuckeotide Sequence Database,” The NCBI Handbook, Oct. 2002, pp. 1-14.
“A Tour of Pinboard,” <http://pinboard.in/tour> as printed May 15, 2014 in 6 pages.
Goldstein et al., “Stacks Lazy Threads: Implementing a Fast Parallel Call,” Journal of Parallel and Distributed Computing, Jan. 1, 1996, pp. 5-20.
Liu et al., “Methods for Mining Frequent Items in Data Streams: An Overview,” Knowledge and Information Systems, vol. 26, No. 1, Jan. 2011, pp. 1-30.
Wikipedia, “Machine Code”, p. 1-5, printed Aug. 11, 2014.
Official Communication for Great Britain Patent Application No. 1404574.4 dated Dec. 18, 2014.
Official Communication for Netherlands Patent Application No. 2012437 dated Sep. 18, 2015.
Official Communication for New Zealand Patent Application No. 622484 dated Apr. 2, 2014.
Kitts, Paul, “Chapter 14: Genome Assembly and Annotation Process,” The NCBI Handbook, Oct. 2002, pp. 1-21.
“A Quick Guide to UniProtKB Swiss-Prot & TrEMBL,” Sep. 2011, pp. 2.
Notice of Acceptance for New Zealand Patent Application No. 616299 dated Apr. 7, 2015.
Bogle et al., “Reducing Cross-Domain Call Overhead Using Batched Futures,” SIGPLAN No. 29, 10 (Oct. 1994) pp. 341-354.
Official Communication for Canadian Patent Application No. 2828264 dated Apr. 28, 2015.
Official Communication for Australian Patent Application No. 2013237710 dated Jan. 16, 2015.
Official Communication for German Patent Application No. 10 2013 221 052.3 dated Mar. 24, 2015.
Niepert et al., “A Dynamic Ontology for a Dynamic Reference Work”, Joint Conference on Digital Libraries, pp. 1-10, Vancouver, British Columbia, Jun. 17-22, 2007.
Official Communication for European Patent Application No. 13157474.1 dated Oct. 30, 2015.
Notice of Acceptance for New Zealand Patent Application No. 616212 dated Jan. 23, 2015.
Anonymous, “Frequently Asked Questions about Office Binder 97,” http://web.archive.org/web/20100210112922/http://support.microsoft.com/kb/843147 printed Dec. 18, 2006 in 5 pages.
“The FASTA Program Package,” fasta-36.3.4, Mar. 25, 2011, pp. 29.
Russell et al., “NITELIGHT: A Graphical Tool for Semantic Query Construction,” 2008, pp. 10.
Karp et al., “A Simple Algorithm for Finding Frequent Elements in Streams and Bags,” ACM Transactions on Database Systems, vol. 28, No. 1, Mar. 2003, pp. 51D55.
Stamos et al., “Remote Evaluation,” Journal ACM Transactions on Programming Languages and Systems (TOPLAS) vol. 12, Issue 4, Oct. 1990, pp. 537-564.
Official Communication for European Patent Application No. 14159175.0 dated Jul. 17, 2014.
Official Communication for Netherlands Patent Application No. 2011613 dated Aug. 13, 2015.
Jacques, M., “An extensible math expression parser with plug-ins,” Code Project, Mar. 13, 2008. Retrieved on Jan. 30, 2015 from the internet: <http://www.codeproject.com/Articles/7335/An-extensible-math-expression-parser-.
Official Communication for European Patent Application No. 15159520.4 dated Jul. 15, 2015.
Bae et al., “Partitioning Algorithms for the Computation of Average Iceberg Queries,” DaWaK 2000, LNCS 1874, pp. 276_286.
Wollrath et al., “A Distributed Object Model for the Java System,” Proceedings of the 2nd Conference on USENEX, Conference on Object-Oriented Technologies (COOTS), Jun. 17, 1996, pp. 219-231.
Madden, Tom, “Chapter 16: The BLAST Sequence Analysis Tool,” The NCBI Handbook, Oct. 2002, pp. 1-15.
Notice of Acceptance for New Zealand Patent Application No. 622485 dated Nov. 24, 2014.
Official Communication for Netherlands Patent Application No. 2011627 dated Aug. 14, 2015.
Official Communication for German Patent Application No. 10 2013 221 057.4 dated Mar. 23, 2015.
Official Communication for European Patent Application No. 14159629.6 dated Sep. 22, 2014.
Fang et al., “Computing Iceberg Queries Efficiently,” Proceedings of the 24th VLDB Conference New York, 1998, pp. 299-310.
Chazelle et al., “The Bloomier Filter: An Efficient Data Structure for Static Support Lookup Tables,” SODA '04 Proceedings of the Fifteenth Annual ACM-SIAM Symposium on Discrete Algorithms, 2004, pp. 30-39.
Donjerkovic et al., “Probabilistic Optimization of Top N Queries,” Proceedings of the 25th VLDB Conference, Edinburgh, Scotland, 1999, pp. 411-422.
Kahan et al., “Annotea: an Open RDF Infrastructure for Shared Web Annotations”, Computer Networks, Elsevier Science Publishers B.V., vol. 39, No. 5, dated Aug. 5, 2002, pp. 589-608.
Official Communication for Australian Patent Application No. 2013237658 dated Feb. 2, 2015.
Ivanova et al., “An Architecture for Recycling Intermediates in a Column-Store,” Proceedings of the 35th Sigmod International Conference on Management of Data, Sigmod '09, Jun. 29, 2009, p. 309.
Leela et al., “On Incorporating Iceberg Queries in Query Processors,” Technical Report, TR-2002-01, Database Systems for Advanced Applications Lecture Notes in Computer Science, 2004, vol. 2973.
Official Communication for Canadian Patent Application No. 2807899 dated Jul. 20, 2015.
Bouajjani et al., “Analysis of Recursively Parallel Programs,” PLDI09: Proceedings of the 2009 ACM Sigplan Conference on Programming Language Design and Implementation, Jun. 15-20, 2009, Dublin, Ireland, pp. 203-214.
Jenks et al., “Nomadic Threads: A Migrating Multithreaded Approach to Remote Memory Accesses in Multiprocessors,” Parallel Architectures and Compilation Techniques, 1996, Oct. 20, 1996, pp. 2-11.
Official Communication for Canadian Patent Application No. 2829266 dated Apr. 28, 2015.
Official Communication for European Patent Application No. 14162372.8 dated Apr. 30, 2015.
Official Communication for European Patent Application No. 12179096.8 dated Jul. 3, 2014.
Wollrath et al., “A Distributed Object Model for the Java System”, Conference on Object-Oriented Technologies and Systems, pp. 219-231, Jun. 17-21, 1996.
Vose et al., “Help File for ModelRisk Version 5,” 2007, Vose Software, pp. 349-353. [Uploaded in 2 Parts].
Jotshi et al., “Dispatching and Routing of Emergency Vehicles in Disaster Mitigation Using Data Fusion.” Socio-Economic Planning Sciences, Pergamon, Amsterdam, Netherlands, vol. 43, No. 1, Mar. 1, 2009, 24 pages.
Official Communication for European Patent Application No. 12179096.8 dated Apr. 26, 2017.
Official Communication for New Zealand Patent Application No. 623323 dated Apr. 17, 2014.
Mohring et al., “Partitioning Graphs to Speedup Dijkstra's Algorithm,” ACM Journal of Experimental Algorithmics, Association of Computing Machinery, New York, New York, vol. 11, Jan. 1, 2006, 29 pages.
Yang et al., “HTML Page Analysis Based on Visual Cues”, A129, pp. 859-864, 2001.
Bernstein et al., “Hyder—A Transactional Record Manager for Shared Flash”, 5th Biennial Conference on Innovative Data Systems Research (CIDR '11), vol. 12, Asilomar, California, Jan. 9-12, 2011.
Official Communication for European Patent Application No. 09813700.3 dated Apr. 3, 2014.
Anonymous, “BackTult—JD Edwards One World Version Control System,” printed Jul. 23, 2007 in 1 page.
Official Communication for Great Britain Patent Application No. 1404553.8 dated Sep. 4, 2014.
“E-Mail Relay,” <http://web.archive.org/web/20080821175021/http://emailrelay.sourceforge.net/> Aug. 21, 2008, pp. 2.
Baker et al., “Megastore: Providing Scalable, Highly Available Storage for Interactive Services”, 5th Biennial Conference on Innovative Data Systems Research (CIDR '11), Asilomar, California, Jan. 9-12, 2011.
Delicious, <http://delicious.com/> as printed May 15, 2014 in 1 page.
Ashraf, “Protect your Google Account (Gmail) by enabling SMS (text message) notifications for Suspicious Activity,” online article from dotTech, Jan. 24, 2013, https://dottech.org/94405/how-to-setup-text-message-sms-google-notifications-for-suspicious-activity/.
Kokossi et al., “D7-Dynamic Ontology Management System (Design)”, Information Societies Technology Programme, pp. 1-27.
Official Communication for New Zealand Patent Application No. 623323 dated Jun. 6, 2014.
Official Communication for Canadian Patent Application No. 2846414 dated Apr. 13, 2016.
Wagner et al., “Dynamic Shortest Paths Containers,” Electronic Notes in Theoretical Computer Science, vol. 92, No. 1, 2003, pp. 1-19.
Antoshenkov, Gennady, “Dictionary-Based Order-Preserving String Compression”, The VLDB Journal, pp. 26-39, 1997.
Official Communication for European Patent Application No. 13157474.1 dated Apr. 29, 2016.
Yang et al., “An Enhanced Routing Method with Dijkstra Algorithm and AHP Analysis in GIS-based Emergency Plan,” Geoinformatics, 2010 18th International Conference on, IEEE, Piscataway, New Jersey, Jun. 18, 2010, 6 pages.
Official Communication for European Patent Application No. 12182274.6 dated Jul. 25, 2017.
Official Communication for Canadian Patent Application No. 2828264 dated Apr. 11, 2016.
Frantisek et al., “An Architectural View of Distributed Objects and Components in CORBA, Java RMI and COM/DCOM,” Software—Concepts & Tools, vol. 19, No. 1, Jun. 1, 1998, pp. 14-28.
Devanbu et al., “Authentic Third-party Data Publication”, http://www.cs.ucdavis.edu/˜devanbu/authdbpub.pdf, p. 19, 2000.
Chung, Chin-Wan, “Dataplex: An Access to Heterogeneous Distributed Databases”, Communications of the ACM, Association for Computing Machinery, Inc., vol. 33, Issue No. 1, pp. 70-80, Jan. 1, 1990.
Hogue et al., “Thresher: Automating the Unwrapping of Semantic Content from the World Wide Web”, 14th International Conference on World Wide Web, WWW 2005: Chiba, Japan, May 10-14, 2005.
Official Communication for Netherlands Patent Application No. 2012436 dated Nov. 6, 2015.
Official Communication for European Patent Application No. 12182274.6 dated Nov. 5, 2012.
Official Communication for European Patent Application No. 14199182.8 dated Mar. 13, 2015.
Anonymous, “BackTult—JD Edwards One World Version Control System”, in 1 page, Jul. 23, 2007.
Hart et al., “A Formal Basis for the Heuristic Determination of Minimum Cost Paths,” IEEE Transactions on Systems Science and Cybernetics, IEEE, vol. 1, No. 2, Jul. 1, 1968, pp. 100-107.
Official Communication for European Patent Application No. 14159464.8 dated Feb. 18, 2016.
Quest, “Toad for ORACLE 11.6—Guide to Using Toad”, pp. 1-162, Sep. 24, 2012.
Official Communication for Canadian Patent Application No. 2,807,899 dated Jun. 14, 2016.
Official Communication for Canadian Patent Application No. 2829266 dated Apr. 1, 2016.
Chen et al., “A Novel Emergency Vehicle Dispatching System,” 2013 IEEE 77th Vehicular Technology Conference, IEEE, Jun. 2, 2013, 5 pages.
“Java Remote Method Invocation: 7—Remote Object Activation,” Dec. 31, 2010, retrieved from the internet Mar. 15, 2016 https://docs.oracle.com/javase/7/docs/platform/rmi/spec/rmi-activation2.html.
Elmasri et al., “Fundamentals of Database Systems”, Fourth Edition, pp. 455-491, 2004.
Nierman, “Evaluating Structural Similarity in XML Documents”, 6 pages, 2002.
Miklau et al., “Securing History: Privacy and Accountability in Database Systems”, 3rd Biennial Conference on Innovative Data Systems Research (CIDR), pp. 387-396, Asilomar, California, Jan. 7-10, 2007.
Brandel, Mary, “Data Loss Prevention Dos and Don'ts,” <http://web.archive.org/web/20080724024847/http://www.csoonline.com/article/221272/Dos_and_Don_ts_for_Data_Loss_Prevention>, Oct. 10, 2007, pp. 5.
Dreyer et al., “An Object-Oriented Data Model for a Time Series Management System”, Proceedings of the 7th International Working Conference on Scientific and Statistical Database Management, p. 12, Charlottesville, Virginia, USA, Sep. 28-30, 1994.
Klemmer et al., “Where Do Web Sites Come From? Capturing and Interacting with Design History,” Association for Computing Machinery, CHI 2002, Apr. 20-25, 2002, Minneapolis, MN, pp. 8.
Eklund et al., “A Dynamic Multi-source Dijkstra's Algorithm for Vehicle Routing,” Intelligent Information Systems, 1996, pp. 329-333.
Official Communication for European Patent Application No. 14189344.6 dated Feb. 20, 2015.
Apache HBase.
Thomson et al., “The Case for Determinism in Database Systems”, The 36th International Conference on Very Large Data Bases, Proceedings of the VLDB Endowment, vol. 3, Issue No. 1, p. 11, Singapore, Sep. 13-17, 2010.
Rixon, Karl, “Update Multiple Rows with Different Values and a Single SQL Query.” Apr. 30, 2009. http://www.karlrixon.co.uk/writing/update-multiple-rows-with-different-values-and-a-single-sgl-query/.
Official Communication for European Patent Application No. 13157474.1 dated May 28, 2013.
Wikipedia, “Federated Database System,” Sep. 7, 2013, retrieved from the internet on Jan. 27, 2015 http://en.wikipedia.org/w/index.php?title=Federated_database_system&oldid=571954221.
Notice of Acceptance for Australian Patent Application No. 2014201034 dated Jun. 5, 2014.
Official Communication for New Zealand Patent Application No. 621812 dated Mar. 18, 2014.
Official Communication for European Patent Application No. 12179096.8 dated Mar. 13, 2013.
Official Communication for European Patent Application No. 15183721.8 dated Nov. 23, 2015.
Peng et al., “Large-scale Incremental Processing Using Distributed Transactions and Notifications”, Proceedings of the 9th USENIX Symposium on Operating Systems Design and Implementation, USENIX, p. 14, 2010.
Bluttman et al., “Excel Formulas and Functions for Dummies,” 2005, Wiley Publishing, Inc., pp. 280, 284-286.
Reedy, Sarah, “Policy and Charging Rules Function (PCRF),” Sep. 13, 2010, http://www.lightreading.com/document.asp?doc_id=680015 printed Dec. 10, 2013 in 4 pages.
Mentzas et al., “An Architecture for Intelligent Assistance in the Forecasting Process”, Proceedings of the Twenty-Eighth Hawaii International Conference on System Sciences, vol. 3, pp. 167-176, Jan. 3-6, 1995.
Chang et al., “Bigtable: A Distributed Storage System for Structured Data”, Google, Inc., OSDI'06: Seventh Symposium on Operating System Design and Implementation, Seattle, WA, Nov. 2006.
Sigrist, et al., “PROSITE, a Protein Domain Database for Functional Characterization and Annotation,” Nucleic Acids Research, 2010, vol. 38, pp. D161-D166.
U.S. Appl. No. 14/108,187, filed Dec. 16, 2013, Notice of Allowance, dated Aug. 29, 2014.
U.S. Appl. No. 14/135,289, filed Dec. 19, 2013, Notice of Allowance, dated Oct. 14, 2014.
U.S. Appl. No. 14/268,964, filed May 2, 2014, Notice of Allowance, dated Dec. 3, 2014.
U.S. Appl. No. 14/192,767, filed Feb. 27, 2014, Notice of Allowance, dated Dec. 16, 2014.
U.S. Appl. No. 14/294,098, filed Jun. 2, 2014, Notice of Allowance, dated Dec. 29, 2014.
U.S. Appl. No. 14/473,860, filed Aug. 29, 2014, Notice of Allowance, dated Jan. 5, 2015.
U.S. Appl. No. 14/616,080, filed Feb. 6, 2015, Notice of Allowance, dated Apr. 2, 2015.
U.S. Appl. No. 14/486,991, filed Sep. 15, 2014, Notice of Allowance, dated May 1, 2015.
U.S. Appl. No. 14/225,084, filed Mar. 25, 2014, Notice of Allowance, dated May 4, 2015.
U.S. Appl. No. 14/289,596, filed May 28, 2014, First Action Interview, dated Jul. 18, 2014.
U.S. Appl. No. 14/289,599, filed May 28, 2014, First Action Interview, dated Jul. 22, 2014.
U.S. Appl. No. 14/294,098, filed Jun. 2, 2014, First Action Interview, dated Aug. 15, 2014.
U.S. Appl. No. 14/225,084, filed Mar. 25, 2014, First Action Interview, dated Sep. 2, 2014.
U.S. Appl. No. 14/268,964, filed May 2, 2014, First Action Interview, dated Sep. 3, 2014.
U.S. Appl. No. 14/306,154, filed Jun. 16, 2014, First Action Interview, dated Sep. 23, 2014.
U.S. Appl. No. 14/306,147, filed Jun. 16, 2014, First Action Interview, dated Sep. 9, 2014.
U.S. Appl. No. 14/306,138, filed Jun. 16, 2014, First Action Interview, dated Sep. 23, 2014.
U.S. Appl. No. 14/148,568, filed Jan. 6, 2014, Final Office Action, dated Oct. 22, 2014.
U.S. Appl. No. 14/294,098, filed Jun. 2, 2014, Final Office Action, dated Nov. 6, 2014.
U.S. Appl. No. 14/319,765, filed Jun. 30, 2014, First Action Interview, dated Nov. 25, 2014.
U.S. Appl. No. 14/323,935, filed Jul. 30, 2014, First Action Interview, dated Nov. 28, 2014.
U.S. Appl. No. 14/326,738, filed Jul. 9, 2014, First Action Interview, dated Dec. 2, 2014.
U.S. Appl. No. 14/289,596, filed May 28, 2014, Final Office Action, dated Jan. 26, 2015.
U.S. Appl. No. 14/319,765, filed Jun. 30, 2014, First Action Interview, dated Feb. 4, 2015.
U.S. Appl. No. 14/225,160, filed Mar. 24, 2014, Final Office Action, dated Feb. 11, 2015.
U.S. Appl. No. 14/306,138, filed Jun. 16, 2014, Final Office Action, dated Feb. 18, 2015.
U.S. Appl. No. 14/306,147, filed Jun. 16, 2014, Final Office Action, dated Feb. 19, 2015.
U.S. Appl. No. 14/225,084, filed Mar. 25, 2014, First Action Interview, dated Feb. 20, 2015.
U.S. Appl. No. 14/473,552, filed Aug. 29, 2014, Interview Summary, dated Feb. 24, 2015.
U.S. Appl. No. 14/225,006, filed Mar. 25, 2014, First Action Interview, dated Feb. 27, 2015.
U.S. Appl. No. 14/486,991, filed Sep. 15, 2014, Office Action, dated Mar. 10, 2015.
U.S. Appl. No. 14/306,154, filed Jun. 16, 2014, Final Office Action, dated Mar. 11, 2015.
U.S. Appl. No. 14/323,935, filed Jul. 30, 2014, First Action Interview, dated Mar. 31, 2015.
U.S. Appl. No. 14/326,738, filed Jul. 9, 2014, First Action Interview, dated Mar. 31, 2015.
U.S. Appl. No. 13/247,987, filed Sep. 28, 2011, Office Action, dated Apr. 2, 2015.
U.S. Appl. No. 14/289,596, filed May 28, 2014, Advisory Action, dated Apr. 30, 2015.
U.S. Appl. No. 14/306,154, filed Jun. 16, 2014, Advisory Action, dated May 15, 2015.
U.S. Appl. No. 14/639,606, filed Mar. 5, 2015, First Action Interview, dated May 18, 2015.
U.S. Appl. No. 14/225,160, filed Mar. 24, 2014, Advisory Action, dated May 20, 2015.
U.S. Appl. No. 14/579,752, filed Dec. 22, 2014, First Action Interview, dated May 26, 2015.
U.S. Appl. No. 14/306,138, filed Jun. 16, 2014, Office Action, dated May 26, 2015.
U.S. Appl. No. 14/289,599, filed May 28, 2014, Final Office Action, dated May 29, 2015.
U.S. Appl. No. 14/319,765, filed Jun. 30, 2014, Final Office Action, dated Jun. 16, 2015.
U.S. Appl. No. 13/835,688, filed Mar. 15, 2013, First Action Interview, dated Jun. 17, 2015.
U.S. Appl. No. 14/323,935, filed Jul. 30, 2014, Office Action, dated Jun. 22, 2015.
U.S. Appl. No. 12/556,318, filed Jun. 16, 2014, Office Action, dated Jul. 2, 2015.
U.S. Appl. No. 14/306,154, filed Jun. 16, 2014, Office Action, dated Jul. 6, 2015.
U.S. Appl. No. 14/326,738, filed Jul. 9, 2014, Final Office Action, dated Jul. 31, 2015.
U.S. Appl. No. 13/839,026, filed Mar. 15, 2013, Office Action, dated Aug. 4, 2015.
U.S. Appl. No. 14/306,147, filed Jun. 16, 2014, Office Action, dated Aug. 7, 2015.
U.S. Appl. No. 14/225,160, filed Mar. 24, 2014, Office Action, dated Aug. 12, 2015.
U.S. Appl. No. 14/490,612, filed Sep. 18, 2014, Final Office Action, dated Aug. 18, 2015.
U.S. Appl. No. 14/579,752, filed Dec. 22, 2014, Final Office Action, dated Aug. 19, 2015.
U.S. Appl. No. 14/225,006, filed Mar. 24, 2014, Final Office Action, dated Sep. 2, 2015.
U.S. Appl. No. 14/631,633, filed Feb. 25, 2015, First Action Interview, dated Sep. 10, 2015.
U.S. Appl. No. 14/726,353, filed May 29, 2015, First Action Interview, dated Sep. 10, 2015.
U.S. Appl. No. 14/225,084, filed Mar. 25, 2014, Office Action, dated Sep. 11, 2015.
U.S. Appl. No. 14/306,138, filed Jun. 16, 2014, Final Office Action, dated Sep. 14, 2015.
U.S. Appl. No. 13/839,026, filed Mar. 15, 2013, Restriction Requirement, dated Apr. 2, 2015.
U.S. Appl. No. 14/077,159, filed Nov. 11, 2013, Notice of Allowance, dated Aug. 15, 2014.
U.S. Appl. No. 14/077,159, filed Nov. 11, 2013, First Action Interview, dated Mar. 12, 2014.
U.S. Appl. No. 14/196,814, filed Mar. 4, 2014, Office Action, dated Dec. 14, 2016.
U.S. Appl. No. 14/225,006, filed Mar. 25, 2014, First Action Interview, dated Sep. 10, 2014.
U.S. Appl. No. 13/839,026, filed Mar. 15, 2013, Notice of Allowance, dated Jul. 6, 2015.
U.S. Appl. No. 14/196,814, filed Mar. 4, 2014, Notice of Allowance, dated Apr. 6, 2017.
U.S. Appl. No. 13/247,987, filed Sep. 28, 2011, Office Action, dated Sep. 22, 2015.
U.S. Appl. No. 13/831,199, filed Mar. 14, 2013, Office Action, dated May 9, 2016.
U.S. Appl. No. 13/196,788, filed Aug. 2, 2011, Notice of Allowance, dated Dec. 18, 2016.
U.S. Appl. No. 13/831,199, filed Mar. 14, 2013, Final Office Action, dated Nov. 4, 2016.
U.S. Appl. No. 14/289,599, filed May 28, 2014, Advisory Action, dated Sep. 4, 2015.
U.S. Appl. No. 14/806,517, filed Jul. 22, 2015, First Action Interview, dated Oct. 26, 2016.
U.S. Appl. No. 14/196,814, filed Mar. 4, 2014, Final Office Action, dated Apr. 16, 2014.
U.S. Appl. No. 14/196,814, filed Mar. 4, 2014, Final Office Action, dated Jun. 13, 2016.
U.S. Appl. No. 15/145,177, filed May 3, 2016, Office Action, dated Jul. 29, 2016.
U.S. Appl. No. 15/284,959, filed Oct. 4, 2016, Final Office Action, dated Aug. 28, 2018.
U.S. Appl. No. 15/284,959, filed Oct. 4, 2016, Notice of Allowance, dated May 9, 2019.
U.S. Appl. No. 14/304,741, filed Jun. 13, 2014, Final Office Action, dated Mar. 3, 2015.
U.S. Appl. No. 14/027,118, filed Sep. 13, 2013, Notice of Allowance, dated Feb. 4, 2016.
U.S. Appl. No. 14/813,749, filed Jul. 30, 2015, Office Action, dated Sep. 28, 2015.
U.S. Appl. No. 14/319,765, filed Jun. 30, 2014, Advisory Action, dated Sep. 10, 2015.
U.S. Appl. No. 14/134,558, filed Dec. 19, 2013, Final Office Action, dated May 16, 2016.
U.S. Appl. No. 14/690,905, filed Apr. 20, 2015, Office Action, dated Oct. 7, 2015.
U.S. Appl. No. 15/047,405, filed Feb. 18, 2016, Final Office Action, dated Oct. 4, 2016.
U.S. Appl. No. 14/304,741, filed Jun. 13, 2014, Notice of Allowance, dated Apr. 7, 2015.
U.S. Appl. No. 13/657,635, filed Oct. 22, 2012, Notice of Allowance, dated Jan. 29, 2016.
U.S. Appl. No. 14/304,741, filed Jun. 13, 2014, Office Action, dated Aug. 6, 2014.
U.S. Appl. No. 13/657,656, filed Oct. 22, 2012, Office Action, dated Oct. 7, 2014.
U.S. Appl. No. 14/254,773, filed Apr. 16, 2014, Notice of Allowance, dated Aug. 20, 2014.
U.S. Appl. No. 13/831,791, filed Mar. 15, 2013, Office Action, dated Mar. 4, 2015.
U.S. Appl. No. 13/827,627, filed Mar. 14, 2013, Office Action, dated Mar. 2, 2015.
U.S. Appl. No. 13/657,635, filed Oct. 22, 2012, Office Action, dated Mar. 30, 2015.
U.S. Appl. No. 13/657,656, filed Oct. 22, 2012, Final Office Action, dated May 6, 2015.
U.S. Appl. No. 13/767,779, filed Feb. 14, 2013, Notice of Allowance, dated Mar. 17, 2015.
U.S. Appl. No. 14/019,534, filed Sep. 5, 2013, Office Action Interview, dated Jul. 20, 2015.
U.S. Appl. No. 14/025,653, filed Sep. 12, 2013, First Office Action Interview, dated Oct. 6, 2015.
U.S. Appl. No. 13/827,627, filed Mar. 14, 2013, Office Action, dated Dec. 22, 2015.
U.S. Appl. No. 13/657,635, filed Oct. 22, 2012, Office Action, dated Oct. 7, 2015.
U.S. Appl. No. 14/581,902, filed Dec. 23, 2014, Notice of Allowance, dated Nov. 13, 2015.
U.S. Appl. No. 13/827,627, filed Mar. 14, 2013, Interview Summary, dated Oct. 20, 2015.
U.S. Appl. No. 12/556,307, filed Sep. 9, 2009, Notice of Allowance, dated Jan. 4, 2016.
U.S. Appl. No. 14/134,558, filed Dec. 19, 2013, Office Action, dated Oct. 7, 2015.
U.S. Appl. No. 13/831,791, filed Mar. 15, 2013, Final Office Action, dated Aug. 6, 2015.
U.S. Appl. No. 13/827,627, filed Mar. 14, 2013, Final Office Action, dated Aug. 26, 2015.
U.S. Appl. No. 14/019,534, filed Sep. 5, 2013, First Office Action Interview, dated Sep. 4, 2015.
U.S. Appl. No. 13/608,864, filed Sep. 10, 2012, Final Office Action, dated Jun. 8, 2015.
U.S. Appl. No. 13/411,291, filed Mar. 2, 2012, Office Action, dated Jul. 15, 2015.
U.S. Appl. No. 13/608,864, filed Sep. 10, 2012, First Office Action Interview, dated Mar. 17, 2015.
U.S. Appl. No. 12/556,307, filed Sep. 9, 2009, Final Office Action, dated Mar. 14, 2014.
U.S. Appl. No. 4/254,757, filed Apr. 16, 2014, Notice of Allowance, dated Sep. 10, 2014.
U.S. Appl. No. 14/025,653, filed Sep. 12, 2013, Interview Summary, dated Mar. 3, 2016.
U.S. Appl. No. 13/411,291, filed Mar. 2, 2012, Notice of Allowance, dated Apr. 22, 2016.
U.S. Appl. No. 13/657,656, filed Oct. 22, 2012, Notice of Allowance, dated May 10, 2016.
U.S. Appl. No. 13/827,627, filed Mar. 14, 2013, Notice of Allowance, dated Apr. 11, 2016.
U.S. Appl. No. 14/504,103, filed Oct. 1, 2014, First Office Action Interview, dated Feb. 5, 2015.
U.S. Appl. No. 13/196,788, filed Aug. 2, 2011, Interview Summary, dated Nov. 25, 2015.
U.S. Appl. No. 13/196,788, filed Aug. 2, 2011, Notice of Allowance, dated Dec. 18, 2015.
U.S. Appl. No. 14/746,671, filed Jun. 22, 2015, Notice of Allowance, dated Jan. 21, 2016.
U.S. Appl. No. 14/504,103, filed Oct. 1, 2014, Notice of Allowance, dated May 18, 2015.
U.S. Appl. No. 14/302,279, filed Jun. 11, 2014, Notice of Allowance, dated Apr. 5, 2016.
U.S. Appl. No. 14/196,814, filed Mar. 4, 2014, Office Action, dated May 5, 2015.
U.S. Appl. No. 15/066,970, filed Mar. 10, 2016, Notice of Allowance, dated Jun. 29, 2016.
U.S. Appl. No. 13/826,228, filed Mar. 14, 2013, Notice of Allowance, dated Mar. 27, 2015.
U.S. Appl. No. 14/726,211, filed May 29, 2015, Notice of Allowance, dated Jul. 27, 2016.
U.S. Appl. No. 14/877,229, filed Oct. 7, 2015, Office Action, dated Mar. 22, 2016.
U.S. Appl. No. 14/746,671, filed Jun. 22, 2015, First Office Action Interview, dated Nov. 12, 2015.
U.S. Appl. No. 14/580,218, filed Dec. 23, 2014, Office Action, dated Jun. 26, 2015.
U.S. Appl. No. 14/278,963, filed May 15, 2014, Notice of Allowance, dated Sep. 2, 2015.
U.S. Appl. No. 14/734,772, filed Jun. 9, 2015, First Office Action Interview, dated Jul. 24, 2015.
U.S. Appl. No. 14/734,772, filed Jun. 9, 2015, First Office Action Interview, dated Oct. 30, 2015.
U.S. Appl. No. 12/556,307, filed Sep. 9, 2009, Office Action, dated Jun. 9, 2015.
U.S. Appl. No. 14/451,221, filed Aug. 4, 2014, Notice of Allowance, dated Aug. 4, 2015.
U.S. Appl. No. 14/746,671, filed Jun. 22, 2015, First Office Action Interview, dated Sep. 28, 2015.
U.S. Appl. No. 14/504,103, filed Oct. 1, 2014, First Office Action Interview, dated Mar. 31, 2015.
U.S. Appl. No. 14/726,211, filed May 29, 2015, Office Action, dated Apr. 5, 2016.
U.S. Appl. No. 14/278,963, filed May 15, 2014, Final Office Action, dated Jan. 30, 2015.
U.S. Appl. No. 14/580,218, filed Dec. 23, 2014, Notice of Allowance, dated Dec. 2, 2016.
U.S. Appl. No. 14/451,221, filed Aug. 4, 2014, Ex Parte Quayle Action, Apr. 6, 2015.
U.S. Appl. No. 14/578,389, filed Dec. 20, 2014, Office Action, dated Oct. 21, 2015.
U.S. Appl. No. 13/196,788, filed Aug. 2, 2011, Office Action, dated Oct. 23, 2015.
U.S. Appl. No. 14/726,211, filed May 29, 2015, Office Action, dated Dec. 13, 2016.
U.S. Appl. No. 14/580,218, filed Dec. 23, 2014, Office Action, dated Jun. 7, 2016.
U.S. Appl. No. 13/411,291, filed Mar. 2, 2012, Office Action, dated Jan. 9, 2014.
U.S. Appl. No. 15/161,982, filed May 23, 2016, Office Action, dated Jul. 28, 2016.
U.S. Appl. No. 15/009,404, filed Jan. 28, 2016, Office Action, dated Nov. 7, 2017.
U.S. Appl. No. 15/009,404, filed Jan. 28, 2016, Notice of Allowance, dated Nov. 30, 2016.
U.S. Appl. No. 15/009,404, filed Jan. 28, 2016, Office Action, dated Jul. 12, 2016.
U.S. Appl. No. 14/481,338, filed Aug. 31, 2015, Office Action, dated Feb. 18, 2016.
U.S. Appl. No. 15/009,404, filed Jan. 28, 2016, Office Action, dated Jun. 30, 2017.
U.S. Appl. No. 14/302,279, filed Jun. 11, 2014, Office Action, dated Sep. 24, 2015.
U.S. Appl. No. 14/134,558, filed Dec. 19, 2013, Advisory Action, dated Aug. 26, 2016.
U.S. Appl. No. 12/556,307, filed Sep. 9, 2009, Office Action, dated Oct. 1, 2013.
U.S. Appl. No. 14/019,534, filed Sep. 5, 2013, Notice of Allowance, dated Feb. 4, 2016.
U.S. Appl. No. 13/411,291, filed Mar. 2, 2012, Interview Summary, dated Oct. 1, 2015.
U.S. Appl. No. 15/443,404, filed Feb. 27, 2017, Notice of Allowance, dated Oct. 16, 2017.
U.S. Appl. No. 15/443,404, filed Feb. 27, 2017, Office Action, dated May 3, 2017.
U.S. Appl. No. 15/284,959, filed Oct. 4, 2016, Final Office Action, dated Oct. 19, 2017.
U.S. Appl. No. 15/284,989, filed Oct. 4, 2016, Office Action, dated May 8, 2017.
U.S. Appl. No. 15/391,778, filed Dec. 27, 2016, Office Action, dated Jul. 28, 2017.
U.S. Appl. No. 15/391,778, filed Dec. 27, 2016, Final Office Action, dated Apr. 10, 2018.
U.S. Appl. No. 15/161,982, filed May 23, 2016, Notice of Allowance, dated Nov. 30, 2016.
U.S. Appl. No. 14/192,767, filed Feb. 27, 014, Notice of Allowance, dated Dec. 16, 2014.
U.S. Appl. No. 14/841,338, filed Aug. 31, 2015, Office Action, dated Feb. 18, 2016.
U.S. Appl. No. 15/284,959, filed Dec. 21, 2017, Advisory Action, dated Dec. 21, 2017.
U.S. Appl. No. 15/284,959, filed Oct. 4, 2016, Office Action, dated Mar. 2, 2018.
Related Publications (1)
Number Date Country
20170293653 A1 Oct 2017 US
Continuations (2)
Number Date Country
Parent 14726211 May 2015 US
Child 15634422 US
Parent 13826228 Mar 2013 US
Child 14726211 US