US7720841B2 - Model-based self-optimizing distributed information management - Google Patents

Model-based self-optimizing distributed information management Download PDF

Info

Publication number
US7720841B2
US7720841B2 US11/538,525 US53852506A US7720841B2 US 7720841 B2 US7720841 B2 US 7720841B2 US 53852506 A US53852506 A US 53852506A US 7720841 B2 US7720841 B2 US 7720841B2
Authority
US
United States
Prior art keywords
operating
attribute
attributes
push
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related, expires
Application number
US11/538,525
Other versions
US20080086469A1 (en
Inventor
Xiaohui Gu
Philip S. Yu
Shu-Ping Chang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US11/538,525 priority Critical patent/US7720841B2/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHANG, SHU-PING, GU, XIAOHUI, YU, PHILIP S.
Publication of US20080086469A1 publication Critical patent/US20080086469A1/en
Application granted granted Critical
Publication of US7720841B2 publication Critical patent/US7720841B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/964Database arrangement
    • Y10S707/966Distributed

Definitions

  • the present invention generally relates to the field of distributed stream processing systems, and more particularly relates to managing information within a distributed stream processing system.
  • Federated computing infrastructures such as Computational Grids and service overlay networks (“SON”) have become increasingly important to many emerging applications such as web service composition, distributed stream processing, and workflow management. As these computing infrastructures continue to grow, the efficient management of such large-scale dynamic distributed systems to better support application needs has become a challenging problem.
  • Distributed information management services (which are further described in Robbert van Renesse, Kenneth Birman and Werner Vogels. Astrolab: A robust and scalable technology for distributed system monitoring, management, and data mining. ACM Transactions on Computer Systems, 21(2):164-206, May 2003; P. Yalagandula and M. Dahlin. A Scalable Distributed Information Management System. Proc.
  • Applications running in the distributed environment can then query the current status of the system and make appropriate management decisions. For example, when a new application needs to be executed on a Grid system, a query “find 10 machines that have at least 20% free CPU time, 20 MB memory, and 2G disk space” can be issued to discover necessary resources.
  • the system can include a large number of geographically dispersed nodes (e.g., the World Community Grid consists of many thousands of nodes), and each node can be associated with many dynamic attributes (e.g., CPU load, memory space, disk storage, and other application level attributes). Obtaining accurate information about all nodes with their complete information inevitably involves high system overhead.
  • geographically dispersed nodes e.g., the World Community Grid consists of many thousands of nodes
  • each node can be associated with many dynamic attributes (e.g., CPU load, memory space, disk storage, and other application level attributes).
  • Astrolabe and SDIMS (which are further described in enter Robbert van Renesse, Kenneth Birman and Werner Vogels. Astrolab: A robust and scalable technology for distributed system monitoring, management, and data mining. ACM Transactions on Computer Systems, 21(2):164-206, May 2003; P. Yalagandula and M. Dahlin. A Scalable Distributed Information Management System. Proc. of SIGCOMM 2004, August 2004, respectively, and are herein incorporated by reference in their entireties), are two representative scalable distributed information management systems. The primary focus of these systems is aggregation queries such as MIN, MAX, and SUM.
  • the method includes dynamically collecting at least one statistical query pattern associated with a selected group of information processing nodes.
  • the statistical query pattern is dynamically collected from a plurality of information processing nodes in a distributed processing system.
  • At least one operating attribute distribution associated with an operating attribute that has been queried for the selected group is dynamically monitored.
  • the selected group is dynamically configured, based on the query pattern and the operating attribute distribution, to periodically push a set of attributes associated with the each information processing node in the selected group
  • an information processing system for managing data collection in a distributed processing system.
  • the information processing system comprises a memory and a processor that is communicatively coupled to the memory.
  • An information management system is coupled to the memory and the processor.
  • the information management system is for dynamically collecting at least one statistical query pattern associated with a selected group of information processing nodes.
  • the statistical query pattern is dynamically collected from a plurality of information processing nodes in a distributed processing system.
  • At least one operating attribute distribution associated with an operating attribute that has been queried for the selected group is dynamically monitored.
  • the selected group is dynamically configured, based on the query pattern and the operating attribute distribution, to periodically push a set of attributes associated with the each information processing node in the selected group.
  • a computer readable medium for managing data collection in a distribute processing system comprises instructions for dynamically collecting at least one statistical query pattern associated with a selected group of information processing nodes.
  • the statistical query pattern is dynamically collected from a plurality of information processing nodes in a distributed processing system.
  • At least one operating attribute distribution associated with an operating attribute that has been queried for the selected group is dynamically monitored.
  • the selected group is dynamically configured, based on the query pattern and the operating attribute distribution, to periodically push a set of attributes associated with the each information processing node in the selected group.
  • the information management system can dynamically/adaptively configure its data collection and query resolution operations based on dynamic query patterns and system conditions. Based on the statistical and node attribute distribution information, the information management system can dynamically configure a subset of worker nodes to periodically push a subset of their attribute data. The subset of nodes and attributes are selected so that most queries can be resolved by the push data. For the remaining queries, the information management system invokes pull operations on-demand to acquire the necessary information for their resolution
  • FIG. 1 is a block diagram illustrating a distributed processing system according to an embodiment of the present invention
  • FIG. 2 is a block diagram illustrating an information management system according to an embodiment of the present invention
  • FIG. 3 is a two dimensional graph illustrating the effect of attribute solution according to an embodiment of the present invention.
  • FIG. 4 is a two dimensional graph illustrating the effect of a filtering threshold according to an embodiment of the present invention.
  • FIG. 5 is a two dimensional graph illustrating a two-dimensional subspace selection according to an embodiment of the present invention.
  • FIG. 6 is a two dimensional graph illustrating query positioning according to an embodiment of the present invention.
  • FIG. 7 is a block diagram illustrating an exemplary system architecture according to an embodiment of the present invention.
  • FIG. 8 is a more detailed view of the processing nodes of FIG. 7 according to an embodiment of the present invention.
  • FIG. 9 is an operational flow diagram illustrating overall process of dynamically configuring overlay nodes in a distributed processing system according to an embodiment of the present invention.
  • FIG. 10 is an operational flow diagram illustrating an exemplary process of processing selecting an attribute set to be pushed by an overlay node according to an embodiment of the present invention
  • FIG. 11 is an operational flow diagram illustrating an exemplary process of configuring a filtering threshold according to an embodiment of the present invention.
  • FIG. 12 is an operational flow diagram illustrating an exemplary process of configuring a push interval according to an embodiment of the present invention.
  • the terms “a” or “an”, as used herein, are defined as one or more than one.
  • the term plurality, as used herein, is defined as two or more than two.
  • the term another, as used herein, is defined as at least a second or more.
  • the terms including and/or having, as used herein, are defined as comprising (i.e., open language).
  • the term coupled, as used herein, is defined as connected, although not necessarily directly, and not necessarily mechanically.
  • program, software application, and the like as used herein, are defined as a sequence of instructions designed for execution on a computer system.
  • a program, computer program, or software application may include a subroutine, a function, a procedure, an object method, an object implementation, an executable application, an applet, a servlet, a source code, an object code, a shared library/dynamic load library and/or other sequence of instructions designed for execution on a computer system.
  • FIG. 1 a high level overview of an exemplary distributed processing system 100 is shown.
  • the distributed processing system 100 of FIG. 1 includes one or more overlay nodes 102 , management nodes 104 , and monitoring sensor modules 106 .
  • FIG. 1 also shows query clients 108 such personal computer, work stations, and the like.
  • the overlay nodes 102 execute various application tasks.
  • an overlay node 102 (host node) is a processing node in the distributed processing system 100 that performs one or more stream processing functions (e.g., correlation, aggregation, select, etc.)
  • the management nodes 104 monitor the status of all overlay nodes 102 and perform system management tasks, for example, job scheduling, resource allocation, system trouble-shooting, and the like.
  • the monitoring sensor modules 106 monitor each host overlay node 102 and provide information associated with the host overlay node 102 to each of the management nodes 104 .
  • the sensor module 106 can be monitoring software that collects dynamic information about a local overlay node.
  • An information management system 200 ( FIG. 2 ) resides within each of the management nodes 104 and is discussed in further detail below. The information management system 200 resolves information queries from other system management modules or user applications.
  • each overlay node 102 which can be a personal computer, workstation, or the like is monitored by one or more of the management nodes 104 .
  • Each overlay node 112 is associated with a set of attributes, for example, CPU load, number of disk accesses, and the like.
  • the management node 104 which in one embodiment can be an information processing system such as a personal computer, workstation, or the like, is responsible for monitoring the distributed system 100 .
  • the management node 104 in one embodiment, provides information to one or more query nodes 108 comprising applications requesting the information
  • the query nodes 108 send a query 114 to the management node 104 wherein the management node 104 returns an answer 116 to the query 114 .
  • the management node 104 is pushed information from the overlay nodes 102 as shown by the dashed-dotted lines 110 and/or pulls information from the overlay nodes 102 as shown by the dashed lines 112 . This information is used by the management node 104 to provide the requested information to the query nodes 108 .
  • an information push occurs when one or more monitoring sensory modules 106 reports its current attribute data to the management nodes 104 .
  • An information pull occurs when one or more management nodes 104 dynamically requests information from sensors to resolve one or more queries 114 .
  • the queries 114 received by the management node 104 can expressed as locating a set of overlay nodes 102 that have certain resources.
  • this set of overlay nodes 102 can be represented as (a 1 ⁇ [l 1 ,h 1 ]) ⁇ (a 2 ⁇ [l 2 ,h 2 ]). . . ⁇ . . . (a k ⁇ [l k ,h k ]), where l i and h i are the desired lower bound and upper bound for a i , respectively.
  • Each query 114 can also specify the number of overlay nodes 102 that are needed.
  • the query answer 116 returns the specified number of overlay nodes 102 , each of which satisfies the query predicate.
  • each query 114 can also specify a staleness constraint T i on a required attribute a i .
  • the staleness constraint T i indicates a threshold for how old the attribute value used to resolve this query 114 can be. For example, the staleness constraint T i can indicate that the attribute value has to be less than or equal to T i seconds old.
  • the staleness constraint gives applications more specific control on their query result. In one embodiment, if a query 114 does not specify such constraint, a default value (e.g., 30 seconds) can be used instead.
  • each overlay node 102 includes a monitoring sensor module 106 .
  • the monitoring sensor module 106 can be implemented as hardware and/or software.
  • the monitoring sensor module 106 can be configured by the management node 104 to periodically push its information only when certain conditions are satisfied.
  • the monitoring sensing module 106 can also respond to a dynamic probe with its current information. Such configurability allows the management node 104 to achieve adaptiveness based on statistical query patterns.
  • FIG. 2 shows one example of an information management system 200 according to an embodiment of the present invention.
  • the information management system 200 in one embodiment, is model-based and self-optimized. Therefore, the information management system 200 can adaptively configure its data collection and query resolution operations based on dynamic query patterns and system conditions.
  • FIG. 2 shows the information management system 200 comprising host nodes 202 (overlay nodes), sensor modules 206 filtering modules 220 , and analysis modules 222 .
  • a host node 202 is a processing node in the distributed processing system 100 that performs one or more stream processing functions (e.g., correlation, aggregation, select, etc.).
  • a sensor module 206 can be monitoring software that collects dynamic information about local host 202 .
  • the filter module 220 is dynamically configured by the information management system 200 to filter out some raw monitoring data that is not needed by current queries.
  • the selected information from the sensor 206 is sent to different analysis modules 222 (e.g., A 1 , A 2 , A 3 ) that issue queries about different hosts 202 .
  • the information management system 200 dynamically derives query patterns from the queries generated by the different analysis modules 222 . Based on the derived query patterns and attribute distributions, the information management system 200 dynamically configure the filters 220 on different hosts 2002 to minimize overall information management cost.
  • the information management system 200 achieves its adaptivity by maintaining dynamic statistical information such as query patterns and system attribute distribution associated with the distributed system.
  • the information management system 200 can then derive analytical models that characterize the system cost under different configurations.
  • the information management system 200 uses the statistical information and analytical models to dynamically configure a subset of the worker nodes (overlay nodes 102 ) to periodically push a subset of their attribute data.
  • the subset of overlay nodes 102 and attributes are selected so that most queries can be resolved by the push data. For the remaining queries not in the subset, the information management system 200 invokes pull operations on-demand to acquire necessary information for their resolution.
  • the self-adaptive information management system 200 can use a set of parameters for dynamically configuring the distributed processing system 100 .
  • the information management system 200 can dynamically configure the subset of attributes that should be pushed by the overlay nodes 102 .
  • the information management system 200 can also dynamically configure the push triggering threshold for each selected attribute, which filters out overlay nodes 102 that are unlikely to satisfy a query.
  • An update interval for each pushed attribute can also be dynamically configured by the information management system 200 so that data is pushed at a frequency that the system can meet the staleness requirements of all queries with minimum push and pull cost.
  • the information management system 200 derives analytical models that characterize the system cost under different configurations and determines algorithms that can best configure the system parameters based on current query patterns and system conditions.
  • the information management system 200 in one embodiment, is optimized by using patterns so that queries are satisfied with minimum information monitoring overhead.
  • the information management system 200 can exploit various query patterns such as frequently queried attributes, frequently queried range values, and frequent staleness constraints. When combined with statistical information about the distributed stream processing system 100 itself, these query patterns allow the information management system 200 to automatically configure itself in order to minimize its management cost.
  • the automatic self-configuration in one embodiment is based on dynamically maintained statistical information about the queries and distributed processing system 100 conditions.
  • the first statistical pattern, the frequently queried attributes, which can be denoted as A*, is collected because even though overlay nodes 102 can be associated with many attributes, it is likely only a subset of these attributes are frequently queried by current applications. For example, in distributed applications where computing jobs are mainly CPU-bound, most queries specify requirements on the CPU resource, but not on other attributes. By keeping track of those popular attributes and configuring the overlay nodes 102 to only report these attributes periodically, the information management system 200 can improve the system efficiency and avoid unnecessary system cost.
  • FIG. 3 shows a graph 300 illustrating the advantage of pushing only a subset of attributes.
  • the example of FIG. 3 is based on a distributed processing system with 50 attributes.
  • the x-axis 302 denotes the number of (most popular) attributes being pushed and the y-axis 304 denotes the corresponding system cost.
  • FIG. 3 shows that for different query patterns, pushing a subset of the attributes is more advantageous than pushing no attributes (i.e., pure pull) or all attributes (i.e., pure push).
  • the statistical pattern of frequently queried range values allows the information management system 200 to further reduce the system cost by filtering out unqualified attribute values. For example, if most queries on CPU time require a node to have at least 20% free CPU time, the overlay nodes 102 with less than 20% CPU free time do not need to push their CPU value since they are unlikely to satisfy the query predicate.
  • the monitoring sensor module 106 can be configured by the information management system 200 with a push triggering range [l i , ⁇ ) for each selected popular attribute a i ⁇ A*. It should be noted that query predicates such as in resource queries often do not have upper-bound constraints. However, embodiments of the present invention can be extended to include a finite upper-bound.
  • the monitoring sensor module 106 periodically pushes the attribute data only when the attribute value falls into the push triggering range.
  • the range lower bound l i in one embodiment is a filtering threshold for the attribute.
  • the information management system 200 can filter out unnecessary data pushes without significantly decreasing the query hit ratio (i.e., the percentage of queries that can be resolved by the pushed data).
  • FIG. 4 shows a graph 400 illustrating a filtering threshold selection for one attribute.
  • the solid line 402 is the cumulative distribution function (“CDF”) of an attribute a 1 across all N nodes.
  • the dashed line 404 is the CDF of the lower bound requirements from the current queries.
  • the information management system 200 also monitors the frequent staleness constraints query pattern. For example, when an application makes a query 114 , the application can specify a staleness constraint T i .
  • the staleness constraint indicates that the attribute data used to resolve the query 114 cannot be greater than T i seconds old for attribute a i .
  • different queries for any attribute a i ⁇ A* can have different staleness requirements.
  • the push interval (i.e., update period) of a i is dynamically configured by the information management system 200 so that the push frequency is high enough to satisfy the staleness constraints of most queries. For example, if the staleness requirement is that the information should be no more than T seconds old, then the push frequency should be no lower than (1/T) times per second.
  • the information management system 200 In addition to the query patterns, the information management system 200 also maintains an estimate of node attribute distribution (i.e., attribute distribution among all overlay nodes).
  • the distribution can be used for two purposes. First, the information management system 200 can estimate the probing cost (i.e., the number of probes that are to be generated) based on the node attribute distributions. Second, the attribute distributions allow the information management system 200 to estimate the push cost reduction and pull cost increase when the filtering thresholds are configured for different attributes.
  • the overlay nodes 102 can be associated with multiple attributes, the information management system 200 maintains multi-dimensional histograms to estimate the attribute distribution.
  • the node attribute distribution can be obtained by executing infrequent aggregate queries (e.g., ⁇ tt histogram ⁇ ) over all the nodes.
  • the information management system 200 combines the push and pull for data collection thereby creating a management cost of a push cost and a pull cost.
  • the push cost in one embodiment, is the amount of data periodically delivered from different overlay nodes to the management node.
  • the pull cost in one embodiment, is the amount of data generated per time unit for pulling the attribute data in response to queries that cannot be resolved by the information management system 200 locally.
  • One of the goals of the information management system 200 is to dynamically configure the monitoring sensor modules 106 so that the total system cost is minimized.
  • the information management system 200 can tune.
  • the first is the subset A* of attributes that are pushed.
  • each monitoring sensor monitor 106 only periodically pushes a subset A* of attributes.
  • the information management system 200 uses an on-demand probing protocol identify enough nodes that satisfy the query. It should be noted that there are different ways for dynamic probing, e.g., using random sampling or on-demand spanning trees, or the like.
  • the information management system 200 in one embodiment, assumes (in order to resolve a query by probing) that on average n nodes need to be contacted with 2n messages. In one embodiment, n can be obtained from previous probes.
  • f 1 ⁇ A * ⁇ ⁇ A ⁇ percentage of the attributes, it can be assumed that the message size is proportional to the number of attributes pushed, and S 1 is the size of the message if all
  • the push cost of the system can be expressed as
  • the pull cost of the entire distributed processing system 100 can then be 2n(1 ⁇ p 1 ) ⁇ S 2 .
  • A* is the set of selected attributes
  • a larger A* implies larger push cost (i.e., higher f 1 ) but a lower pull cost (i.e., lower 1 ⁇ p 1 ). Therefore, the information management system 200 dynamically selects A* based on the dynamically maintained statistical information, so that the overall system cost in Equation 1 above is minimized. Given a subset A* that has been selected, the information management system 200 can further reduce the system cost by selecting a filtering threshold l i * for each attribute a i ⁇ A*, and filtering out the overlay nodes 102 that do not satisfy the filtering thresholds.
  • the set of filtering thresholds define a subspace ⁇ (a 1 ,a 2 , . . . ,a
  • an overlay node 102 is “covered” by the subspace, if its value for each attribute a 1 ⁇ A* is above the filtering threshold.
  • a query 114 is “covered” by the subspace, if its lower bound requirement on each a i ⁇ A* is above the filtering threshold. If a query 114 is covered by the subspace, then all of the overlay nodes 102 that satisfy the query 114 , which are called the answer set of the query 114 , are covered by the subspace. Therefore, the query 114 can be locally resolved safely. For a query 114 not covered by the subspace, its answer set is not completely available. In this case, the information management system 200 assumes a probing operation is invoked so that the query result is not biased toward a subset of the answer set.
  • an overlay node 102 reports its attribute data A* only if the node is covered by the subspace, and f 2 percent of the overlay nodes are covered by the subspace defined by the filtering thresholds. The push cost of the system is reduced to
  • implies larger push cost (i.e., higher f 2 ) but lower pull cost (i.e., lower (1 ⁇ p 1 p 2 )). Therefore, another goal of the information management system 200 is to select a set of proper filtering thresholds l i * for all attributes a i ⁇ A* such that the total system cost in Equation 2 above is minimized.
  • each overlay node 102 can push the value of a i ⁇ A* every T i * seconds when the value is above the filtering threshold.
  • the push cost for attribute a i becomes
  • a lower T i * in one embodiment, means higher push cost but lower pull cost due to a higher p 3 .
  • the information management system 200 also considers the query response time requirements. Generally, if the query 114 can be answered by the push data (i.e., a query hit) then the query response time is shorter than the when the query resolution involves pull operations (i.e., a query miss).
  • the average response time for a query hit is R 1 and the average response time for a query miss is R 2 .
  • can denote the query hit ratio and R req can denote the user required query response time constraint.
  • the optimal distributed information management problem can be formulated into the following constrained optimization problem, wherein the problem of optimal distributed information management is to adaptively select a subset of attributes A*, a filtering threshold l*, and a push interval T * , for each attribute ⁇ A*, such that
  • the pattern-driven self-configuring information management system 200 minimizes the system management cost by observing both query patterns and attribute distributions.
  • Each management node 104 performs this cost minimization process in response to the changes of query patterns and node attribute distributions.
  • a larger A* implies a larger push cost but also a larger query hit ratio, while smaller A* implies a smaller push cost but also lower query hit ratio and thus higher pull cost. Therefore, the selection A*, in one embodiment, represents the trade-off between the push cost and pull cost.
  • the information management system 200 selects a proper subset A* such that the combined push and pull cost is minimized.
  • freq(A i ) a query frequency
  • the monitoring sensor modules 106 are configured by the information management system 200 to push the attribute data in A i .
  • the relative cost reduction of a subset A i can be defined to be the amount of pull cost saved minus the additional push cost incurred, if all attributes in A i are pushed, which can be calculated as follows,
  • C denote the collection of attribute subsets, each corresponding to a set of queries that specify the same attributes.
  • A* is set to be empty, on other words, no attributes are pushed.
  • the subset A i with the largest cost reduction is repeatedly selected, and add A i to A*.
  • the information management system 200 within a management node 104 keeps a sliding window of recently received queries and a moving average of p 1 .
  • p 1 is the percentage of queries that only specify attributes in A*.
  • the information management system 200 selects a filtering threshold.
  • the information management system 200 selects a multi-dimensional subspace that can cover the optimal set of overlay nodes 102 and queries 114 .
  • FIG. 5 shows a graph 500 illustrating the subspace selection problem in a two-dimensional space. Each star 502 in the space corresponds to a query 114 , and each plus sign 504 corresponds to an overlay node 102 .
  • the filtering threshold for a 1 and a 2 is set to be l 1 and l 2 respectively, one overlay node 102 does not push its attribute data.
  • each query 102 has all
  • a query 114 may only specify a subset of the attributes in A*.
  • the information management system 200 determines where to place the query 114 in the
  • This procedure is referred to “query positioning”.
  • the following is an example illustrating the positioning procedure and is shown in FIG. 6 .
  • query positioning requires the queries to be ran against the node attribute distribution.
  • Multi-dimensional histograms can be used to estimate the attribute distribution of the nodes and queries. It should be noted that the query distribution is incrementally updated as queries arrive at the management node 104 .
  • the node attribute distribution is periodically updated by executing an information aggregation query over all the nodes. Since the dimension might be high, only keep the bins that are non-empty are kept. Suppose all the attribute values are normalized to [0, 1.0], and the bin size for each dimension is d.
  • B be the list of non-empty bins for the node attribute distribution. Each bin b 1 ⁇ B is described by a tuple of
  • fields define the bin, and the last field is the percentage of nodes in the bin.
  • b (v 1 ,v 2 , . . . , v
  • B′ be the set of bins for the queries. B and B′ are bounded by the number of nodes in the system and the number of historical queries that are kept for estimating query patterns, which are smaller than a complete multi-dimensional histogram.
  • the current filtering threshold is l i * for attribute a i .
  • the information management system 200 can determine how many overlay nodes 102 are removed from the subspace.
  • the information management system 200 can also determine how many queries are removed from the subspace. This allows the information management system 200 to determine a cost reduction (i.e., the amount of push cost reduced minus the pull cost increased) for increasing l j * to l j *+d.
  • each filtering threshold l i * is initialized to be zero, which means every overlay node 102 periodically pushes its attribute data without any threshold filtering.
  • the information management system 200 selects one attribute a i that has the largest cost reduction and increases the filtering threshold l i * by a step size d.
  • the information management system 200 the removes the overlay nodes 102 and queries 114 that are not covered by the new subspace. The above process is repeated until the increase of any filtering threshold does not cause the system cost to decrease, or all overlay nodes 102 have been removed. Removal of all overlay nodes 102 indicates that all of the queries 114 have been resolved by the pull operations.
  • the push interval configuration process performed by the information management system 200 can be described as follows. Suppose the information management system 200 selects a push interval T i * for each attribute a i ⁇ A*. In one embodiment, the push interval determines how often a monitoring sensor module 106 reports up-to-date attribute values to the management node 104 when the value is above the filtering threshold. On one hand, push intervals can affect the system's push cost since they decide the push frequency of the selected attributed data. On the other hand, push intervals also affect how many queries can be resolved by the push data satisfying their stableness constraints. A larger T i * means the attribute is pushed less frequently, and the pushed data is less likely to satisfy the staleness constraint of a query.
  • the push interval configuration algorithm is similar to the filtering threshold configuration algorithm. Starting from the minimum push interval for each attribute, the information management system 200 repeatedly selects an attribute a i and increases its corresponding push interval T i *. The attribute a i is selected such that the increase of T i * results in the largest cost reduction. The above process is repeated until either the increase of T i * leads to increased system cost, or when all the push intervals have reached their maximum values.
  • FIG. 7 is a block diagram illustrating an exemplary architecture for the distributed processing system of FIG. 1 .
  • the distributed processing system 100 can operate in an SMP computing environment.
  • the distributed processing system 100 executes on a plurality of processing nodes 702 , 704 coupled to one another node via a plurality of network adapters 706 , 708 .
  • Each processing node 702 , 704 is an independent computer with its own operating system image 710 , 712 , channel controller 714 , 716 , memory 718 , 720 , and processor(s) 722 , 724 on a system memory bus 726 , 728 , a system input/output bus 730 , 732 couples 110 adapters 734 , 736 and network adapter 706 , 708 .
  • processor(s) 722 , 724 couples 110 adapters 734 , 736 and network adapter 706 , 708 .
  • Each network adapter is linked together via a network switch 738 .
  • the various processing nodes 702 , 704 are able to be part of a processing cluster. All of these variations are considered a part of the claimed invention. It should be noted that the present invention is also applicable to a single information processing system.
  • FIG. 8 is a block diagram illustrating a more detailed view of the processing node 704 of FIG. 7 , which from hereon in is referred to as information processing system 800 .
  • the information processing system 800 is the management node 104 of FIG. 1 .
  • the information processing system 704 is based upon a suitably configured processing system adapted to implement the exemplary embodiment of the present invention. Any suitably configured processing system is similarly able to be used as the information processing system 704 by embodiments of the present invention, for example, a personal computer, workstation, or the like.
  • the information processing system 704 includes a computer 802 .
  • the computer 802 includes a processor 722 , main memory 718 , and a channel controller 714 on a system bus 726 .
  • a system input/output bus 730 couples a mass storage interface 804 , a terminal interface 806 and a network hardware 706 .
  • the mass storage interface 804 is used to connect mass storage devices such as data storage device 808 to the information processing system 704 .
  • One specific type of data storage device is a computer readable medium such as a CD drive or DVD drive, which may be used to store data to and read data from a CD 810 (or DVD).
  • Another type of data storage device is a data storage device configured to support, for example, NTFS type file system operations.
  • the main memory 718 includes the information management system 200 , which dynamically configures a subset of overlay nodes 102 to periodically push a subset of their attribute data.
  • the subset of nodes and attributes are selected so that most queries can be resolved by the push data.
  • the information management system 200 invokes pull operations on-demand to acquire the necessary information for their resolution.
  • the information management system 200 has been discussed above in greater detail.
  • the information management system 200 includes a dynamic statistics collector 812 , a node attribute distribution monitor 814 , and a dynamic node configurator 816 .
  • the dynamic statistics collector 812 collects statistics such as frequently queried attributes, frequently queried range values and frequent staleness constraints. These statistics have been discussed in greater detail above.
  • the node attribute distribution monitor 814 monitors attribute distribution for estimating probing costs and the push cost reduction and pull cost increase when filtering thresholds are configured. Node attribute distribution has been discussed above in greater detail.
  • the dynamic node configurator 816 configures a subset of overlay nodes 102 to periodically push a subset of their attribute data based on the dynamic statistical and node attribute distribution information.
  • the dynamic node configurator 816 also dynamically configures the subset of attributes that are to be pushed, the push triggering threshold (filtering threshold) for each selected attribute, and the update interval for each pushed attribute.
  • Embodiments of the present invention further incorporate interfaces that each includes separate, fully programmed microprocessors that are used to off-load processing from the CPU 722 .
  • the terminal interface 806 is used to directly connect the information processing system 704 with one or more terminals 818 to the information processing system 704 for providing a user interface to the computer 802 .
  • These terminals 818 which are able to be non-intelligent or fully programmable workstations, are used to allow system administrators and users to communicate with the information processing system 104 .
  • a terminal 818 is also able to consist of user interface and peripheral devices that are connected to computer 802 .
  • An operating system image 710 included in the main memory 718 is a suitable multitasking operating system such as the Linux, UNIX, Windows XP, and Windows Server 2003 operating system. Embodiments of the present invention are able to use any other suitable operating system. Some embodiments of the present invention utilize architectures, such as an object oriented framework mechanism, that allows instructions of the components of operating system (not shown) to be executed on any processor located within the information processing system 106 .
  • the network adapter hardware 106 is used to provide an interface to a network 820 such as a wireless network, WLAN, LAN, or the like. Embodiments of the present invention are able to be adapted to work with any data communications connections including present day analog and/or digital techniques or via a future networking mechanism.
  • FIG. 9 illustrates an overall process for dynamically configuring the overlay nodes 102 to reduce system costs.
  • the operational flow diagram of FIG. 9 begins at step 902 and flows directly to step 904 .
  • the information management system 200 detects a query pattern of attribute distribution changes.
  • the information management system 200 selects a push attribute set.
  • a filtering threshold is determined by the information management system 200 for each attribute in the push attribute set.
  • the information processing system 200 determines a push interval for each attribute in the push attribute set.
  • the information management system 200 at step 912 , dynamically configures the overlay nodes 102 via their monitoring sensor modules 106 based on the above selected configuration parameters. This process is repeated each time a query pattern of node attribute distribution change is detected.
  • FIG. 10 illustrates an exemplary process of selecting an attribute set.
  • the operational flow diagram of FIG. 10 begins at step 1002 and flows directly to step 1004 .
  • the information management system 200 monitors received queries.
  • the queries at step 1006 , are analyzed to determined the request attributes.
  • the queries at step 1008 , are grouped together based on the subset of attributes specified by the queries.
  • the information management system 200 a step 1010 , determines a query frequency for each subset of attributes.
  • the query frequency as discussed above, is the percentage of all queries that are represented by each subset of attributes.
  • a cumulative query frequency, at step 1012 is determined, which is the percentage of queries that can be resolved by push data if the attributes in a given set of attributes are pushed.
  • the information management system 200 determines the cost reduction of each subset of attributes.
  • the cost reduction in one embodiment, is the amount of pull cost saved minus the additional push cost incurred if all attributes in a set of attributes are pushed.
  • the information management system 200 selects the attribute set with the largest cost reduction.
  • the information management system 200 determines if every attribute has been added to the group of attributes that are to be pushed. If the result of this determination is positive, the control flow exits at step 1020 . If the result of this determination is negative, the information management system 200 , at step 1022 , determines if adding another attribute subset increases the system cost. If the result of this determination is positive, the control flow exits at step 1024 . If the result of this determination is negative, the control returns to step 1018 , where the information management system 200 selects the next attribute set reduces the system cost the most.
  • FIG. 11 illustrates an exemplary process of configuring a filtering threshold discussed above.
  • the operational flow diagram of FIG. 11 begins at step 1102 and flows directly to step 1104 .
  • the information management system 200 at step 1104 , initializes each filtering threshold to zero.
  • the information management system 200 at step 1106 , selects at least one attribute that has the largest cost reduction.
  • the filtering threshold at step 1108 , is increased by a step size d.
  • the information management system 200 at step 1110 , removes the nodes and queries that are not covered by the new subspace.
  • the information management system 200 determines if all the nodes have been removed. If the result of this determination is positive, the control flow exits at step 1114 .
  • the information management system 200 determines if the system cost has been decreased. If the result of this determination is negative, the control flow exits at step 1118 . If the result of this determination is positive the control flow retunes to step 1104 and the above process is repeated.
  • FIG. 12 illustrates an exemplary process of configuring a push interval discussed above.
  • the operational flow diagram of FIG. 12 begins at step 1202 and flows directly to step 1204 .
  • the information management system 200 selects a minimum push interval for each attribute in the collection of attribute sets.
  • the push interval determines how often an overlay node 102 reports up-to-date attribute values to the information management system 200 when the value is above the filtering threshold.
  • An attribute, at step 1206 is repeatedly selected and its corresponding push interval, at step 1208 , is increased. In one embodiment, an attribute is selected such that the increase of the its push interval results in the largest cost reduction.
  • the information management system 200 at step 1210 , if all push intervals reached their maximum values.
  • control flow exits at step 1212 . If the result of this determination positive, the control flow exits at step 1212 . If the result of this determination is negative, the information management system 200 , at step 1214 , determines if the system cost has increased. If the result of this determination is positive, the control flow exits at step 1216 . If the result of this determination is negative, the control flow returns to step 1204 and the above process is repeated.
  • the present invention as would be known to one of ordinary skill in the art could be produced in hardware or software, or in a combination of hardware and software. However in one embodiment the invention is implemented in software.
  • the system, or method, according to the inventive principles as disclosed in connection with the preferred embodiment may be produced in a single computer system having separate elements or means for performing the individual functions or steps described or claimed or one or more elements or means combining the performance of any of the functions or steps disclosed or claimed, or may be arranged in a distributed computer system, interconnected by any suitable means as would be known by one of ordinary skill in the art.
  • the invention and the inventive principles are not limited to any particular kind of computer system but may be used with any general purpose computer, as would be known to one of ordinary skill in the art, arranged to perform the functions described and the method steps described.
  • the operations of such a computer, as described above, may be according to a computer program contained on a medium for use in the operation or control of the computer, as would be known to one of ordinary skill in the art.
  • the computer medium which may be used to hold or contain the computer program product, may be a fixture of the computer such as an embedded memory or may be on a transportable medium such as a disk, as would be known to one of ordinary skill in the art.
  • any such computing system can include, inter alia, at least a computer readable medium allowing a computer to read data, instructions, messages or message packets, and other computer readable information from the computer readable medium.
  • the computer readable medium may include non-volatile memory, such as ROM, Flash memory, floppy disk, Disk drive memory, CD-ROM, and other permanent storage. Additionally, a computer readable medium may include, for example, volatile storage such as RAM, buffers, cache memory, and network circuits.
  • the computer readable medium may include computer readable information in a transitory state medium such as a network link and/or a network interface, including a wired network or a wireless network that allows a computer to read such computer readable information.
  • a transitory state medium such as a network link and/or a network interface, including a wired network or a wireless network that allows a computer to read such computer readable information.

Abstract

Disclosed are a method, information processing system, and computer readable medium for managing data collection in a distributed processing system. The method includes dynamically collecting at least one statistical query pattern associated with a selected group of information processing nodes. The statistical query pattern is dynamically collected from a plurality of information processing nodes in a distributed processing system. At least one operating attribute distribution associated with an operating attribute that has been queried for the selected group is dynamically monitored. The selected group is dynamically configured, based on the query pattern and the operating attribute distribution, to periodically push a set of attributes associated with the each information processing node in the selected group.

Description

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT
This invention was made with Government support under Contract No. H98230-05-3-0001 awarded by U.S. Department of Defense. The Government has certain rights in this invention.
FIELD OF THE INVENTION
The present invention generally relates to the field of distributed stream processing systems, and more particularly relates to managing information within a distributed stream processing system.
BACKGROUND OF THE INVENTION
Federated computing infrastructures such as Computational Grids and service overlay networks (“SON”) have become increasingly important to many emerging applications such as web service composition, distributed stream processing, and workflow management. As these computing infrastructures continue to grow, the efficient management of such large-scale dynamic distributed systems to better support application needs has become a challenging problem. Distributed information management services (which are further described in Robbert van Renesse, Kenneth Birman and Werner Vogels. Astrolab: A robust and scalable technology for distributed system monitoring, management, and data mining. ACM Transactions on Computer Systems, 21(2):164-206, May 2003; P. Yalagandula and M. Dahlin. A Scalable Distributed Information Management System. Proc. of SIGCOMM 2004, August 2004; and David Oppenheimer, Jeannie Albrecht, David Patterson and Amin Vahdat. Design and implementation trade-offs for wide area resource discovery. In HPDC-14, July 2005, respectively, and are herein incorporated by reference in their entireties) is one of the fundamental building blocks of system management, which can track dynamic system information and make it available via some query interfaces.
Applications running in the distributed environment can then query the current status of the system and make appropriate management decisions. For example, when a new application needs to be executed on a Grid system, a query “find 10 machines that have at least 20% free CPU time, 20 MB memory, and 2G disk space” can be issued to discover necessary resources.
However, providing scalable and efficient information management service for large-scale, dynamic distributed systems such as SONs is a challenging task. On one hand, quality sensitive applications running in such environment desire up-to-date information about the current system in order to better accomplish their application goals. On the other hand, the system can include a large number of geographically dispersed nodes (e.g., the World Community Grid consists of many thousands of nodes), and each node can be associated with many dynamic attributes (e.g., CPU load, memory space, disk storage, and other application level attributes). Obtaining accurate information about all nodes with their complete information inevitably involves high system overhead.
Distributed information management is critical for any large-scale system management infrastructure. For example, both the CoMon PlanetLab monitoring service and the Grid Monitoring/Discovery Service, (which are further described in K. Park and V. S. Pai. Comon: A mostly-scalable monitoring system for planetlab. Operating Systems Review, Vol 40, No 1, January 2006, and K. Czajlowski, S. Fitzgerald, I. Foster, and C. Kesselman. Grid information services for distributed resource sharing. In HPDC-10, 2001, respectively, and are herein incorporated by reference in their entireties), have proven extremely useful for their user communities. However, both systems are statically configured. Every node pushes all attribute data to a central server at fixed intervals, even when the attribute data are unlikely to satisfy application queries.
Astrolabe and SDIMS, (which are further described in enter Robbert van Renesse, Kenneth Birman and Werner Vogels. Astrolab: A robust and scalable technology for distributed system monitoring, management, and data mining. ACM Transactions on Computer Systems, 21(2):164-206, May 2003; P. Yalagandula and M. Dahlin. A Scalable Distributed Information Management System. Proc. of SIGCOMM 2004, August 2004, respectively, and are herein incorporated by reference in their entireties), are two representative scalable distributed information management systems. The primary focus of these systems is aggregation queries such as MIN, MAX, and SUM.
Other systems such as Mercury, SWORD and PIER, (which are further described in Ashwin R. Bharambe, Mukesh Agrawal, and Srinivasan Seshan. Mercury: Supporting scalable multi-attribute range queries. In SIGCOMM 2004, August 2004; David Oppenheimer, Jeannie Albrecht, David Patterson and Amin Vahdat. Design and implementation trade-offs for wide area resource discovery. In HPDC-14, July 2005, and Ryan Huebsch, Joseph M. Hellerstein, Nick Lanham, Boon Thau Loo, Scott Shenker and Ion Stoica. Querying the internet with PIER. In Proceedings of 29th VLDB Conference, 2003, respectively, and are herein incorporated by reference in their entireties), can support multi-attribute queries. However, their focus is on how to resolve queries in different decentralized architectures.
Additionally, there has been work on query pattern/workload estimation (such as that described in N. Bruno, S. Chaudhuri, and L. Gravano. Stholes: A multidimensional workload-aware histogram. In ACM SIGMOID 2001, May 2001, and Yi-Leh Wu, Divyakant Agrawal, and Amr El Abbadi. Query estimation by adaptive sampling. In 18th International Conference on Data Engineering (ICDE'02), 2002, which are hereby incorporated by reference in their entireties), in the database community. The goal is often to build appropriate histograms to estimate the data distribution, so that different query plans can be evaluated more accurately.
Therefore a need exists to overcome the problems with the prior art as discussed above.
SUMMARY OF THE INVENTION
Briefly, in accordance with the present invention, disclosed are a method, information processing stream, and computer readable medium for managing data collection in a distributed processing system. The method includes dynamically collecting at least one statistical query pattern associated with a selected group of information processing nodes. The statistical query pattern is dynamically collected from a plurality of information processing nodes in a distributed processing system. At least one operating attribute distribution associated with an operating attribute that has been queried for the selected group is dynamically monitored. The selected group is dynamically configured, based on the query pattern and the operating attribute distribution, to periodically push a set of attributes associated with the each information processing node in the selected group
In another embodiment an information processing system for managing data collection in a distributed processing system is disclosed. The information processing system comprises a memory and a processor that is communicatively coupled to the memory. An information management system is coupled to the memory and the processor. The information management system is for dynamically collecting at least one statistical query pattern associated with a selected group of information processing nodes. The statistical query pattern is dynamically collected from a plurality of information processing nodes in a distributed processing system. At least one operating attribute distribution associated with an operating attribute that has been queried for the selected group is dynamically monitored. The selected group is dynamically configured, based on the query pattern and the operating attribute distribution, to periodically push a set of attributes associated with the each information processing node in the selected group.
In yet another embodiment, a computer readable medium for managing data collection in a distribute processing system disclosed. The computer readable medium comprises instructions for dynamically collecting at least one statistical query pattern associated with a selected group of information processing nodes. The statistical query pattern is dynamically collected from a plurality of information processing nodes in a distributed processing system. At least one operating attribute distribution associated with an operating attribute that has been queried for the selected group is dynamically monitored. The selected group is dynamically configured, based on the query pattern and the operating attribute distribution, to periodically push a set of attributes associated with the each information processing node in the selected group.
One advantage of the present invention is that it provides a self-optimized distributed information management system. The information management system can dynamically/adaptively configure its data collection and query resolution operations based on dynamic query patterns and system conditions. Based on the statistical and node attribute distribution information, the information management system can dynamically configure a subset of worker nodes to periodically push a subset of their attribute data. The subset of nodes and attributes are selected so that most queries can be resolved by the push data. For the remaining queries, the information management system invokes pull operations on-demand to acquire the necessary information for their resolution
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying figures where like reference numerals refer to identical or functionally similar elements throughout the separate views, and which together with the detailed description below are incorporated in and form part of the specification, serve to further illustrate various embodiments and to explain various principles and advantages all in accordance with the present invention.
FIG. 1 is a block diagram illustrating a distributed processing system according to an embodiment of the present invention;
FIG. 2 is a block diagram illustrating an information management system according to an embodiment of the present invention;
FIG. 3 is a two dimensional graph illustrating the effect of attribute solution according to an embodiment of the present invention;
FIG. 4 is a two dimensional graph illustrating the effect of a filtering threshold according to an embodiment of the present invention;
FIG. 5 is a two dimensional graph illustrating a two-dimensional subspace selection according to an embodiment of the present invention;
FIG. 6 is a two dimensional graph illustrating query positioning according to an embodiment of the present invention;
FIG. 7 is a block diagram illustrating an exemplary system architecture according to an embodiment of the present invention;
FIG. 8 is a more detailed view of the processing nodes of FIG. 7 according to an embodiment of the present invention;
FIG. 9 is an operational flow diagram illustrating overall process of dynamically configuring overlay nodes in a distributed processing system according to an embodiment of the present invention;
FIG. 10 is an operational flow diagram illustrating an exemplary process of processing selecting an attribute set to be pushed by an overlay node according to an embodiment of the present invention;
FIG. 11 is an operational flow diagram illustrating an exemplary process of configuring a filtering threshold according to an embodiment of the present invention; and
FIG. 12 is an operational flow diagram illustrating an exemplary process of configuring a push interval according to an embodiment of the present invention.
DETAILED DESCRIPTION
As required, detailed embodiments of the present invention are disclosed herein; however, it is to be understood that the disclosed embodiments are merely exemplary of the invention, which can be embodied in various forms. Therefore, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a basis for the claims and as a representative basis for teaching one skilled in the art to variously employ the present invention in virtually any appropriately detailed structure. Further, the terms and phrases used herein are not intended to be limiting; but rather, to provide an understandable description of the invention.
The terms “a” or “an”, as used herein, are defined as one or more than one. The term plurality, as used herein, is defined as two or more than two. The term another, as used herein, is defined as at least a second or more. The terms including and/or having, as used herein, are defined as comprising (i.e., open language). The term coupled, as used herein, is defined as connected, although not necessarily directly, and not necessarily mechanically. The terms program, software application, and the like as used herein, are defined as a sequence of instructions designed for execution on a computer system. A program, computer program, or software application may include a subroutine, a function, a procedure, an object method, an object implementation, an executable application, an applet, a servlet, a source code, an object code, a shared library/dynamic load library and/or other sequence of instructions designed for execution on a computer system.
Distributed Processing System
According to an embodiment of the present invention, as shown in FIG. 1, a high level overview of an exemplary distributed processing system 100 is shown. The distributed processing system 100 of FIG. 1 includes one or more overlay nodes 102, management nodes 104, and monitoring sensor modules 106. FIG. 1 also shows query clients 108 such personal computer, work stations, and the like. In one embodiment, the overlay nodes 102, in one embodiment, execute various application tasks. For example, an overlay node 102 (host node) is a processing node in the distributed processing system 100 that performs one or more stream processing functions (e.g., correlation, aggregation, select, etc.)
The management nodes 104 monitor the status of all overlay nodes 102 and perform system management tasks, for example, job scheduling, resource allocation, system trouble-shooting, and the like. The monitoring sensor modules 106, in one embodiment, monitor each host overlay node 102 and provide information associated with the host overlay node 102 to each of the management nodes 104. In one embodiment, the sensor module 106 can be monitoring software that collects dynamic information about a local overlay node. An information management system 200 (FIG. 2) resides within each of the management nodes 104 and is discussed in further detail below. The information management system 200 resolves information queries from other system management modules or user applications.
In one embodiment, each overlay node 102, which can be a personal computer, workstation, or the like is monitored by one or more of the management nodes 104. Each overlay node 112 is associated with a set of attributes, for example, CPU load, number of disk accesses, and the like. In one embodiment the set of attributes for an overlay node 102 can be denoted as A={a1, . . . ,a|A|}. Table 1 below summarizes the notations used throughout this discussion.
TABLE I
Notations
notation meaning notation meaning
N total number of overlay nodes a system state attribute
A set of all attributes A* Subset of attributes to be pushed
f 1 = A * A fraction of pushed attributes T Push interval
Ti * optimal push interval for ai Ti Staleness constraint of a query
S1 size of push message S2 Size of probe message
λ average query arrival rate n Average probing overhead
p1 % of resolvable queries using A* l1 Lower bond requirement for ai
li * (optimal) filtering threshold for ai f2 % nodes in the push subspace
p2 % of queries in the push subspace p3 % queries satisfied by the push intervals
Each attribute ai is denoted by a name, for example, CPU, memory, or the like) and a value, for example 10%, 20 KB, or the like. It should be noted that unless stated otherwise ai is used throughout this discussion to represent both the name and value of the attribute. The management node 104, which in one embodiment can be an information processing system such as a personal computer, workstation, or the like, is responsible for monitoring the distributed system 100. The management node 104, in one embodiment, provides information to one or more query nodes 108 comprising applications requesting the information The query nodes 108 send a query 114 to the management node 104 wherein the management node 104 returns an answer 116 to the query 114. In one embodiment, the management node 104 is pushed information from the overlay nodes 102 as shown by the dashed-dotted lines 110 and/or pulls information from the overlay nodes 102 as shown by the dashed lines 112. This information is used by the management node 104 to provide the requested information to the query nodes 108. In one embodiment, an information push occurs when one or more monitoring sensory modules 106 reports its current attribute data to the management nodes 104. An information pull occurs when one or more management nodes 104 dynamically requests information from sensors to resolve one or more queries 114.
In one embodiment, the queries 114 received by the management node 104 such as those for service composition and distributed stream processing applications can expressed as locating a set of overlay nodes 102 that have certain resources. In other words, this set of overlay nodes 102 can be represented as (a1ε[l1,h1])Λ(a2ε[l2,h2]). . . Λ . . . (akε[lk,hk]), where li and hi are the desired lower bound and upper bound for ai, respectively. Each query 114 can also specify the number of overlay nodes 102 that are needed. The query answer 116, in one embodiment, returns the specified number of overlay nodes 102, each of which satisfies the query predicate. Additionally, each query 114 can also specify a staleness constraint Ti on a required attribute ai. The staleness constraint Ti, in one embodiment, indicates a threshold for how old the attribute value used to resolve this query 114 can be. For example, the staleness constraint Ti can indicate that the attribute value has to be less than or equal to Ti seconds old. The staleness constraint gives applications more specific control on their query result. In one embodiment, if a query 114 does not specify such constraint, a default value (e.g., 30 seconds) can be used instead.
In one embodiment, each overlay node 102 includes a monitoring sensor module 106. The monitoring sensor module 106 can be implemented as hardware and/or software. The monitoring sensor module 106 can be configured by the management node 104 to periodically push its information only when certain conditions are satisfied. The monitoring sensing module 106 can also respond to a dynamic probe with its current information. Such configurability allows the management node 104 to achieve adaptiveness based on statistical query patterns.
Exemplary Information Management System
FIG. 2 shows one example of an information management system 200 according to an embodiment of the present invention. The information management system 200, in one embodiment, is model-based and self-optimized. Therefore, the information management system 200 can adaptively configure its data collection and query resolution operations based on dynamic query patterns and system conditions. FIG. 2 shows the information management system 200 comprising host nodes 202 (overlay nodes), sensor modules 206 filtering modules 220, and analysis modules 222.
A host node 202, in one embodiment, is a processing node in the distributed processing system 100 that performs one or more stream processing functions (e.g., correlation, aggregation, select, etc.). A sensor module 206 can be monitoring software that collects dynamic information about local host 202. The filter module 220 is dynamically configured by the information management system 200 to filter out some raw monitoring data that is not needed by current queries. The selected information from the sensor 206 is sent to different analysis modules 222 (e.g., A1, A2, A3) that issue queries about different hosts 202. The information management system 200 dynamically derives query patterns from the queries generated by the different analysis modules 222. Based on the derived query patterns and attribute distributions, the information management system 200 dynamically configure the filters 220 on different hosts 2002 to minimize overall information management cost.
In one embodiment, the information management system 200 achieves its adaptivity by maintaining dynamic statistical information such as query patterns and system attribute distribution associated with the distributed system. The information management system 200 can then derive analytical models that characterize the system cost under different configurations. In one embodiment, the information management system 200 uses the statistical information and analytical models to dynamically configure a subset of the worker nodes (overlay nodes 102) to periodically push a subset of their attribute data. The subset of overlay nodes 102 and attributes are selected so that most queries can be resolved by the push data. For the remaining queries not in the subset, the information management system 200 invokes pull operations on-demand to acquire necessary information for their resolution.
The self-adaptive information management system 200, in one embodiment, can use a set of parameters for dynamically configuring the distributed processing system 100. The information management system 200 can dynamically configure the subset of attributes that should be pushed by the overlay nodes 102. The information management system 200 can also dynamically configure the push triggering threshold for each selected attribute, which filters out overlay nodes 102 that are unlikely to satisfy a query. An update interval for each pushed attribute can also be dynamically configured by the information management system 200 so that data is pushed at a frequency that the system can meet the staleness requirements of all queries with minimum push and pull cost. In one embodiment, the information management system 200 derives analytical models that characterize the system cost under different configurations and determines algorithms that can best configure the system parameters based on current query patterns and system conditions.
The information management system 200, in one embodiment, is optimized by using patterns so that queries are satisfied with minimum information monitoring overhead. The information management system 200 can exploit various query patterns such as frequently queried attributes, frequently queried range values, and frequent staleness constraints. When combined with statistical information about the distributed stream processing system 100 itself, these query patterns allow the information management system 200 to automatically configure itself in order to minimize its management cost.
The automatic self-configuration, in one embodiment is based on dynamically maintained statistical information about the queries and distributed processing system 100 conditions. The first statistical pattern, the frequently queried attributes, which can be denoted as A*, is collected because even though overlay nodes 102 can be associated with many attributes, it is likely only a subset of these attributes are frequently queried by current applications. For example, in distributed applications where computing jobs are mainly CPU-bound, most queries specify requirements on the CPU resource, but not on other attributes. By keeping track of those popular attributes and configuring the overlay nodes 102 to only report these attributes periodically, the information management system 200 can improve the system efficiency and avoid unnecessary system cost.
For example, FIG. 3 shows a graph 300 illustrating the advantage of pushing only a subset of attributes. The example of FIG. 3 is based on a distributed processing system with 50 attributes. The x-axis 302 denotes the number of (most popular) attributes being pushed and the y-axis 304 denotes the corresponding system cost. FIG. 3 shows that for different query patterns, pushing a subset of the attributes is more advantageous than pushing no attributes (i.e., pure pull) or all attributes (i.e., pure push).
The statistical pattern of frequently queried range values, in one embodiment, allows the information management system 200 to further reduce the system cost by filtering out unqualified attribute values. For example, if most queries on CPU time require a node to have at least 20% free CPU time, the overlay nodes 102 with less than 20% CPU free time do not need to push their CPU value since they are unlikely to satisfy the query predicate. In one embodiment, the monitoring sensor module 106 can be configured by the information management system 200 with a push triggering range [li,∞) for each selected popular attribute aiεA*. It should be noted that query predicates such as in resource queries often do not have upper-bound constraints. However, embodiments of the present invention can be extended to include a finite upper-bound.
In the above example, the monitoring sensor module 106 periodically pushes the attribute data only when the attribute value falls into the push triggering range. The range lower bound li, in one embodiment is a filtering threshold for the attribute. By setting a filtering threshold, the information management system 200 can filter out unnecessary data pushes without significantly decreasing the query hit ratio (i.e., the percentage of queries that can be resolved by the pushed data). FIG. 4 shows a graph 400 illustrating a filtering threshold selection for one attribute. The solid line 402 is the cumulative distribution function (“CDF”) of an attribute a1 across all N nodes. The dashed line 404 is the CDF of the lower bound requirements from the current queries. As FIG. 4 shows, 90% of the queries require the attribute to be greater than I, and only 74% of the overlay nodes 102 satisfy this requirement. Therefore, if the information management system 200 configures the filtering threshold to be I, then 74% of the overlay nodes 102 push their attribute data and 90% of the queries can be resolved by the pushed data.
However, if the information management system 200 increases the filtering threshold from I to I′, then only 20% of the overlay nodes 102 need to push their attribute data with a slight decrease of query hit ratio. Thus, the query pattern range requirement distribution of recent queries is monitored by the information management system 200 to configure proper filtering thresholds. As discussed above, the information management system 200 also monitors the frequent staleness constraints query pattern. For example, when an application makes a query 114, the application can specify a staleness constraint Ti. The staleness constraint indicates that the attribute data used to resolve the query 114 cannot be greater than Ti seconds old for attribute ai. In one embodiment, different queries for any attribute aiεA* can have different staleness requirements. As a result, the push interval (i.e., update period) of ai is dynamically configured by the information management system 200 so that the push frequency is high enough to satisfy the staleness constraints of most queries. For example, if the staleness requirement is that the information should be no more than T seconds old, then the push frequency should be no lower than (1/T) times per second.
In addition to the query patterns, the information management system 200 also maintains an estimate of node attribute distribution (i.e., attribute distribution among all overlay nodes). The distribution can be used for two purposes. First, the information management system 200 can estimate the probing cost (i.e., the number of probes that are to be generated) based on the node attribute distributions. Second, the attribute distributions allow the information management system 200 to estimate the push cost reduction and pull cost increase when the filtering thresholds are configured for different attributes. In one embodiment, because the overlay nodes 102 can be associated with multiple attributes, the information management system 200 maintains multi-dimensional histograms to estimate the attribute distribution. The node attribute distribution can be obtained by executing infrequent aggregate queries (e.g., {\tt histogram}) over all the nodes.
As discussed above, the information management system 200 combines the push and pull for data collection thereby creating a management cost of a push cost and a pull cost. The push cost, in one embodiment, is the amount of data periodically delivered from different overlay nodes to the management node. The pull cost, in one embodiment, is the amount of data generated per time unit for pulling the attribute data in response to queries that cannot be resolved by the information management system 200 locally. One of the goals of the information management system 200 is to dynamically configure the monitoring sensor modules 106 so that the total system cost is minimized.
Corresponding to the application query patterns, there are at least three configuration parameters that the information management system 200 can tune. The first is the subset A* of attributes that are pushed. In other words, each monitoring sensor monitor 106 only periodically pushes a subset A* of attributes. When a query 114 arrives, if all the attributes the query 114 specifies is in A*, no additional cost is incurred. Otherwise, the information management system 200 uses an on-demand probing protocol identify enough nodes that satisfy the query. It should be noted that there are different ways for dynamic probing, e.g., using random sampling or on-demand spanning trees, or the like. Irrespective of the particular probing protocol, the information management system 200, in one embodiment, assumes (in order to resolve a query by probing) that on average n nodes need to be contacted with 2n messages. In one embodiment, n can be obtained from previous probes.
Since each monitoring sensor module 106 periodically (every T seconds) pushes
f 1 = A * A
percentage of the attributes, it can be assumed that the message size is proportional to the number of attributes pushed, and S1 is the size of the message if all |A| attributes are pushed. The push cost of the system can be expressed as
1 T Nf 1 S 1 .
For example, suppose the average query arrival rate is λ and on average the information management system 200 needs to probe n nodes with 2n messages (probes and replies) to resolve a query by pull. Let p1 denote the query hit ratio, and S2 denote the size of a probe message. It should be noted that it is unlikely for a query 114 to specify requirements on many attributes, (as discussed in Ashwin R. Bharambe, Mukesh Agrawal, and Srinivasan Seshan. Mercury: Supporting scalable multi-attribute range queries. In SIGCOMM 2004, August 2004; which is hereby incorporated by reference in its entirety). Therefore, in one embodiment, it can be assumed that the message size for both probe and reply is S2, which is a constant smaller than S1. However, this is only notational simplicity and does not limit the present invention.
The pull cost of the entire distributed processing system 100 can then be 2n(1−p1)λS2. As a result, if only popular attributes are configured, and A* is the set of selected attributes, the total system cost is
1 T N f 1 S 1 + 2 n ( 1 - p 1 ) λ S 2 ( EQ 1 )
A larger A* implies larger push cost (i.e., higher f1) but a lower pull cost (i.e., lower 1−p1). Therefore, the information management system 200 dynamically selects A* based on the dynamically maintained statistical information, so that the overall system cost in Equation 1 above is minimized. Given a subset A* that has been selected, the information management system 200 can further reduce the system cost by selecting a filtering threshold li* for each attribute aiεA*, and filtering out the overlay nodes 102 that do not satisfy the filtering thresholds. The set of filtering thresholds define a subspace {(a1,a2, . . . ,a|A*|)|a1>li*,1≦i≦|A*|} in the |A*|-dimensional space.
In one embodiment, an overlay node 102 is “covered” by the subspace, if its value for each attribute a1εA* is above the filtering threshold. In one embodiment, a query 114 is “covered” by the subspace, if its lower bound requirement on each aiεA* is above the filtering threshold. If a query 114 is covered by the subspace, then all of the overlay nodes 102 that satisfy the query 114, which are called the answer set of the query 114, are covered by the subspace. Therefore, the query 114 can be locally resolved safely. For a query 114 not covered by the subspace, its answer set is not completely available. In this case, the information management system 200 assumes a probing operation is invoked so that the query result is not biased toward a subset of the answer set.
In one embodiment, an overlay node 102 reports its attribute data A* only if the node is covered by the subspace, and f2 percent of the overlay nodes are covered by the subspace defined by the filtering thresholds. The push cost of the system is reduced to
1 T f 2 N f 1 S 1
since only the f2 percentage of overlay nodes 102 perform periodic pushes. Correspondingly, if p2 percent of the queries (among those that only specify attributes in A* are covered by the subspace, a total of (1−p1p2) percent queries need to be resolved by dynamic pull. As a result, the total system cost becomes
1 T f 2 N f 1 S 1 + 2 n ( 1 - p 2 p 1 ) λ S 2 ( EQ 2 )
A lower li*, 1≦i≦|A*| implies larger push cost (i.e., higher f2) but lower pull cost (i.e., lower (1−p1p2)). Therefore, another goal of the information management system 200 is to select a set of proper filtering thresholds li* for all attributes aiεA* such that the total system cost in Equation 2 above is minimized.
To further reduce the system cost, each overlay node 102 can push the value of aiεA* every Ti* seconds when the value is above the filtering threshold. The push cost for attribute ai becomes
1 T i * f 2 N f 1 S 1 + 2 n ( 1 - p 2 p 1 ) λS 2 .
Thus, the total push cost for all selected attributes is
a i A * 1 T i * f 2 N S 1 A .
Suppose under the above configuration, p3 percent of queries (among the p2p1 percent of queries that specify attributes in A* and are covered by the subspace defined by the filtering thresholds) can satisfy their staleness constraints. Then a total of (1−p3p2p1) percent queries need to invoke pull operations. Therefore, the total system cost for all three configuration parameters is
a i A * ( 1 T i * f 2 N S 1 A ) + 2 n ( 1 - p 3 p 2 p 1 ) λ S 2 ( EQ 3 )
A lower Ti*, in one embodiment, means higher push cost but lower pull cost due to a higher p3. Besides the monitoring cost, the information management system 200 also considers the query response time requirements. Generally, if the query 114 can be answered by the push data (i.e., a query hit) then the query response time is shorter than the when the query resolution involves pull operations (i.e., a query miss). Suppose the average response time for a query hit is R1 and the average response time for a query miss is R2. α can denote the query hit ratio and Rreq can denote the user required query response time constraint. Then, the optimal distributed information management problem can be formulated into the following constrained optimization problem, wherein the problem of optimal distributed information management is to adaptively select a subset of attributes A*, a filtering threshold l*, and a push interval T*, for each attribute εA*, such that
a i A * ( 1 T i * f 2 N S 1 A ) + 2 n ( 1 - p 3 p 2 p 1 ) λ S 2 ( EQ 4 )
is minimized subject to
α·R 1+(1−α)·R 2 ≦R req  (EQ 5).
As discussed above, the pattern-driven self-configuring information management system 200 minimizes the system management cost by observing both query patterns and attribute distributions. Each management node 104, in one embodiment, performs this cost minimization process in response to the changes of query patterns and node attribute distributions.
Attribute Selection
One of the goals of the attribute selection process performed by the information management system 200 is to select a subset of attributes A*A so that the total system cost is minimized. According to Equation 1 above, A* can affect the push cost (i.e., f1=A*/A percent of complete attribute push cost) and the percentage p1 of queries 114 that can be resolved by a management node 104 using the push data (i.e., query hit ratio). A larger A* implies a larger push cost but also a larger query hit ratio, while smaller A* implies a smaller push cost but also lower query hit ratio and thus higher pull cost. Therefore, the selection A*, in one embodiment, represents the trade-off between the push cost and pull cost. In one embodiment, the information management system 200 selects a proper subset A* such that the combined push and pull cost is minimized.
To quantify the relative merit of pushing a subset of attributes Ai, the information management system 200 groups the queries 114 based on the subset of attributes specified by the queries 114. For example, the information management system 200 uses a subset Ai={a1,a2} to represent all queries 114 that specify requirements on attributes a1 and a2. For each subset Ai the information management system 200 can determine a query frequency, denoted by freq(Ai), which means the percentage of all queries that are represented by Ai. Suppose the monitoring sensor modules 106 are configured by the information management system 200 to push the attribute data in Ai. For any Aj Ai, the queries that are represented by Aj can also be resolved by the push data. Therefore, cumulative query frequency of Ai can be defined as freq′(Ai)=ΣA j A i freq(Aj). This indicates the percentage of queries that can be resolved by the push data if the attributes in Ai are pushed.
Given the above, the relative cost reduction of a subset Ai can be defined to be the amount of pull cost saved minus the additional push cost incurred, if all attributes in Ai are pushed, which can be calculated as follows,
2 n · freq ( A i ) λ S 2 - 1 T N A i A S 1 ( EQ 6 )
One example of a push attribute selection algorithm is described as follows and whose pseudo-code is given in Table 2 below.
TABLE 2
Push attribute selection algorithm.
Attribute Selection (T, N, A, S1, S2, n, λ)
1. let f1 = p1 = 0, and A* = θ
2. compute min_cost using Equation(1)
3. let C = {Ai ∈ A|freq(Ai) > 0}
4. while C ≠ θ do
5. for each Ai ∈ C compute freq′(Ai)
6. select Ai from C that has the largest cost reduction
7. if the cost reduction of Ai is negative than break
8. f 1 = f 1 + A i A
9. p1 = p1 + freq′(Ai)
10. compute min_cost using Equation(1)
11. A* = A* ∪ Ai
12. for each Aj ∈ C set Aj = Aj\Ai
13. merge duplicate subsets in C
14. return A*
Let C denote the collection of attribute subsets, each corresponding to a set of queries that specify the same attributes. Initially, A* is set to be empty, on other words, no attributes are pushed. Thereafter, the subset Ai with the largest cost reduction is repeatedly selected, and add Ai to A*. The attributes in Ai are removed from all other subsets in C. This can create duplicate subsets in C. For example, after the attributes in Ai={a1,a2} are removed, the two subsets {a1,a3} and {a2,a3} are the same as each other. These subsets are then merged, and the cumulative query frequency is recomputed.
The above process is repeated, until either all attributes have been added to A* or if a new attribute subset is added total system cost increases. To implement the algorithm, the information management system 200 within a management node 104 keeps a sliding window of recently received queries and a moving average of p1. p1 is the percentage of queries that only specify attributes in A*. When the observed p1 is significantly different from the value predicted by the information management system 200, a reconfiguration is triggered. It should be noted that the size of the sliding window and the reconfiguration triggering threshold decide how promptly the information management system 200 can respond to query pattern changes, and how often push attribute selection is performed.
In a worst case scenario, the while loop at line 4 in Table 2 is executed |C| times. For each loop, line 5 in Table 2 takes O(|C|2) time because every pair of subsets need to be compared for inclusion test. The inclusion test for two subsets takes O(k2) time, assuming k is the maximum number of attributes in a query. As a result, the worst case time complexity of the algorithm is O(|C|3k2).
Filtering Threshold
As discussed above, the information management system 200 selects a filtering threshold. In other words, the information management system 200 selects a multi-dimensional subspace that can cover the optimal set of overlay nodes 102 and queries 114. FIG. 5 shows a graph 500 illustrating the subspace selection problem in a two-dimensional space. Each star 502 in the space corresponds to a query 114, and each plus sign 504 corresponds to an overlay node 102. As can be seen from FIG. 5, if the filtering threshold for a1 and a2 is set to be l1 and l2 respectively, one overlay node 102 does not push its attribute data. This is because the overlay node 102 is not covered by the subspace {(a1,a2)|a1≧l1Λa2≧l2}. One query 114 needs to be resolved by the pull operation, because it is not covered by the subspace. However, if the filtering threshold is set to be l1′and l2′, five overlay nodes do not need to push their data, and three queries need to be resolved by the pull operations.
In the above description, it is assume that each query 102 has all |A*| coordinates, which means that it specifies requirements on each attribute aiεA*. In one embodiment, a query 114 may only specify a subset of the attributes in A*. Under those circumstances, the information management system 200 determines where to place the query 114 in the |A*|-dimensional space such that the subspace selection process can correctly classify it as resolvable by push data or not. This procedure is referred to “query positioning”. The following is an example illustrating the positioning procedure and is shown in FIG. 6. FIG. 6 shows a graph 600 illustrating a two-dimensional space (i.e., A*={a1,a2}) and a query q=(a1≧l1).
One intuitive way to place the query in the two dimensional space is to rewrite the query as q′=(a1≧l1Λa2≧0). Hence, the query is placed on the a1 axis 602. This, however, greatly limits the filtering capability of threshold selection since in order to cover this query, the threshold for a2 must be 0. Therefore, the information management system 200 utilizes the node attribute distribution information to achieve more accurate query placement. For example, if the information management system 200 determines that among the overlay nodes 102 that satisfy a1≧l1, the smallest a2 value is l2. the query 114 can be rewritten as q″=(a1≧l1Λa2≧0). It should be note that this does not change the set of nodes that satisfy the query. However, it does affect the classification of queries as locally resolvable or not. If the push attributes for a1 and a2 are set to l1 and l2, respectively, q″ is covered by the subspace, while q′ is not. Using the (conditional) attribute distribution, the queries 114 can be placed more accurately.
In one embodiment, query positioning requires the queries to be ran against the node attribute distribution. Multi-dimensional histograms can be used to estimate the attribute distribution of the nodes and queries. It should be noted that the query distribution is incrementally updated as queries arrive at the management node 104. The node attribute distribution is periodically updated by executing an information aggregation query over all the nodes. Since the dimension might be high, only keep the bins that are non-empty are kept. Suppose all the attribute values are normalized to [0, 1.0], and the bin size for each dimension is d. Let B be the list of non-empty bins for the node attribute distribution. Each bin b1εB is described by a tuple of |A*|+1 fields.
The first |A*| fields define the bin, and the last field is the percentage of nodes in the bin. For example, b=(v1,v2, . . . , v|A*|,0.1) means 10% of the machines have attribute aiε[v1,vi+d),1≦i≦|A*|. Similarly, let B′ be the set of bins for the queries. B and B′ are bounded by the number of nodes in the system and the number of historical queries that are kept for estimating query patterns, which are smaller than a complete multi-dimensional histogram. Suppose the current filtering threshold is li* for attribute ai. If a particular attribute aj is analyzed and lj* is increased to lj*+d, the information management system 200 can determine how many overlay nodes 102 are removed from the subspace. The information management system 200 can also determine how many queries are removed from the subspace. This allows the information management system 200 to determine a cost reduction (i.e., the amount of push cost reduced minus the pull cost increased) for increasing lj* to lj*+d.
Therefore, the information management system 200 performs at least one or more of the following for configuring a filtering threshold. First, each filtering threshold li* is initialized to be zero, which means every overlay node 102 periodically pushes its attribute data without any threshold filtering. Next, at each step, the information management system 200 selects one attribute ai that has the largest cost reduction and increases the filtering threshold li* by a step size d. The information management system 200 the removes the overlay nodes 102 and queries 114 that are not covered by the new subspace. The above process is repeated until the increase of any filtering threshold does not cause the system cost to decrease, or all overlay nodes 102 have been removed. Removal of all overlay nodes 102 indicates that all of the queries 114 have been resolved by the pull operations.
In the algorithm for configuring a filtering threshold whose pseudo-code is shown below in Table 3, the while loop at line 4 executes at most |B|=O(N) times. In each loop, line 5 computes the cost reduction for each dimension ai. To do this, the number of nodes and queries that are removed is computed when li* is increased. This takes O(|A*|(|N|+|B′|)) time. As a result, line 5 takes O(|A*|(N+|B′|)N) time. In one embodiment, N is often smaller than |B′| decided by the number of queries. Thus, the computational complexity of the algorithm is O(|A*|·N·|B′|).
TABLE 3
Filtering threshold selection algorithm.
FilteringThresholdSelection(T, N, A, S1, S2, n, λ, A*)
1. let l*i = 0,1≦i≦|A*| and f2 = p2 = 1
2. compute min_cost according to Equation (2)
3. let B and B′ be the bins for nodes and queries
4. while B ≠ θ do
5.  select ai that has the largest cost reduction
6.  if the cost reduction is < 0 then break
7.  increase li* to li* + δ
8.  remove all nodes and queries not covered by {li*}
9.  reduce the cost reduction from min_cost
10. return {li*}
Push Interval
The push interval configuration process performed by the information management system 200 can be described as follows. Suppose the information management system 200 selects a push interval Ti* for each attribute aiεA*. In one embodiment, the push interval determines how often a monitoring sensor module 106 reports up-to-date attribute values to the management node 104 when the value is above the filtering threshold. On one hand, push intervals can affect the system's push cost since they decide the push frequency of the selected attributed data. On the other hand, push intervals also affect how many queries can be resolved by the push data satisfying their stableness constraints. A larger Ti* means the attribute is pushed less frequently, and the pushed data is less likely to satisfy the staleness constraint of a query. The push interval configuration algorithm is similar to the filtering threshold configuration algorithm. Starting from the minimum push interval for each attribute, the information management system 200 repeatedly selects an attribute ai and increases its corresponding push interval Ti*. The attribute ai is selected such that the increase of Ti* results in the largest cost reduction. The above process is repeated until either the increase of Ti* leads to increased system cost, or when all the push intervals have reached their maximum values.
System Architecture
FIG. 7 is a block diagram illustrating an exemplary architecture for the distributed processing system of FIG. 1. In one embodiment, the distributed processing system 100 can operate in an SMP computing environment. The distributed processing system 100 executes on a plurality of processing nodes 702, 704 coupled to one another node via a plurality of network adapters 706, 708. Each processing node 702, 704 is an independent computer with its own operating system image 710, 712, channel controller 714, 716, memory 718, 720, and processor(s) 722, 724 on a system memory bus 726, 728, a system input/ output bus 730, 732 couples 110 adapters 734, 736 and network adapter 706, 708. Although only one processor 722, 724 is shown in each processing node 702, 704, each processing node 702, 704 is capable of having more than one processor. Each network adapter is linked together via a network switch 738. In some embodiments, the various processing nodes 702, 704 are able to be part of a processing cluster. All of these variations are considered a part of the claimed invention. It should be noted that the present invention is also applicable to a single information processing system.
Information Processing System
FIG. 8 is a block diagram illustrating a more detailed view of the processing node 704 of FIG. 7, which from hereon in is referred to as information processing system 800. In one embodiment, the information processing system 800 is the management node 104 of FIG. 1. The information processing system 704 is based upon a suitably configured processing system adapted to implement the exemplary embodiment of the present invention. Any suitably configured processing system is similarly able to be used as the information processing system 704 by embodiments of the present invention, for example, a personal computer, workstation, or the like. The information processing system 704 includes a computer 802. The computer 802 includes a processor 722, main memory 718, and a channel controller 714 on a system bus 726. A system input/output bus 730 couples a mass storage interface 804, a terminal interface 806 and a network hardware 706. The mass storage interface 804 is used to connect mass storage devices such as data storage device 808 to the information processing system 704. One specific type of data storage device is a computer readable medium such as a CD drive or DVD drive, which may be used to store data to and read data from a CD 810 (or DVD). Another type of data storage device is a data storage device configured to support, for example, NTFS type file system operations.
The main memory 718, in one embodiment, includes the information management system 200, which dynamically configures a subset of overlay nodes 102 to periodically push a subset of their attribute data. The subset of nodes and attributes are selected so that most queries can be resolved by the push data. For the remaining queries, the information management system 200 invokes pull operations on-demand to acquire the necessary information for their resolution. The information management system 200 has been discussed above in greater detail. The information management system 200, in one embodiment, includes a dynamic statistics collector 812, a node attribute distribution monitor 814, and a dynamic node configurator 816.
The dynamic statistics collector 812, in one embodiment, collects statistics such as frequently queried attributes, frequently queried range values and frequent staleness constraints. These statistics have been discussed in greater detail above. The node attribute distribution monitor 814, in one embodiment, monitors attribute distribution for estimating probing costs and the push cost reduction and pull cost increase when filtering thresholds are configured. Node attribute distribution has been discussed above in greater detail. The dynamic node configurator 816, in one embodiment, configures a subset of overlay nodes 102 to periodically push a subset of their attribute data based on the dynamic statistical and node attribute distribution information. The dynamic node configurator 816 also dynamically configures the subset of attributes that are to be pushed, the push triggering threshold (filtering threshold) for each selected attribute, and the update interval for each pushed attribute.
Although only one CPU 722 is illustrated for computer 802, computer systems with multiple CPUs can be used equally effectively. Embodiments of the present invention further incorporate interfaces that each includes separate, fully programmed microprocessors that are used to off-load processing from the CPU 722. The terminal interface 806 is used to directly connect the information processing system 704 with one or more terminals 818 to the information processing system 704 for providing a user interface to the computer 802. These terminals 818, which are able to be non-intelligent or fully programmable workstations, are used to allow system administrators and users to communicate with the information processing system 104. A terminal 818 is also able to consist of user interface and peripheral devices that are connected to computer 802.
An operating system image 710 included in the main memory 718 is a suitable multitasking operating system such as the Linux, UNIX, Windows XP, and Windows Server 2003 operating system. Embodiments of the present invention are able to use any other suitable operating system. Some embodiments of the present invention utilize architectures, such as an object oriented framework mechanism, that allows instructions of the components of operating system (not shown) to be executed on any processor located within the information processing system 106. The network adapter hardware 106 is used to provide an interface to a network 820 such as a wireless network, WLAN, LAN, or the like. Embodiments of the present invention are able to be adapted to work with any data communications connections including present day analog and/or digital techniques or via a future networking mechanism.
Although the exemplary embodiments of the present invention are described in the context of a fully functional computer system, those skilled in the art will appreciate that embodiments are capable of being distributed as a program product via a CD/DVD, e.g. CD 810, or other form of recordable media, or via any type of electronic transmission mechanism.
Overall Process of Dynamically Configuring Nodes in a Distributed System
FIG. 9 illustrates an overall process for dynamically configuring the overlay nodes 102 to reduce system costs. The operational flow diagram of FIG. 9 begins at step 902 and flows directly to step 904. The information management system 200, at step 904, detects a query pattern of attribute distribution changes. The information management system 200, at step 906, selects a push attribute set. A filtering threshold, at step 908, is determined by the information management system 200 for each attribute in the push attribute set. The information processing system 200, at step 910, determines a push interval for each attribute in the push attribute set. The information management system 200, at step 912, dynamically configures the overlay nodes 102 via their monitoring sensor modules 106 based on the above selected configuration parameters. This process is repeated each time a query pattern of node attribute distribution change is detected.
Exemplary Process of Selecting Attributes
FIG. 10 illustrates an exemplary process of selecting an attribute set. The operational flow diagram of FIG. 10 begins at step 1002 and flows directly to step 1004. The information management system 200, at step 1004, monitors received queries. The queries, at step 1006, are analyzed to determined the request attributes. The queries, at step 1008, are grouped together based on the subset of attributes specified by the queries. The information management system 200, a step 1010, determines a query frequency for each subset of attributes. The query frequency, as discussed above, is the percentage of all queries that are represented by each subset of attributes. A cumulative query frequency, at step 1012, is determined, which is the percentage of queries that can be resolved by push data if the attributes in a given set of attributes are pushed.
The information management system 200, at step 1014, determines the cost reduction of each subset of attributes. The cost reduction, in one embodiment, is the amount of pull cost saved minus the additional push cost incurred if all attributes in a set of attributes are pushed. The information management system 200, at step 1016, selects the attribute set with the largest cost reduction. The information management system 200, at step 1018, determines if every attribute has been added to the group of attributes that are to be pushed. If the result of this determination is positive, the control flow exits at step 1020. If the result of this determination is negative, the information management system 200, at step 1022, determines if adding another attribute subset increases the system cost. If the result of this determination is positive, the control flow exits at step 1024. If the result of this determination is negative, the control returns to step 1018, where the information management system 200 selects the next attribute set reduces the system cost the most.
Exemplary Process of Configuring a Filtering Threshold
FIG. 11 illustrates an exemplary process of configuring a filtering threshold discussed above. The operational flow diagram of FIG. 11 begins at step 1102 and flows directly to step 1104. The information management system 200, at step 1104, initializes each filtering threshold to zero. The information management system 200, at step 1106, selects at least one attribute that has the largest cost reduction. The filtering threshold, at step 1108, is increased by a step size d. The information management system 200, at step 1110, removes the nodes and queries that are not covered by the new subspace. The information management system 200, at step 1112, determines if all the nodes have been removed. If the result of this determination is positive, the control flow exits at step 1114. If the result of this determination is negative, the information management system 200, at step 1116, determines if the system cost has been decreased. If the result of this determination is negative, the control flow exits at step 1118. If the result of this determination is positive the control flow retunes to step 1104 and the above process is repeated.
Exemplary Process of Configuring a Push Interval
FIG. 12 illustrates an exemplary process of configuring a push interval discussed above. The operational flow diagram of FIG. 12 begins at step 1202 and flows directly to step 1204. The information management system 200, at step 1204, selects a minimum push interval for each attribute in the collection of attribute sets. The push interval determines how often an overlay node 102 reports up-to-date attribute values to the information management system 200 when the value is above the filtering threshold. An attribute, at step 1206 is repeatedly selected and its corresponding push interval, at step 1208, is increased. In one embodiment, an attribute is selected such that the increase of the its push interval results in the largest cost reduction. The information management system 200, at step 1210, if all push intervals reached their maximum values. If the result of this determination positive, the control flow exits at step 1212. If the result of this determination is negative, the information management system 200, at step 1214, determines if the system cost has increased. If the result of this determination is positive, the control flow exits at step 1216. If the result of this determination is negative, the control flow returns to step 1204 and the above process is repeated.
Non-Limiting Examples
The present invention as would be known to one of ordinary skill in the art could be produced in hardware or software, or in a combination of hardware and software. However in one embodiment the invention is implemented in software. The system, or method, according to the inventive principles as disclosed in connection with the preferred embodiment, may be produced in a single computer system having separate elements or means for performing the individual functions or steps described or claimed or one or more elements or means combining the performance of any of the functions or steps disclosed or claimed, or may be arranged in a distributed computer system, interconnected by any suitable means as would be known by one of ordinary skill in the art.
According to the inventive principles as disclosed in connection with the preferred embodiment, the invention and the inventive principles are not limited to any particular kind of computer system but may be used with any general purpose computer, as would be known to one of ordinary skill in the art, arranged to perform the functions described and the method steps described. The operations of such a computer, as described above, may be according to a computer program contained on a medium for use in the operation or control of the computer, as would be known to one of ordinary skill in the art. The computer medium, which may be used to hold or contain the computer program product, may be a fixture of the computer such as an embedded memory or may be on a transportable medium such as a disk, as would be known to one of ordinary skill in the art.
The invention is not limited to any particular computer program or logic or language, or instruction but may be practiced with any such suitable program, logic or language, or instructions as would be known to one of ordinary skill in the art. Without limiting the principles of the disclosed invention any such computing system can include, inter alia, at least a computer readable medium allowing a computer to read data, instructions, messages or message packets, and other computer readable information from the computer readable medium. The computer readable medium may include non-volatile memory, such as ROM, Flash memory, floppy disk, Disk drive memory, CD-ROM, and other permanent storage. Additionally, a computer readable medium may include, for example, volatile storage such as RAM, buffers, cache memory, and network circuits.
Furthermore, the computer readable medium may include computer readable information in a transitory state medium such as a network link and/or a network interface, including a wired network or a wireless network that allows a computer to read such computer readable information.
Although specific embodiments of the invention have been disclosed, those having ordinary skill in the art will understand that changes can be made to the specific embodiments without departing from the spirit and scope of the invention. The scope of the invention is not to be restricted, therefore, to the specific embodiments, and it is intended that the appended claims cover any and all such applications, modifications, and embodiments within the scope of the present invention.

Claims (20)

1. A method for managing data collection in a distributed processing system, the method on an information processing system comprising:
dynamically collecting at least one statistical query pattern associated with a plurality of queries received from a plurality of client nodes in a distributed processing system;
dynamically monitoring at least one operating attribute distribution across a plurality of overlay nodes, wherein the at least one operating attribute distribution is associated with an operating attribute that has been queried by at least one of the client nodes for the plurality of overlay nodes in the distributed processing system, wherein an overlay node performs one or more data stream processing functions, and wherein an operating attribute is a distributed resource consumable by the at least one of the client nodes;
dynamically, and without user intervention, selecting a first set of overlay nodes from the plurality of overlay nodes based on the at least one statistical query pattern and the at least one operating attribute distribution; and
dynamically configuring without user intervention, based on the query pattern and the operating attribute distribution, the first group of overlay nodes to periodically push a first set of operating attributes associated with each overlay node in the selected group to a managing node associated with at least the first group of overlay nodes, wherein the first group of overlay nodes and the first set of operating attributes are selected so that a majority of queries received by client nodes are resolved by the first set of operating attributes that have been pushed, and wherein on-demand pull operations are performed on a second group overlay nodes within the distributed processing system to acquire a second set of operating attributes to resolve queries received from client nodes in which the first set of operating attributes that have been pushed have failed to resolve.
2. The method of claim 1, wherein the operating attribute is at least one of:
an environmental attribute;
a software attribute; and
a hardware attribute.
3. The method of claim 1, wherein the dynamically collecting the statistical query pattern further includes collecting statistical information on at least one of:
frequently queried attributes;
frequently queried range values; and
frequent staleness constraints.
4. The method of claim 1, wherein the dynamically configuring further comprises at least one of:
dynamically selecting the first set of attributes associated with the first group from a set of available operating attributes associated with each overlay node within the first group;
dynamically configuring a push triggering threshold associated with the operating attribute; and
dynamically configuring an update interval for each attribute in the set of operating attributes.
5. The method of claim 4, wherein the dynamically configuring of the push triggering threshold and the update interval is based on a set of data queries that are chosen from a historical list of data queries.
6. The method of claim 4, wherein the dynamically configuring of the push triggering threshold and the update interval minimizes a system cost comprising at least one of:
a push cost for distributed hosts to periodically send information to a manager node;
a pull cost for the manager node to dynamically retrieve information from at least one distributed host.
7. The method of claim 4, wherein the push triggering threshold filters out any overlay node that fails to satisfy a data query.
8. The method of claim 4, wherein the dynamically selecting the set of attributes further comprises:
grouping data queries based on operating attributes specified by the data queries as a push subset;
identifying a collection of operating attribute subsets, wherein for each operating attribute subset in the collection of operating attribute subsets,
determining a cumulative query frequency for each set of operating attributes;
determining a cost reduction value for each set of operating attributes; and
identifying an operating attribute subset comprising a largest cost reduction value;
adding the operating attribute subset comprising the largest cost reduction value to the push subset
removing attributes included in the operating attribute subset comprising the largest cost reduction value from each operating attribute subset in the collection of operating attribute subsets; and
merging together any operating attribute subsets comprising duplicate operating attributes.
9. The method of claim 4, wherein the dynamically configuring a push triggering threshold further comprises:
performing query positioning based on the operating attribute distribution.
10. The method of claim 4, wherein the dynamically configuring a push triggering threshold, further comprises:
initializing the push triggering threshold to its minimum value;
selecting an attribute subset with a largest cost reduction value;
increasing the push triggering threshold until the cost reduction value is above a given threshold; and
identifying, based on the push triggering threshold, any information processing nodes that satisfy the push triggering threshold for calculating a push cost; and
identifying, based on the push triggering threshold, each query in a historical list of data queries that fail to be satisfied by a push data operation for calculating a pull cost.
11. The method of claim 10, wherein the dynamically configuring the update interval update is further based on a query response time constraint, wherein the update interval minimizes monitoring traffic for satisfying a data query.
12. An information processing system for managing data collection in a distributed processing system, the information processing system comprising:
a memory;
a processor communicatively to the memory; and
an information management system communicatively coupled to the memory and the processor, the information management system for:
dynamically collecting at least one statistical query pattern associated with a plurality of queries received from a plurality of client nodes in a distributed processing system;
dynamically monitoring at least one operating attribute distribution across a plurality of overlay nodes, wherein the at least one operating attribute distribution is associated with an operating attribute that has been queried by at least one of the client nodes for the plurality of overlay nodes in the distributed processing system, wherein an overlay node performs one or more data stream processing functions, and wherein the at least one operating attribute is a distributed resource consumable by the at least one of the client nodes;
dynamically, and without user intervention, selecting a first set of overlay nodes from the plurality of overlay nodes based on the at least one statistical query pattern and the at least one operating attribute distribution; and
dynamically configuring, based on the query pattern and the operating attribute distribution, the first group of overlay nodes to periodically push a first set of operating attributes associated with each overlay node in the selected group to a managing node associated with at least the first group of overlay nodes, wherein the first group of overlay nodes and the first set of operating attributes are selected so that a majority of queries received by client nodes are resolved by the first set of operating attributes that have been pushed, and wherein on-demand pull operations are performed on a second group overlay nodes within the distributed processing system to acquire a second set of operating attributes to resolve queries received from client nodes in which the first set of operating attributes that have been pushed have failed to resolve.
13. The information processing system of claim 12, wherein the dynamically configuring further comprises at least one of:
dynamically selecting the first set of attributes associated with the first group from a set of available operating attributes associated with each information processing node within the first group;
dynamically configuring a push triggering threshold associated with the operating attribute; and
dynamically configuring an update interval for each attribute in the set of operating attributes.
14. The information processing system of claim 13, wherein the dynamically selecting the set of attributes further comprises:
grouping data queries based on operating attributes specified by the data queries as a push subset;
identifying a collection of operating attribute subsets, wherein for each operating attribute subset in the collection of operating attribute subsets,
determining a cumulative query frequency for each set of operating attributes;
determining a cost reduction value for each set of operating attributes; and
identifying an operating attribute subset comprising a largest cost reduction value;
adding the operating attribute subset comprising the largest cost reduction value to the push subset
removing attributes included in the operating attribute subset comprising the largest cost reduction value from each operating attribute subset in the collection of operating attribute subsets; and
merging together any operating attribute subsets comprising duplicate operating attributes.
15. The information processing system of claim 13, wherein the dynamically configuring a push triggering threshold, further comprises:
initializing the push triggering threshold to its minimum value;
selecting an attribute subset with a largest cost reduction value;
increasing the push triggering threshold until the cost reduction value is above a given threshold; and
identifying, based on the push triggering threshold, any information processing nodes that satisfy the push triggering threshold for calculating a push cost; and
identifying, based on the push triggering threshold, each query in a historical list of data queries that fail to be satisfied by a push data operation for calculating a pull cost.
16. A tangible computer readable medium for managing data collection in a distributed processing system, the computer readable medium comprising instructions for:
dynamically monitoring at least one operating attribute distribution across a plurality of overlay nodes, wherein the at least one operating attribute distribution is associated with an operating attribute that has been queried by at least one of a plurality of client nodes for the plurality of overlay nodes in the distributed processing system, wherein an overlay node performs one or more data stream processing functions, and wherein the at least one operating attribute is a distributed resource consumable by the at least one of the client nodes;
dynamically, and without user intervention, selecting a first set of overlay nodes from the plurality of overlay nodes based on the at least one statistical query pattern and the at least one operating attribute distribution; and
dynamically configuring, based on the query pattern and the operating attribute distribution, the first group of overlay nodes to periodically push a first set of operating attributes associated with each overlay node in the selected group to a managing node associated with at least the first group of overlay nodes, wherein the first group of overlay nodes and the first set of operating attributes are selected so that a majority of queries received by client nodes are resolved by the first set of operating attributes that have been pushed, and wherein on-demand pull operations are performed on a second group overlay nodes within the distributed processing system to acquire a second set of operating attributes to resolve queries received from client nodes in which the first set of operating attributes that have been pushed have failed to resolve.
17. The tangible computer readable medium of claim 16, wherein the instructions for dynamically configuring further comprise instructions for at least one of:
dynamically selecting the first set of attributes associated with the first group from a set of available operating attributes associated with each information processing node within the first group;
dynamically configuring a push triggering threshold associated with the operating attribute; and
dynamically configuring an update interval for each attribute in the set of operating attributes.
18. The tangible computer readable medium of claim 17, wherein the instructions for dynamically selecting the set of attributes further comprise instructions for:
grouping data queries based on operating attributes specified by the data queries as a push subset;
identifying a collection of operating attribute subsets, wherein for each operating attribute subset in the collection of operating attribute subsets,
determining a cumulative query frequency for each set of operating attributes;
determining a cost reduction value for each set of operating attributes; and
identifying an operating attribute subset comprising a largest cost reduction value;
adding the operating attribute subset comprising the largest cost reduction value to the push subset
removing attributes included in the operating attribute subset comprising the largest cost reduction value from each operating attribute subset in the collection of operating attribute subsets; and
merging together any operating attribute subsets comprising duplicate operating attributes.
19. The tangible computer readable medium of claim 17, wherein the instructions for dynamically configuring a push triggering threshold further comprise instructions for:
initializing the push triggering threshold to its minimum value;
selecting an attribute subset with a largest cost reduction value;
increasing the push triggering threshold until the cost reduction value is above a given threshold; and
identifying, based on the push triggering threshold, any information processing nodes that satisfy the push triggering threshold for calculating a push cost; and
identifying, based on the push triggering threshold, each query in a historical list of data queries that fail to be satisfied by a push data operation for calculating a pull cost.
20. The tangible computer readable medium of claim 16, wherein the instructions for dynamically collecting the statistical query pattern further include instructions for collecting statistical information on at least one of:
frequently queried attributes;
frequently queried range values; and
frequent staleness constraints.
US11/538,525 2006-10-04 2006-10-04 Model-based self-optimizing distributed information management Expired - Fee Related US7720841B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/538,525 US7720841B2 (en) 2006-10-04 2006-10-04 Model-based self-optimizing distributed information management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/538,525 US7720841B2 (en) 2006-10-04 2006-10-04 Model-based self-optimizing distributed information management

Publications (2)

Publication Number Publication Date
US20080086469A1 US20080086469A1 (en) 2008-04-10
US7720841B2 true US7720841B2 (en) 2010-05-18

Family

ID=39275766

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/538,525 Expired - Fee Related US7720841B2 (en) 2006-10-04 2006-10-04 Model-based self-optimizing distributed information management

Country Status (1)

Country Link
US (1) US7720841B2 (en)

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120150814A1 (en) * 2010-12-14 2012-06-14 Commvault Systems, Inc. Client-side repository in a networked deduplicated storage system
US8452766B1 (en) * 2000-02-22 2013-05-28 Google Inc. Detecting query-specific duplicate documents
US20130232114A1 (en) * 2012-01-31 2013-09-05 Yahoo! Inc. Probe System For Replication Monitoring
US8572340B2 (en) 2010-09-30 2013-10-29 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
US8577851B2 (en) 2010-09-30 2013-11-05 Commvault Systems, Inc. Content aligned block-based deduplication
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US9081870B2 (en) 2012-12-05 2015-07-14 Hewlett-Packard Development Company, L.P. Streaming system performance optimization
US9218375B2 (en) 2012-06-13 2015-12-22 Commvault Systems, Inc. Dedicated client-side signature generator in a networked storage system
US9405763B2 (en) 2008-06-24 2016-08-02 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US9454548B1 (en) 2013-02-25 2016-09-27 Emc Corporation Pluggable storage system for distributed file systems
US9575673B2 (en) 2014-10-29 2017-02-21 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US9633056B2 (en) 2014-03-17 2017-04-25 Commvault Systems, Inc. Maintaining a deduplication database
US9633033B2 (en) 2013-01-11 2017-04-25 Commvault Systems, Inc. High availability distributed deduplicated storage system
US9984083B1 (en) * 2013-02-25 2018-05-29 EMC IP Holding Company LLC Pluggable storage system for parallel query engines across non-native file systems
US10061663B2 (en) 2015-12-30 2018-08-28 Commvault Systems, Inc. Rebuilding deduplication data in a distributed deduplication data storage system
US10331668B1 (en) * 2016-07-19 2019-06-25 Arcadia Data Inc. Apparatus and method for query processing using analytical view partitions and database partitions
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US10380072B2 (en) 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
US10481826B2 (en) 2015-05-26 2019-11-19 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US10795577B2 (en) 2016-05-16 2020-10-06 Commvault Systems, Inc. De-duplication of client-side data cache for virtual disks
US10846024B2 (en) 2016-05-16 2020-11-24 Commvault Systems, Inc. Global de-duplication of virtual disks in a storage platform
US11010258B2 (en) 2018-11-27 2021-05-18 Commvault Systems, Inc. Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US11294768B2 (en) 2017-06-14 2022-04-05 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
US11314424B2 (en) 2015-07-22 2022-04-26 Commvault Systems, Inc. Restore for block-level backups
US11321195B2 (en) 2017-02-27 2022-05-03 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US11416341B2 (en) 2014-08-06 2022-08-16 Commvault Systems, Inc. Systems and methods to reduce application downtime during a restore operation using a pseudo-storage device
US11436038B2 (en) 2016-03-09 2022-09-06 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block- level pseudo-mount)
US11442896B2 (en) 2019-12-04 2022-09-13 Commvault Systems, Inc. Systems and methods for optimizing restoration of deduplicated data stored in cloud-based storage resources
US11463264B2 (en) 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
US11474881B1 (en) 2021-03-31 2022-10-18 Bank Of America Corporation Optimizing distributed and parallelized batch data processing
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
US11829251B2 (en) 2019-04-10 2023-11-28 Commvault Systems, Inc. Restore using deduplicated secondary copy data
US11874817B2 (en) 2021-03-31 2024-01-16 Bank Of America Corporation Optimizing distributed and parallelized batch data processing

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8504733B1 (en) * 2007-07-31 2013-08-06 Hewlett-Packard Development Company, L.P. Subtree for an aggregation system
US7966363B2 (en) * 2007-09-28 2011-06-21 Hewlett-Packard Development Company, L.P. Method and system for visualizing distributed systems
US7778165B2 (en) * 2007-11-08 2010-08-17 University Of Washington Information plane for determining performance metrics of paths between arbitrary end-hosts on the internet
US8103656B2 (en) * 2008-02-20 2012-01-24 Infosys Technologies Limited Integrated distributed query processor for data grids
US8655842B2 (en) * 2009-08-17 2014-02-18 Yahoo! Inc. Push pull caching for social network information
US8812489B2 (en) * 2012-10-08 2014-08-19 International Business Machines Corporation Swapping expected and candidate affinities in a query plan cache
US9507718B2 (en) * 2013-04-16 2016-11-29 Facebook, Inc. Intelligent caching
US9798575B2 (en) * 2013-05-06 2017-10-24 Sas Institute Inc. Techniques to manage virtual classes for statistical tests
EP2871577B1 (en) * 2013-11-06 2017-08-09 Software AG Complex event processing (CEP) based system for handling performance issues of a CEP system and corresponding method
US20170277750A1 (en) * 2016-03-28 2017-09-28 Futurewei Technologies, Inc. Querying big data by accessing small data
US11228511B2 (en) * 2019-03-18 2022-01-18 International Business Machines Corporation Smart sampling of discrete monitoring data
US11138199B2 (en) * 2019-09-30 2021-10-05 Sap Se Throughput optimization in distributed database systems using hypergraph partitioning
US11520796B2 (en) * 2020-04-14 2022-12-06 Google Llc Managing real time data stream processing
CN111931064B (en) * 2020-08-28 2021-07-06 南京硅基智能科技有限公司 Information analysis method based on big data and artificial intelligence and cloud service information platform
JP2022053363A (en) * 2020-09-24 2022-04-05 株式会社日立製作所 Storage apparatus and management processing method

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6122664A (en) * 1996-06-27 2000-09-19 Bull S.A. Process for monitoring a plurality of object types of a plurality of nodes from a management node in a data processing system by distributing configured agents
US20030208621A1 (en) * 2002-05-06 2003-11-06 Sandvine Incorporated Path optimizer for peer to peer networks
US20050010585A1 (en) * 2003-07-01 2005-01-13 Nokia Corporation Specifying management nodes in a device management system
US20050120105A1 (en) * 2003-12-01 2005-06-02 Popescu George V. Method and apparatus to support application and network awareness of collaborative applications using multi-attribute clustering
US20060106777A1 (en) * 2004-11-18 2006-05-18 International Business Machines Corporation Method and apparatus for predicting selectivity of database query join conditions using hypothetical query predicates having skewed value constants
US20060259460A1 (en) * 2005-05-13 2006-11-16 Thomas Zurek Data query cost estimation
US20070299804A1 (en) * 2006-06-21 2007-12-27 Zhen Liu Method and system for federated resource discovery service in distributed systems

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6122664A (en) * 1996-06-27 2000-09-19 Bull S.A. Process for monitoring a plurality of object types of a plurality of nodes from a management node in a data processing system by distributing configured agents
US20030208621A1 (en) * 2002-05-06 2003-11-06 Sandvine Incorporated Path optimizer for peer to peer networks
US20050010585A1 (en) * 2003-07-01 2005-01-13 Nokia Corporation Specifying management nodes in a device management system
US20050120105A1 (en) * 2003-12-01 2005-06-02 Popescu George V. Method and apparatus to support application and network awareness of collaborative applications using multi-attribute clustering
US20060106777A1 (en) * 2004-11-18 2006-05-18 International Business Machines Corporation Method and apparatus for predicting selectivity of database query join conditions using hypothetical query predicates having skewed value constants
US20060259460A1 (en) * 2005-05-13 2006-11-16 Thomas Zurek Data query cost estimation
US20070299804A1 (en) * 2006-06-21 2007-12-27 Zhen Liu Method and system for federated resource discovery service in distributed systems

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
A.R.Bharambe et al., "Mercury: Supporting Scalable Multi-Attribute Range Queries",SIGCOMM'04,Aug. 30-Sep. 3, 2004,14 pgs.,Portland,OR.
Bruno et al, STHoles: A Multidimensional Workload Aware Histogram, ACM SIGMOD Record archive vol. 30 , Issue 2 (Jun. 2001) table of contents pp. 211-222 Year of Publication: 2001 ISSN:0163-5808. *
Nicholas Bruno et al., "STHoles:A Multidimensional Workload-Aware Histogram", ACM SIGMOD 2001,May 21-24, 2001, 12 pgs., Santa Barbara, CA.
Praveen Yalagandula et al., "A Scalable Distributed Information Managament System", SIGCOMM'04, Aug. 30-Sep. 3, 2004, 12 pgs., Portland, OR.
R. Huebsch et al., "Querying the Internet with PIER",Proceedings of the 29th VLDB Conference, 2003, 12 pgs, Berlin,Germany.
R. Van Renesse et al.,"Astrolabe: A Robust & Scalable Technology for Distributed System Monitoring, Mgmt, & Data Mining", ACM Transactions on Computer Systems, 2003, p. 164-206.
Trigoni, Book Series Lecture Notes in Computer Science, Springer Berlin / Heidelberg, vol. 3560-2005, Distributed Computing in Sensor Systems, pp. 307-321. *

Cited By (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8452766B1 (en) * 2000-02-22 2013-05-28 Google Inc. Detecting query-specific duplicate documents
US11016859B2 (en) 2008-06-24 2021-05-25 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US9405763B2 (en) 2008-06-24 2016-08-02 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
US11288235B2 (en) 2009-07-08 2022-03-29 Commvault Systems, Inc. Synchronized data deduplication
US10540327B2 (en) 2009-07-08 2020-01-21 Commvault Systems, Inc. Synchronized data deduplication
US9898225B2 (en) 2010-09-30 2018-02-20 Commvault Systems, Inc. Content aligned block-based deduplication
US9239687B2 (en) 2010-09-30 2016-01-19 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
US10126973B2 (en) 2010-09-30 2018-11-13 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
US9639289B2 (en) 2010-09-30 2017-05-02 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
US8577851B2 (en) 2010-09-30 2013-11-05 Commvault Systems, Inc. Content aligned block-based deduplication
US8578109B2 (en) 2010-09-30 2013-11-05 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
US9110602B2 (en) 2010-09-30 2015-08-18 Commvault Systems, Inc. Content aligned block-based deduplication
US9619480B2 (en) 2010-09-30 2017-04-11 Commvault Systems, Inc. Content aligned block-based deduplication
US8572340B2 (en) 2010-09-30 2013-10-29 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
US8954446B2 (en) 2010-12-14 2015-02-10 Comm Vault Systems, Inc. Client-side repository in a networked deduplicated storage system
US11169888B2 (en) 2010-12-14 2021-11-09 Commvault Systems, Inc. Client-side repository in a networked deduplicated storage system
US10740295B2 (en) 2010-12-14 2020-08-11 Commvault Systems, Inc. Distributed deduplicated storage system
US9898478B2 (en) 2010-12-14 2018-02-20 Commvault Systems, Inc. Distributed deduplicated storage system
US11422976B2 (en) 2010-12-14 2022-08-23 Commvault Systems, Inc. Distributed deduplicated storage system
US20120150814A1 (en) * 2010-12-14 2012-06-14 Commvault Systems, Inc. Client-side repository in a networked deduplicated storage system
US9116850B2 (en) * 2010-12-14 2015-08-25 Commvault Systems, Inc. Client-side repository in a networked deduplicated storage system
US9104623B2 (en) 2010-12-14 2015-08-11 Commvault Systems, Inc. Client-side repository in a networked deduplicated storage system
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US10191816B2 (en) 2010-12-14 2019-01-29 Commvault Systems, Inc. Client-side repository in a networked deduplicated storage system
US20130232114A1 (en) * 2012-01-31 2013-09-05 Yahoo! Inc. Probe System For Replication Monitoring
US8886603B2 (en) * 2012-01-31 2014-11-11 Yahoo! Inc. Probe system for replication monitoring
US10387269B2 (en) 2012-06-13 2019-08-20 Commvault Systems, Inc. Dedicated client-side signature generator in a networked storage system
US9858156B2 (en) 2012-06-13 2018-01-02 Commvault Systems, Inc. Dedicated client-side signature generator in a networked storage system
US9218374B2 (en) 2012-06-13 2015-12-22 Commvault Systems, Inc. Collaborative restore in a networked storage system
US10176053B2 (en) 2012-06-13 2019-01-08 Commvault Systems, Inc. Collaborative restore in a networked storage system
US9218375B2 (en) 2012-06-13 2015-12-22 Commvault Systems, Inc. Dedicated client-side signature generator in a networked storage system
US9251186B2 (en) 2012-06-13 2016-02-02 Commvault Systems, Inc. Backup using a client-side signature repository in a networked storage system
US10956275B2 (en) 2012-06-13 2021-03-23 Commvault Systems, Inc. Collaborative restore in a networked storage system
US9218376B2 (en) 2012-06-13 2015-12-22 Commvault Systems, Inc. Intelligent data sourcing in a networked storage system
US9081870B2 (en) 2012-12-05 2015-07-14 Hewlett-Packard Development Company, L.P. Streaming system performance optimization
US11157450B2 (en) 2013-01-11 2021-10-26 Commvault Systems, Inc. High availability distributed deduplicated storage system
US9665591B2 (en) 2013-01-11 2017-05-30 Commvault Systems, Inc. High availability distributed deduplicated storage system
US10229133B2 (en) 2013-01-11 2019-03-12 Commvault Systems, Inc. High availability distributed deduplicated storage system
US9633033B2 (en) 2013-01-11 2017-04-25 Commvault Systems, Inc. High availability distributed deduplicated storage system
US11288267B2 (en) 2013-02-25 2022-03-29 EMC IP Holding Company LLC Pluggable storage system for distributed file systems
US9898475B1 (en) 2013-02-25 2018-02-20 EMC IP Holding Company LLC Tiering with pluggable storage system for parallel query engines
US11514046B2 (en) 2013-02-25 2022-11-29 EMC IP Holding Company LLC Tiering with pluggable storage system for parallel query engines
US10915528B2 (en) 2013-02-25 2021-02-09 EMC IP Holding Company LLC Pluggable storage system for parallel query engines
US9454548B1 (en) 2013-02-25 2016-09-27 Emc Corporation Pluggable storage system for distributed file systems
US10719510B2 (en) 2013-02-25 2020-07-21 EMC IP Holding Company LLC Tiering with pluggable storage system for parallel query engines
US9984083B1 (en) * 2013-02-25 2018-05-29 EMC IP Holding Company LLC Pluggable storage system for parallel query engines across non-native file systems
US10831709B2 (en) 2013-02-25 2020-11-10 EMC IP Holding Company LLC Pluggable storage system for parallel query engines across non-native file systems
US9805053B1 (en) 2013-02-25 2017-10-31 EMC IP Holding Company LLC Pluggable storage system for parallel query engines
US11188504B2 (en) 2014-03-17 2021-11-30 Commvault Systems, Inc. Managing deletions from a deduplication database
US11119984B2 (en) 2014-03-17 2021-09-14 Commvault Systems, Inc. Managing deletions from a deduplication database
US9633056B2 (en) 2014-03-17 2017-04-25 Commvault Systems, Inc. Maintaining a deduplication database
US10445293B2 (en) 2014-03-17 2019-10-15 Commvault Systems, Inc. Managing deletions from a deduplication database
US10380072B2 (en) 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
US11416341B2 (en) 2014-08-06 2022-08-16 Commvault Systems, Inc. Systems and methods to reduce application downtime during a restore operation using a pseudo-storage device
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US10474638B2 (en) 2014-10-29 2019-11-12 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US9575673B2 (en) 2014-10-29 2017-02-21 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US9934238B2 (en) 2014-10-29 2018-04-03 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US11113246B2 (en) 2014-10-29 2021-09-07 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US11921675B2 (en) 2014-10-29 2024-03-05 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US11301420B2 (en) 2015-04-09 2022-04-12 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US10481825B2 (en) 2015-05-26 2019-11-19 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US10481824B2 (en) 2015-05-26 2019-11-19 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US10481826B2 (en) 2015-05-26 2019-11-19 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US11733877B2 (en) 2015-07-22 2023-08-22 Commvault Systems, Inc. Restore for block-level backups
US11314424B2 (en) 2015-07-22 2022-04-26 Commvault Systems, Inc. Restore for block-level backups
US10255143B2 (en) 2015-12-30 2019-04-09 Commvault Systems, Inc. Deduplication replication in a distributed deduplication data storage system
US10310953B2 (en) 2015-12-30 2019-06-04 Commvault Systems, Inc. System for redirecting requests after a secondary storage computing device failure
US10061663B2 (en) 2015-12-30 2018-08-28 Commvault Systems, Inc. Rebuilding deduplication data in a distributed deduplication data storage system
US10592357B2 (en) 2015-12-30 2020-03-17 Commvault Systems, Inc. Distributed file system in a distributed deduplication data storage system
US10877856B2 (en) 2015-12-30 2020-12-29 Commvault Systems, Inc. System for redirecting requests after a secondary storage computing device failure
US10956286B2 (en) 2015-12-30 2021-03-23 Commvault Systems, Inc. Deduplication replication in a distributed deduplication data storage system
US11436038B2 (en) 2016-03-09 2022-09-06 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block- level pseudo-mount)
US11314458B2 (en) 2016-05-16 2022-04-26 Commvault Systems, Inc. Global de-duplication of virtual disks in a storage platform
US10795577B2 (en) 2016-05-16 2020-10-06 Commvault Systems, Inc. De-duplication of client-side data cache for virtual disks
US10846024B2 (en) 2016-05-16 2020-11-24 Commvault Systems, Inc. Global de-duplication of virtual disks in a storage platform
US11733930B2 (en) 2016-05-16 2023-08-22 Commvault Systems, Inc. Global de-duplication of virtual disks in a storage platform
US10331668B1 (en) * 2016-07-19 2019-06-25 Arcadia Data Inc. Apparatus and method for query processing using analytical view partitions and database partitions
US11321195B2 (en) 2017-02-27 2022-05-03 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US11294768B2 (en) 2017-06-14 2022-04-05 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
US11010258B2 (en) 2018-11-27 2021-05-18 Commvault Systems, Inc. Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication
US11681587B2 (en) 2018-11-27 2023-06-20 Commvault Systems, Inc. Generating copies through interoperability between a data storage management system and appliances for data storage and deduplication
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
US11829251B2 (en) 2019-04-10 2023-11-28 Commvault Systems, Inc. Restore using deduplicated secondary copy data
US11463264B2 (en) 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
US11442896B2 (en) 2019-12-04 2022-09-13 Commvault Systems, Inc. Systems and methods for optimizing restoration of deduplicated data stored in cloud-based storage resources
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management
US11789786B2 (en) 2021-03-31 2023-10-17 Bank Of America Corporation Optimizing distributed and parallelized batch data processing
US11874817B2 (en) 2021-03-31 2024-01-16 Bank Of America Corporation Optimizing distributed and parallelized batch data processing
US11474881B1 (en) 2021-03-31 2022-10-18 Bank Of America Corporation Optimizing distributed and parallelized batch data processing

Also Published As

Publication number Publication date
US20080086469A1 (en) 2008-04-10

Similar Documents

Publication Publication Date Title
US7720841B2 (en) Model-based self-optimizing distributed information management
US7890620B2 (en) Monitoring system and monitoring method
US10055262B1 (en) Distributed load balancing with imperfect workload information
US7739331B2 (en) Method and apparatus for providing load diffusion in data stream correlations
US10108411B2 (en) Systems and methods of constructing a network topology
US7502971B2 (en) Determining a recurrent problem of a computer resource using signatures
US20200084085A1 (en) Network Event Grouping
Rabkin et al. Aggregation and Degradation in {JetStream}: Streaming Analytics in the Wide Area
US6564174B1 (en) Enterprise management system and method which indicates chaotic behavior in system resource usage for more accurate modeling and prediction
US8140791B1 (en) Techniques for backing up distributed data
Werstein et al. Load balancing in a cluster computer
US20020124078A1 (en) System for self-monitoring of SNMP data collection process
US7681087B2 (en) Apparatus and method for persistent report serving
US20080082628A1 (en) Scalable Query Infrastructure
US10346756B2 (en) Machine discovery and rapid agglomeration of similar states
CN111459617A (en) Containerized application automatic allocation optimization system and method based on cloud platform
US20160253402A1 (en) Adaptive data repartitioning and adaptive data replication
CN112988398A (en) Micro-service dynamic scaling and migration method and device
CN114268640A (en) Intelligent routing system of industrial Internet of things with cloud edge cooperation
US8843620B2 (en) Monitoring connections
Kolomvatsos et al. Proactive & time-optimized data synopsis management at the edge
US9367418B2 (en) Application monitoring
CN114116172A (en) Flow data acquisition method, device, equipment and storage medium
Liang et al. Self-configuring information management for large-scale service overlays
Bulut et al. Optimization techniques for reactive network monitoring

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GU, XIAOHUI;YU, PHILIP S.;CHANG, SHU-PING;REEL/FRAME:018346/0282

Effective date: 20060929

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION,NEW YO

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GU, XIAOHUI;YU, PHILIP S.;CHANG, SHU-PING;REEL/FRAME:018346/0282

Effective date: 20060929

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

REMI Maintenance fee reminder mailed
FPAY Fee payment

Year of fee payment: 4

SULP Surcharge for late payment
FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.)

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.)

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20180518