US20130110575A1 - Finding optimum combined plans among multiple sharing arrangements and multiple data sources and consumers - Google Patents
Finding optimum combined plans among multiple sharing arrangements and multiple data sources and consumers Download PDFInfo
- Publication number
- US20130110575A1 US20130110575A1 US13/666,544 US201213666544A US2013110575A1 US 20130110575 A1 US20130110575 A1 US 20130110575A1 US 201213666544 A US201213666544 A US 201213666544A US 2013110575 A1 US2013110575 A1 US 2013110575A1
- Authority
- US
- United States
- Prior art keywords
- sharing
- plan
- plans
- admissible
- arrangements
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000009428 plumbing Methods 0.000 claims abstract description 34
- 238000000034 method Methods 0.000 claims abstract description 20
- 230000008901 benefit Effects 0.000 claims description 4
- 230000015654 memory Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/101—Collaborative creation, e.g. joint development of products or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
Definitions
- the present invention relates to data sharing and, more specifically, to the generation and optimization of data sharing among multiple data sources and consumers.
- the ability to share data among a number of different applications is a desired feature for businesses for many reasons, such as increased organizational efficiency, targeted advertising, rich user experience though data enrichment, etc.
- the different applications may be hosted on the cloud, where shared data and the cloud service provider provide computing resources to those applications to provide seamless data sharing.
- executing a sharing plan incurs a cost due to the use of infrastructure resources, which is paid by the provider.
- a consumer may require a certain level of data freshness, which is described as a service level agreement (SLA).
- SLA service level agreement
- providers seek to find sharing plans that minimize cost while satisfying consumer SLAs.
- a method for data sharing includes generating at least one sharing plan with a cheapest cost and/or a shortest execution time for one or more sharing arrangements. Admissibility of the one or more sharing arrangements is determined such that a critical time path of the at least one sharing plan does not exceed a staleness level and a cost of the at least one sharing plan does not exceed a capacity. Sharing plans of admissible sharing arrangements are executed while maintaining the staleness level.
- a system for data sharing includes a generation module configured to generate at least one sharing plan with a cheapest cost and/or a shortest execution time for one or more sharing arrangements.
- the generation module is further configured to determine admissibility of the one or more sharing arrangements such that a critical time path of the at least one sharing plan does not exceed a staleness level and a cost of the at least one sharing plan does not exceed a capacity.
- a sharing executor module is configured to execute sharing plans of admissible sharing arrangements while maintaining the staleness level.
- a method for data sharing includes merging sharing plans of admissible sharing arrangements to provide a merged sharing plan.
- a set of all possible plumbings is determined for the merged sharing plan.
- a plumbing with a maximum profit is iteratively applied to the merged sharing plan for each plumbing of the set such that a staleness level is maintained to provide an optimized sharing plan.
- a system for data sharing includes a merging module configured to merge sharing plans of admissible sharing arrangements to provide a merged sharing plan.
- the merging module is further configured to determine a set of all possible plumbings for the merged sharing plan.
- the merging module is further configured to iteratively apply a plumbing with a maximum profit to the merged sharing plan for each plumbing of the set such that a staleness level is maintained to provide an optimized sharing plan.
- FIG. 1A is a block/flow diagram showing a system/method of data sharing among multiple data sources and consumers in accordance with one embodiment
- FIG. 2A is a block/flow diagram showing a method for generation and optimization of data sharing among multiple data sources and consumers in accordance with one embodiment
- FIG. 3A is a block/flow diagram showing a method for determining optimum combined plans among multiple sharing arrangements in accordance with one embodiment.
- systems and methods for the generation and optimization of data sharing among multiple data sources and consumers are provided. For each sharing arrangement in a set of sharing arrangements, a sharing plan with a cheapest dollar cost is generated. It is then determined whether that particular sharing arrangement is admissible. The sharing arrangement is admissible where a critical time path of the sharing plan with the cheapest dollar cost does not exceed a staleness level (e.g., service level agreement) and a cost of the sharing plan with the cheapest dollar cost does not exceed a capacity.
- a staleness level e.g., service level agreement
- Sharing plans for admitted sharing arrangements may be provided to a sharing executor.
- multiple sharing plans may be executed simultaneously.
- the sharing plans for admitted sharing arrangements may be optimized before being provided to the sharing executor.
- the sharing plans are first merged to create a merged sharing plan.
- a set of all possible plumbings that may be performed on the merged sharing plan is determined.
- the plumbing in the set with the maximum profit is iteratively applied to the merged sharing plan for each plumbing in the set.
- the optimized sharing plan may be provided to the sharing executor.
- Embodiments described herein may be entirely hardware, entirely software or including both hardware and software elements.
- the present invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
- Embodiments may include a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system.
- a computer-usable or computer readable medium may include any apparatus that stores, communicates, propagates, or transports the program for use by or in connection with the instruction execution system, apparatus, or device.
- the medium can be magnetic, optical, electronic, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium.
- the medium may include a computer-readable storage medium such as a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk, etc.
- a data processing system suitable for storing and/or executing program code may include at least one processor coupled directly or indirectly to memory elements through a system bus.
- the memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code to reduce the number of times code is retrieved from bulk storage during execution.
- I/O devices including but not limited to keyboards, displays, pointing devices, etc. may be coupled to the system either directly or through intervening I/O controllers.
- Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks.
- Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
- FIG. 1A a block/flow diagram showing a system for data sharing among multiple data sources and consumers 100 is illustratively depicted in accordance with one embodiment.
- the data sharing system 102 preferably includes one or more processors 106 and memory 104 for storing programs and applications. It should be understood that the functions and components of the system 102 may be integrated into one or more systems.
- the system 102 may include a display 108 for viewing.
- the display 108 may also permit a user to interact with the system 102 and its components and functions. This may be further facilitated by a user interface 110 , which may include a keyboard, mouse, joystick, or any other peripheral or control to permit user interaction with the system 102 .
- Data sharing system 102 receives input 120 , which includes a set of sharing arrangements 122 .
- Memory 104 includes sharing optimizer module 112 , which includes generation module 114 .
- the generation module 114 is configured to generate several different sharing plans that implement the sharing arrangement.
- the goal of the sharing optimizer module 112 is to produce a sharing plan that is admissible, has a low cost to setup, and can be maintained by the system at the desired level of staleness. Sharing plans are preferably expressed in terms of vertices and edges forming a directed acyclic graph (DAG).
- DAG directed acyclic graph
- the generation module 114 is configured to generate a sharing plan with the cheapest dollar cost.
- the cost of a sharing plan is computed as the amount of machine, network, and disk capacity consumed per second to keep the sharing arrangement at the desired staleness level.
- the cost may be expressed as the sum of a static cost, which represents an initial investment to set up derived relations, and a dynamic cost, which represents the expense incurred to move tuples through the edges of a sharing plan.
- the static cost of a sharing plan is converted to dollars per second by dividing each cost component (e.g., machine, network, disk, etc.) by a recoup constant (e.g. per hour, per month, per gigabyte, etc.).
- the dynamic cost is computed in terms of the number of tuples stored, moved across the network and the machine capacity consumed in generating and moving the tuples per second through the edges in the sharing plan.
- the generation module 114 determines whether the sharing arrangement for the sharing plan with the cheapest dollar cost is admissible.
- the admissibility forms a hard constraint in that the sharing generation module 114 should not admit a sharing arrangement that cannot be handled by the system 102 .
- sharing plans that have a critical time path greater than the staleness cannot be maintained by the system 102 at the desired staleness level and are therefore not admissible.
- the critical time path represents the longest path in terms of time taken to push tuples from source vertices of the sharing plan to the destination vertex.
- a sharing plan exceeds the capacity of a machine by virtue of placing too many vertices and edge on it, it is also not admissible.
- the generation module 114 moves on to the next sharing arrangement in the set of sharing arrangements 122 . If the sharing plan with the cheapest dollar cost is not admissible, the generation module 114 generates a sharing plan with the smallest time path for that sharing arrangement. In some embodiments, a user may choose whether to generate a sharing plan with a cheapest dollar cost or a sharing plan with the smallest time path. The smallest time path is determined based on the critical time path.
- the generation module 114 moves on to the next sharing arrangement in the set of sharing arrangements 122 . If the sharing arrangement for the sharing plan with the smallest time path is not admissible, the sharing arrangement is rejected and the generation module 114 moves on to the next sharing arrangement of the set 122 . Rejected sharing arrangements may involve further negotiation with the consumer. The generation module 114 thus provides sharing plans for admitted sharing arrangements.
- sharing optimizer module 112 may also include merging module 116 configured to merge the set of sharing plans after admittance by taking advantage of the commonalities between sharing arrangements.
- Merging module 116 merges the sharing plans to create a single sharing plan D.
- a set V of all possible plumbings that can be performed in D is determined.
- a plumbing generally refers to the action of providing an alternate yet identical input to an operator using a mechanism that is different from the one currently providing input to it. More specifically, a plumbing determines commonalities between two or more sharing plans and merges the two or more sharing plans, discarding all operators from one or more of the sharing plans prior to the commonality.
- the plumbing operation in V that provides the maximum profit (i.e., maximum benefit-cost) while not violating the staleness SLA of any of the sharing arrangements is performed on the sharing plan D.
- the sharing plan is forwarded to the sharing executor module 118 .
- the merging module 116 iteratively optimizes the commonalities to find a global optimum cost with combined sharing plans.
- Memory 104 also includes sharing executor module 118 .
- the sharing executor module 118 executes D in the most efficient manner to maximize profit (by reducing operating cost) for the provider, while maintaining the desired staleness level.
- the present principles provide low cost of delivering data sharing services for the service providers and SLA guarantees for customers.
- FIG. 2A a block/flow diagram showing a method for generation and optimization of data sharing among multiple data sources and consumers 200 in accordance with one embodiment.
- a set of sharing arrangements S is provided.
- the sharing plan with the cheapest dollar cost is generated in block 206 .
- the cost may include the amount of machine, network, and disk capacity consumed per second to maintain the sharing arrangement at the desired staleness level.
- a sharing arrangement is admissible if, e.g., the cost of its sharing plan does not exceed the capacity of the machine (e.g., cost is not ⁇ ) and the critical time of the sharing plan does not exceed the desired staleness level.
- the critical time represents the longest path in terms of time taken to push tuples from source vertices of the sharing plan to the destination vertex. Other admissibility constraints are also contemplated. If the sharing arrangement for the sharing plan with the cheapest dollar cost is admissible, the method moves on to the next sharing arrangement in S in block 202 .
- the sharing plan with the smallest time path is generated for the sharing arrangement.
- the smallest time path is preferably determined based on the critical time path.
- a user may choose whether to generate a sharing plan with the cheapest dollar cost or a sharing plan with the smallest time path.
- the sharing plans for each sharing arrangement in S has been generated, in block 210 , the sharing plans for the admissible sharing arrangements are provided.
- the sharing plans are forwarded to the sharing executor.
- the sharing executor simultaneously executes the sharing plans.
- the sharing plans for the admissible sharing arrangements in block 210 are combined prior to be sent to the sharing executor, as will be discussed with respect to FIG. 3A .
- FIG. 3A a block/flow diagram showing a method for determining optimum combined plans among multiple sharing arrangements 300 is illustratively depicted in accordance with one embodiment.
- sharing plans for admissible sharing arrangements are provided. Sharing plans for admissible sharing arrangements may be generated as discussed with respect to FIG. 2A . Other methods of sharing plan generation are also contemplated.
- the sharing plans for admissible sharing arrangements are merged to create a single sharing plan D.
- a set V of all possible plumbings that can be performed in D is computed. Plumbings combine vertices belonging to different sharing arrangements so that rather than retaining two separate sets of vertices and edges, a merged set is provided. Plumbings may include, e.g., copy plumbing and join plumbing. Other types of plumbings are also contemplated.
- block 308 it is determined whether the set of possible plumbings V is empty. If the set V is not empty, in block 310 , the plumbing in V with the maximum profit is performed (e.g., maximum benefit-cost). In block 312 , the plumbing is performed in the merged sharing plan D. In block 314 , D is appropriately fixed by merging the commonality and discarding operators of one or more sharing plans. The method then returns to block 306 until the set of all possible plumbings V is empty in block 308 .
- the plumbing in V with the maximum profit is performed (e.g., maximum benefit-cost).
- the plumbing is performed in the merged sharing plan D.
- D is appropriately fixed by merging the commonality and discarding operators of one or more sharing plans. The method then returns to block 306 until the set of all possible plumbings V is empty in block 308 .
- the sharing plan is forwarded to the sharing executor in block 316 .
- the present principles iteratively optimize the defined commonalities to find a global optimum cost with combined sharing plans.
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Systems and methods for data sharing include merging sharing plans of admissible sharing arrangements to provide a merged sharing plan. A set of all possible plumbings are determined for the merged sharing plan. A plumbing with a maximum profit is iteratively applied, using a processor, to the merged sharing plan for each plumbing of the set such that a staleness level is maintained to provide an optimized sharing plan.
Description
- This application claims priority to provisional application Ser. No. 61/554,157 filed on Nov. 1, 2011, incorporated herein by reference in its entirety.
- This application is related to commonly assigned U.S. application Ser. No. ______, entitled “GENERATION AND OPTIMIZATION OF DATA SHARING AMONG MULTIPLE DATA SOURCES AND CONSUMERS,” Attorney Docket Number 11067A (449-255), filed concurrently herewith, which is incorporated by reference herein in its entirety.
- 1. Technical Field
- The present invention relates to data sharing and, more specifically, to the generation and optimization of data sharing among multiple data sources and consumers.
- 2. Description of the Related Art
- The ability to share data among a number of different applications is a desired feature for businesses for many reasons, such as increased organizational efficiency, targeted advertising, rich user experience though data enrichment, etc. The different applications may be hosted on the cloud, where shared data and the cloud service provider provide computing resources to those applications to provide seamless data sharing. There may be a large number of sharing agreements among the data sources, who provide the data, and the consumers, who pay for the data. Each of these agreements may be described as a sharing plan. In this setting, executing a sharing plan incurs a cost due to the use of infrastructure resources, which is paid by the provider. Also, a consumer may require a certain level of data freshness, which is described as a service level agreement (SLA). As such, providers seek to find sharing plans that minimize cost while satisfying consumer SLAs.
- A method for data sharing includes generating at least one sharing plan with a cheapest cost and/or a shortest execution time for one or more sharing arrangements. Admissibility of the one or more sharing arrangements is determined such that a critical time path of the at least one sharing plan does not exceed a staleness level and a cost of the at least one sharing plan does not exceed a capacity. Sharing plans of admissible sharing arrangements are executed while maintaining the staleness level.
- A system for data sharing includes a generation module configured to generate at least one sharing plan with a cheapest cost and/or a shortest execution time for one or more sharing arrangements. The generation module is further configured to determine admissibility of the one or more sharing arrangements such that a critical time path of the at least one sharing plan does not exceed a staleness level and a cost of the at least one sharing plan does not exceed a capacity. A sharing executor module is configured to execute sharing plans of admissible sharing arrangements while maintaining the staleness level.
- A method for data sharing includes merging sharing plans of admissible sharing arrangements to provide a merged sharing plan. A set of all possible plumbings is determined for the merged sharing plan. A plumbing with a maximum profit is iteratively applied to the merged sharing plan for each plumbing of the set such that a staleness level is maintained to provide an optimized sharing plan.
- A system for data sharing includes a merging module configured to merge sharing plans of admissible sharing arrangements to provide a merged sharing plan. The merging module is further configured to determine a set of all possible plumbings for the merged sharing plan. The merging module is further configured to iteratively apply a plumbing with a maximum profit to the merged sharing plan for each plumbing of the set such that a staleness level is maintained to provide an optimized sharing plan.
- These and other features and advantages will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.
- The disclosure will provide details in the following description of preferred embodiments with reference to the following figures wherein:
-
FIG. 1A is a block/flow diagram showing a system/method of data sharing among multiple data sources and consumers in accordance with one embodiment; -
FIG. 2A is a block/flow diagram showing a method for generation and optimization of data sharing among multiple data sources and consumers in accordance with one embodiment; and -
FIG. 3A is a block/flow diagram showing a method for determining optimum combined plans among multiple sharing arrangements in accordance with one embodiment. - In accordance with the present principles, systems and methods for the generation and optimization of data sharing among multiple data sources and consumers are provided. For each sharing arrangement in a set of sharing arrangements, a sharing plan with a cheapest dollar cost is generated. It is then determined whether that particular sharing arrangement is admissible. The sharing arrangement is admissible where a critical time path of the sharing plan with the cheapest dollar cost does not exceed a staleness level (e.g., service level agreement) and a cost of the sharing plan with the cheapest dollar cost does not exceed a capacity.
- If the sharing arrangement for the sharing plan with the cheapest dollar cost is not admissible, a sharing plan with a smallest time path is generated. It is determined whether the sharing arrangement for the sharing plan with the smallest time path is admissible. If it is not admissible, the sharing arrangement is rejected. Sharing plans for admitted sharing arrangements may be provided to a sharing executor. Advantageously, multiple sharing plans may be executed simultaneously.
- In one embodiment, the sharing plans for admitted sharing arrangements may be optimized before being provided to the sharing executor. The sharing plans are first merged to create a merged sharing plan. A set of all possible plumbings that may be performed on the merged sharing plan is determined. The plumbing in the set with the maximum profit is iteratively applied to the merged sharing plan for each plumbing in the set. The optimized sharing plan may be provided to the sharing executor.
- Embodiments described herein may be entirely hardware, entirely software or including both hardware and software elements. In a preferred embodiment, the present invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
- Embodiments may include a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. A computer-usable or computer readable medium may include any apparatus that stores, communicates, propagates, or transports the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be magnetic, optical, electronic, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. The medium may include a computer-readable storage medium such as a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk, etc.
- A data processing system suitable for storing and/or executing program code may include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code to reduce the number of times code is retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) may be coupled to the system either directly or through intervening I/O controllers.
- Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
- Referring now to the drawings in which like numerals represent the same or similar elements and initially to
FIG. 1A , a block/flow diagram showing a system for data sharing among multiple data sources andconsumers 100 is illustratively depicted in accordance with one embodiment. The data sharing system 102 preferably includes one ormore processors 106 andmemory 104 for storing programs and applications. It should be understood that the functions and components of the system 102 may be integrated into one or more systems. - The system 102 may include a
display 108 for viewing. Thedisplay 108 may also permit a user to interact with the system 102 and its components and functions. This may be further facilitated by a user interface 110, which may include a keyboard, mouse, joystick, or any other peripheral or control to permit user interaction with the system 102. - Data sharing system 102 receives
input 120, which includes a set of sharingarrangements 122.Memory 104 includes sharingoptimizer module 112, which includesgeneration module 114. For each sharing arrangement of the set of sharingarrangements 122, thegeneration module 114 is configured to generate several different sharing plans that implement the sharing arrangement. The goal of the sharingoptimizer module 112 is to produce a sharing plan that is admissible, has a low cost to setup, and can be maintained by the system at the desired level of staleness. Sharing plans are preferably expressed in terms of vertices and edges forming a directed acyclic graph (DAG). - For each sharing arrangement in a set of sharing
arrangements 122, thegeneration module 114 is configured to generate a sharing plan with the cheapest dollar cost. The cost of a sharing plan, expressed in dollars per second, is computed as the amount of machine, network, and disk capacity consumed per second to keep the sharing arrangement at the desired staleness level. The cost may be expressed as the sum of a static cost, which represents an initial investment to set up derived relations, and a dynamic cost, which represents the expense incurred to move tuples through the edges of a sharing plan. The static cost of a sharing plan is converted to dollars per second by dividing each cost component (e.g., machine, network, disk, etc.) by a recoup constant (e.g. per hour, per month, per gigabyte, etc.). The dynamic cost is computed in terms of the number of tuples stored, moved across the network and the machine capacity consumed in generating and moving the tuples per second through the edges in the sharing plan. - The
generation module 114 then determines whether the sharing arrangement for the sharing plan with the cheapest dollar cost is admissible. The admissibility forms a hard constraint in that thesharing generation module 114 should not admit a sharing arrangement that cannot be handled by the system 102. Thus, sharing plans that have a critical time path greater than the staleness cannot be maintained by the system 102 at the desired staleness level and are therefore not admissible. The critical time path represents the longest path in terms of time taken to push tuples from source vertices of the sharing plan to the destination vertex. Similarly, if a sharing plan exceeds the capacity of a machine by virtue of placing too many vertices and edge on it, it is also not admissible. - If the sharing arrangement for the sharing plan with the cheapest dollar cost is admissible, the
generation module 114 moves on to the next sharing arrangement in the set of sharingarrangements 122. If the sharing plan with the cheapest dollar cost is not admissible, thegeneration module 114 generates a sharing plan with the smallest time path for that sharing arrangement. In some embodiments, a user may choose whether to generate a sharing plan with a cheapest dollar cost or a sharing plan with the smallest time path. The smallest time path is determined based on the critical time path. - If the sharing arrangement for the sharing plan with the smallest time path is admissible, then the
generation module 114 moves on to the next sharing arrangement in the set of sharingarrangements 122. If the sharing arrangement for the sharing plan with the smallest time path is not admissible, the sharing arrangement is rejected and thegeneration module 114 moves on to the next sharing arrangement of theset 122. Rejected sharing arrangements may involve further negotiation with the consumer. Thegeneration module 114 thus provides sharing plans for admitted sharing arrangements. - In one embodiment, sharing
optimizer module 112 may also include mergingmodule 116 configured to merge the set of sharing plans after admittance by taking advantage of the commonalities between sharing arrangements. Mergingmodule 116 merges the sharing plans to create a single sharing plan D. A set V of all possible plumbings that can be performed in D is determined. A plumbing generally refers to the action of providing an alternate yet identical input to an operator using a mechanism that is different from the one currently providing input to it. More specifically, a plumbing determines commonalities between two or more sharing plans and merges the two or more sharing plans, discarding all operators from one or more of the sharing plans prior to the commonality. - The plumbing operation in V that provides the maximum profit (i.e., maximum benefit-cost) while not violating the staleness SLA of any of the sharing arrangements is performed on the sharing plan D. When no more plumbing operations in the set V can be applied to D, the sharing plan is forwarded to the sharing
executor module 118. Advantageously, the mergingmodule 116 iteratively optimizes the commonalities to find a global optimum cost with combined sharing plans. -
Memory 104 also includes sharingexecutor module 118. For the set S of sharing arrangements and the sharing plan D produced by the mergingmodule 116, the sharingexecutor module 118 executes D in the most efficient manner to maximize profit (by reducing operating cost) for the provider, while maintaining the desired staleness level. The present principles provide low cost of delivering data sharing services for the service providers and SLA guarantees for customers. - Referring now to
FIG. 2A , a block/flow diagram showing a method for generation and optimization of data sharing among multiple data sources andconsumers 200 in accordance with one embodiment. Inblock 202, a set of sharing arrangements S is provided. Inblock 204, for each sharing arrangement in the set S, the sharing plan with the cheapest dollar cost is generated in block 206. The cost may include the amount of machine, network, and disk capacity consumed per second to maintain the sharing arrangement at the desired staleness level. - In
block 208, it is determined whether the sharing arrangement for the sharing plan with the cheapest dollar cost is admissible. A sharing arrangement is admissible if, e.g., the cost of its sharing plan does not exceed the capacity of the machine (e.g., cost is not ∞) and the critical time of the sharing plan does not exceed the desired staleness level. The critical time represents the longest path in terms of time taken to push tuples from source vertices of the sharing plan to the destination vertex. Other admissibility constraints are also contemplated. If the sharing arrangement for the sharing plan with the cheapest dollar cost is admissible, the method moves on to the next sharing arrangement in S inblock 202. - If the sharing arrangement for the sharing plan with the cheapest dollar cost is not admissible, in
block 212, the sharing plan with the smallest time path is generated for the sharing arrangement. The smallest time path is preferably determined based on the critical time path. In block 124, it is determined whether the sharing arrangement for the sharing plan with the smallest time path is admissible. If the sharing arrangement for the sharing plan with the smallest time path is admissible, the method moves on to the next sharing arrangement in S inblock 202. If the sharing arrangement for the sharing plan with the smallest time path is not admissible, inblock 216, the sharing arrangement is rejected and the method moves on to the next sharing arrangement in S. In some embodiments, a user may choose whether to generate a sharing plan with the cheapest dollar cost or a sharing plan with the smallest time path. - Once sharing plans for each sharing arrangement in S has been generated, in
block 210, the sharing plans for the admissible sharing arrangements are provided. Inblock 218, the sharing plans are forwarded to the sharing executor. Preferably, the sharing executor simultaneously executes the sharing plans. In other embodiment, the sharing plans for the admissible sharing arrangements inblock 210 are combined prior to be sent to the sharing executor, as will be discussed with respect toFIG. 3A . - Referring now to
FIG. 3A , a block/flow diagram showing a method for determining optimum combined plans among multiple sharingarrangements 300 is illustratively depicted in accordance with one embodiment. Inblock 302, sharing plans for admissible sharing arrangements are provided. Sharing plans for admissible sharing arrangements may be generated as discussed with respect toFIG. 2A . Other methods of sharing plan generation are also contemplated. Inblock 304, the sharing plans for admissible sharing arrangements are merged to create a single sharing plan D. Inblock 306, a set V of all possible plumbings that can be performed in D is computed. Plumbings combine vertices belonging to different sharing arrangements so that rather than retaining two separate sets of vertices and edges, a merged set is provided. Plumbings may include, e.g., copy plumbing and join plumbing. Other types of plumbings are also contemplated. - In
block 308, it is determined whether the set of possible plumbings V is empty. If the set V is not empty, inblock 310, the plumbing in V with the maximum profit is performed (e.g., maximum benefit-cost). Inblock 312, the plumbing is performed in the merged sharing plan D. Inblock 314, D is appropriately fixed by merging the commonality and discarding operators of one or more sharing plans. The method then returns to block 306 until the set of all possible plumbings V is empty inblock 308. - Once the set of all possible plumbings V is empty, the sharing plan is forwarded to the sharing executor in
block 316. Advantageously, the present principles iteratively optimize the defined commonalities to find a global optimum cost with combined sharing plans. - Having described preferred embodiments of a system and method for finding optimum combined plans among multiple sharing arrangements and multiple data sources and consumers (which are intended to be illustrative and not limiting), it is noted that modifications and variations can be made by persons skilled in the art in light of the above teachings. It is therefore to be understood that changes may be made in the particular embodiments disclosed which are within the scope of the invention as outlined by the appended claims. Additional information is provided in Appendix A to the application. Having thus described aspects of the invention, with the details and particularity required by the patent laws, what is claimed and desired protected by Letters Patent is set forth in the appended claims.
Claims (10)
1. A method for data sharing, comprising:
merging sharing plans of admissible sharing arrangements to provide a merged sharing plan;
determining a set of all possible plumbings for the merged sharing plan; and
iteratively applying a plumbing with a maximum profit, using a processor, to the merged sharing plan for each plumbing of the set such that a staleness level is maintained to provide an optimized sharing plan.
2. The method as recited in claim 1 , wherein the maximum profit includes a maximum difference between a benefit and a cost.
3. The method as recited in claim 1 , wherein the sharing plans of admissible sharing arrangements include a critical time path that does not exceed a staleness level and a cost that does not exceed a capacity.
4. The method as recited in claim 1 , wherein merging sharing plans of admissible sharing arrangements includes identifying commonalities between sharing plans of admissible sharing arrangements.
5. The method as recited in claim 1 , wherein merging sharing plans of admissible sharing arrangements includes replacing vertices and edges performing similar operations of two or more different sharing plans with a common set.
6. A system for data sharing, comprising:
a merging module configured to merge sharing plans of admissible sharing arrangements to provide a merged sharing plan;
the merging module further configured to determine a set of all possible plumbings for the merged sharing plan; and
the merging module further configured to iteratively apply a plumbing with a maximum profit, using a processor, to the merged sharing plan for each plumbing of the set such that a staleness level is maintained to provide an optimized sharing plan.
7. The system as recited in claim 6 , wherein the maximum profit includes a maximum difference between a benefit and a cost.
8. The system as recited in claim 6 , wherein the sharing plans of admissible sharing arrangements include a critical time path that does not exceed a staleness level and a cost that does not exceed a capacity.
9. The system as recited in claim 6 , wherein the merging module is further configured to identify commonalities between sharing plans of admissible sharing arrangements.
10. The system as recited in claim 6 , wherein the merging module is further configured to replace vertices and edges performing similar operations of two or more different sharing plans with a common set.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/666,544 US20130110575A1 (en) | 2011-11-01 | 2012-11-01 | Finding optimum combined plans among multiple sharing arrangements and multiple data sources and consumers |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161554157P | 2011-11-01 | 2011-11-01 | |
US13/666,544 US20130110575A1 (en) | 2011-11-01 | 2012-11-01 | Finding optimum combined plans among multiple sharing arrangements and multiple data sources and consumers |
Publications (1)
Publication Number | Publication Date |
---|---|
US20130110575A1 true US20130110575A1 (en) | 2013-05-02 |
Family
ID=48173329
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/666,438 Expired - Fee Related US8825506B2 (en) | 2011-11-01 | 2012-11-01 | Generation and optimization of data sharing among multiple data sources and consumers |
US13/666,544 Abandoned US20130110575A1 (en) | 2011-11-01 | 2012-11-01 | Finding optimum combined plans among multiple sharing arrangements and multiple data sources and consumers |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/666,438 Expired - Fee Related US8825506B2 (en) | 2011-11-01 | 2012-11-01 | Generation and optimization of data sharing among multiple data sources and consumers |
Country Status (1)
Country | Link |
---|---|
US (2) | US8825506B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10776846B2 (en) * | 2016-07-27 | 2020-09-15 | Nike, Inc. | Assortment optimization |
US20230214901A1 (en) * | 2022-01-06 | 2023-07-06 | Sap Se | System and method to recommend cloud service |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060026117A1 (en) * | 2004-07-30 | 2006-02-02 | Vijayshankar Raman | Microeconomic mechanism for distributed indexing |
US20100312873A1 (en) * | 2009-06-03 | 2010-12-09 | Microsoft Corporation | Determining server utilization |
US20110225312A1 (en) * | 2010-03-10 | 2011-09-15 | Thomson Licensing | Unified cache and peer-to-peer method and apparatus for streaming media in wireless mesh networks |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6922685B2 (en) * | 2000-05-22 | 2005-07-26 | Mci, Inc. | Method and system for managing partitioned data resources |
US6418510B1 (en) * | 2000-09-14 | 2002-07-09 | International Business Machines Corporation | Cooperative cache and rotational positioning optimization (RPO) scheme for a direct access storage device (DASD) |
US7284030B2 (en) * | 2002-09-16 | 2007-10-16 | Network Appliance, Inc. | Apparatus and method for processing data in a network |
US20110213712A1 (en) * | 2010-02-26 | 2011-09-01 | Computer Associates Think, Ink. | Cloud Broker and Procurement System and Method |
US20120284383A1 (en) * | 2011-05-06 | 2012-11-08 | International Business Machines Corporation | Cloud workload management with automated workload bidding |
US8676981B2 (en) * | 2011-05-12 | 2014-03-18 | International Business Machines Corporation | Routing service requests based on lowest actual cost within a federated virtual service cloud |
-
2012
- 2012-11-01 US US13/666,438 patent/US8825506B2/en not_active Expired - Fee Related
- 2012-11-01 US US13/666,544 patent/US20130110575A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060026117A1 (en) * | 2004-07-30 | 2006-02-02 | Vijayshankar Raman | Microeconomic mechanism for distributed indexing |
US20100312873A1 (en) * | 2009-06-03 | 2010-12-09 | Microsoft Corporation | Determining server utilization |
US20110225312A1 (en) * | 2010-03-10 | 2011-09-15 | Thomson Licensing | Unified cache and peer-to-peer method and apparatus for streaming media in wireless mesh networks |
Non-Patent Citations (1)
Title |
---|
Zhang et al., "Secure Cooperative Cache Based Data Access in Ad Hoc Networks, "NSF Intercational Workshop on Theoretical and Algorithmic Aspects of Wireless Ad Hoc, Sensor, and Peer-to-Peer Networks, pp. 11-16, June 2004 * |
Also Published As
Publication number | Publication date |
---|---|
US20130110574A1 (en) | 2013-05-02 |
US8825506B2 (en) | 2014-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11847494B2 (en) | Allocating computing resources based on user intent | |
US8856333B2 (en) | Datacenter execution templates | |
US11816616B2 (en) | Workflow scheduling and optimization tools | |
US10726027B2 (en) | Cognitive elasticity of cloud applications | |
US10205601B2 (en) | Message broadcasting in a clustered computing environment | |
US20140122374A1 (en) | Cost exploration of data sharing in the cloud | |
US9015169B2 (en) | Tenant placement in multitenant cloud databases with data sharing | |
US20120310765A1 (en) | Automated cost assessment of cloud computing resources | |
US9253048B2 (en) | Releasing computing infrastructure components in a networked computing environment | |
US20230161629A1 (en) | Optimizer agnostic explanation system for large scale schedules | |
US20160019480A1 (en) | Prioritizing business capability gaps | |
US10528965B2 (en) | Bundling application programming interfaces | |
US20170352009A1 (en) | Method for assigning time windows for Vehicle Routing problem | |
US8370422B2 (en) | Establishing common interest negotiation links between consumers and suppliers to facilitate solving a resource allocation problem | |
US20130110575A1 (en) | Finding optimum combined plans among multiple sharing arrangements and multiple data sources and consumers | |
Lisanti et al. | IT service and risk management implementation for online startup SME: Case study: Online startup SME in Jakarta | |
Jung et al. | A workflow scheduling technique for task distribution in spot instance-based cloud | |
US12008399B2 (en) | Optimization for scheduling of batch jobs | |
CN115443642A (en) | Rule distribution across instances of the rules engine | |
CN115484149B (en) | Network switching method, network switching device, electronic equipment and storage medium | |
US20250139561A1 (en) | Sustainable autoscaling workflow | |
US20240427644A1 (en) | Workload management | |
US20150310399A1 (en) | Generation of meeting agenda from team work plan | |
US20120311048A1 (en) | Instant messaging association method and system | |
CN113792901A (en) | Business processing method, device, storage medium and electronic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: NEC LABORATORIES AMERICA INC., NEW JERSEY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SANKARANARAYANAN, JAGAN;HACIGUMUS, VAHIT HAKAN;SARWAT, MOHAMED;AND OTHERS;SIGNING DATES FROM 20121029 TO 20121031;REEL/FRAME:029227/0408 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |