Determining a best fit coordinator node in a database as a service infrastructure

A computer-implemented method for determining a coordinator node in a database as a service (DBaaS) infrastructure includes receiving, via a processor on a receiving node, an application connect request having data request information, where the data request information refers to data stored in the DBaaS infrastructure and includes a predefined priority metric, selecting, via the processor, a candidate node in the DBaaS infrastructure, determining, via the processor, whether the candidate node is overloaded, comparing, via the processor, responsive to determining that the candidate node is not overloaded, the predefined priority metric to at least one predefined node priority, writing, to a memory, a comparison record indicative of a comparison of the predefined priority metric with the at least one predefined node priority in the candidate node, where comparison record is stored in a catalog table, and selecting, via the processor, the candidate node as the coordinator node.

BACKGROUND

The present disclosure relates to cloud database environments, and more specifically, to determining a best fit coordinator node in a database as a service (DBaaS) infrastructure.

Database partitioning and distributing data across a number of physical machines (also called as nodes) is a common practice in online transaction processing (OLTP) and data warehousing environments. Data partitioning ensures that all the available system resources are optimally used by making sure that data is distributed uniformly across the various available machines. In addition, the process of selecting the coordinator node in current systems is decided either by the application (by hard coding in the application) or by a load balancing software operating on the receiving device. Conventional coordinator node selection methods only consider the load on a particular server without taking into consideration the optimal node in the database as a service (DBaaS) environment best equipped to manage a particular application query based on the physical location and characteristic of the data being requested.

SUMMARY

According to an embodiment of the present invention, a computer-implemented method for determining a coordinator node in a database as a service (DBaaS) infrastructure is described. The method may include receiving, via a processor on a receiving node, an application connect request having data request information, where the data request information refers to data stored in the DBaaS infrastructure and includes a predefined priority metric. The method may further include selecting, via the processor, a candidate node in the DBaaS infrastructure, determining, via the processor, whether the candidate node is overloaded, comparing, via the processor, responsive to determining that the candidate node is not overloaded, the predefined priority metric to at least one predefined node priority, and writing, to a memory, a comparison record indicative of a comparison of the predefined priority metric with the at least one predefined node priority in the candidate node. In some aspects the comparison record is stored in a catalog table. The method may further include selecting, via the processor, the candidate node as the coordinator node.

According to other embodiments, a system for determining a coordinator node in a database as a service (DBaaS) infrastructure is described. The system may include a processor configured to receive, on a receiving node, an application connect request having data request information, where the data request information refers to data stored in the DBaaS infrastructure and includes a predefined priority metric. The processor may be further configured to select a candidate node in the DBaaS infrastructure, determine whether the candidate node is overloaded, and compare, responsive to determining that the candidate node is not overloaded, the predefined priority metric to at least one predefined node priority. The processor may also write a comparison record indicative of a comparison of the predefined priority metric with the at least one predefined node priority in the candidate node, where the comparison record is stored in a catalog table, and select the candidate node as the coordinator node.

According to yet other embodiments, a non-transitory computer-readable storage medium is described. The non-transitory storage medium may include program instructions that are executable by a processor to perform a method for determining a coordinator node in a database as a service (DBaaS) infrastructure. The method may include receiving, on a receiving node, an application connect request having data request information, where the data request information refers to data stored in the DBaaS infrastructure and includes a predefined priority metric. The method may further include selecting a candidate node in the DBaaS infrastructure, determining whether the candidate node is overloaded, comparing, responsive to determining that the candidate node is not overloaded, the predefined priority metric to at least one predefined node priority, and writing, to a memory, a comparison record indicative of a comparison of the predefined priority metric with the at least one predefined node priority in the candidate node. In some aspects the comparison record is stored in a catalog table. The method may further include selecting the candidate node as the coordinator node.

DETAILED DESCRIPTION

Characteristics of a Cloud Model:

Broad network access: capabilities are available over a network (e.g., network112, as depicted inFIG. 3) and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

Database as a Service (DBaaS): a cloud-based approach to the storage and management of structured data that delivers database functionality similar to what is found in relational database management systems (RDBMSes) such as, for example, SQL Server, MySQL, and Oracle. DBaaS provides a flexible, scalable, on-demand platform oriented toward self-service and database management, particularly in terms of provisioning a business' own environment. DBaaS systems may include monitoring engines to track performance and usage, error monitoring, and data analysis engines.

Referring now toFIG. 1, a cloud computing environment10for use in practicing the teachings herein is depicted. As shown inFIG. 1, cloud computing environment10comprises one or more cloud computing nodes12with which local computing devices used by cloud consumers, such as, for example, a mobile device14, a desktop computer16, a laptop computer18, and/or an automobile computer system19may communicate. Nodes12may communicate with one another. They may be grouped (not shown) physically or virtually, in one or more networks, such as a Private, Community, Public, or Hybrid clouds as described hereinabove, or a combination thereof. This allows cloud computing environment10to offer infrastructure, platforms and/or software as services for which a cloud consumer does not need to maintain resources on a local computing device. It is understood that the types of computing devices14-19shown inFIG. 1are intended to be illustrative only and that cloud computing nodes12and cloud computing environment10can communicate with any type of computerized device over any type of network and/or network addressable connection (e.g., using a web browser).

Referring now toFIG. 2, a set of functional abstraction layers20provided by cloud computing environment10(as depicted inFIG. 1) is shown. It should be appreciated that the components, layers, and functions of functional abstraction layers20depicted inFIG. 2are illustrative only, and embodiments of the invention are not limited thereto. As depicted, the following layers and corresponding functions are provided:

A hardware and software layer22may include hardware and software components. Examples of hardware components can include, for example, mainframes24, RISC (Reduced Instruction Set Computer) architecture based servers26, servers28, blade servers30, storage devices32, and networks and networking components34. In some embodiments, software components include network application server software36and database software38.

A virtualization layer39may provide an abstraction layer from which the following examples of virtual entities may be provided: virtual servers40, virtual storage42, virtual networks44, which may include virtual private networks, virtual applications and operating systems46, and virtual clients48.

In one example, a management layer50may provide the functions described below. A resource provisioning module52can provide dynamic procurement of computing resources and other resources that may be utilized to perform tasks within the cloud computing environment. A metering and pricing resource54may provide cost tracking as resources are utilized within the cloud computing environment, and billing or invoicing for consumption of these resources. In one example, metering and pricing resources may include application software licenses. A user portal56may provide access to cloud computing environment10for consumers and system administrators (not shown). In some embodiments, user portal56may provide security and/or identity verification for cloud consumers (e.g., one or more consumers operating one or more of devices14-19) and tasks, as well as protection for data and other resources. A service level management resource58can provide cloud computing resource allocation and management such that required service levels are met. A service level agreement (SLA) planning and fulfillment resource60may provide pre-arrangement for, and procurement of cloud computing resources for which a future requirement is anticipated in accordance with an SLA.

A workloads layer62may provide functionality for which the cloud computing environment may be utilized. For example, workloads layer62may include a mapping and navigation resource64, a software development and lifecycle management resource66, a virtual classroom education delivery resource68, a data analytics processing resource70, a transaction processing resource72, and a DBaaS best fit processing resource74.

FIG. 3illustrates a block diagram of a computer system100(hereafter “computer100”) for use in practicing the embodiments described herein. The methods described herein can be implemented in hardware, software (e.g., firmware), or a combination thereof. In an exemplary embodiment, the methods described herein are implemented in hardware, and may be part of the microprocessor of a special or general-purpose digital computer, such as a personal computer, workstation, minicomputer, or mainframe computer. Computer100therefore can embody devices in hardware and software layer22, and may function as a cloud computing node12. In another exemplary embodiment, the methods described herein are implemented as part of a mobile device, such as, for example, a mobile phone, a personal data assistant (PDA), a tablet computer, etc.

In an exemplary embodiment, in terms of hardware architecture, as shown inFIG. 3, the computer100includes processor101. Computer100also includes memory102coupled to processor101, and one or more input/output adaptors103that may be communicatively coupled via system bus105. Memory102may be operatively coupled to one or more internal or external memory devices. Communications adaptor104may be operatively connect computer100to one or more networks115. A system bus105may also connect one or more user interfaces via interface adaptor112. Interface adaptor112may connect a plurality of user interfaces to computer100including, for example, keyboard109, mouse110, speaker113, etc. System bus105may also connect display adaptor116and display117to processor101. Processor101may also be operatively connected to graphical processing unit118.

Processor101is a hardware device for executing hardware instructions or software, particularly that stored in a non-transitory computer-readable memory (e.g., memory102). Processor101can be any custom made or commercially available processor, a central processing unit (CPU), a plurality of CPUs, for example, CPU101a-101c,an auxiliary processor among several other processors associated with the computer100, a semiconductor based microprocessor (in the form of a microchip or chip set), or generally any device for executing instructions. Processor101can include a memory cache106, which may include, but is not limited to, an instruction cache to speed up executable instruction fetch, a data cache to speed up data fetch and store, and a translation lookaside buffer (TLB) used to speed up virtual-to-physical address translation for both executable instructions and data. Cache106may be organized as a hierarchy of more cache levels (L1, L2, etc.).

Memory102can include random access memory (RAM)107and read only memory (ROM)108. RAM107can be any one or combination of volatile memory elements (e.g., DRAM, SRAM, SDRAM, etc.). ROM108can include any one or more nonvolatile memory elements (e.g., erasable programmable read only memory (EPROM), flash memory, electronically erasable programmable read only memory (EEPROM), programmable read only memory (PROM), tape, compact disc read only memory (CD-ROM), disk, cartridge, cassette or the like, etc.). Moreover, memory102may incorporate electronic, magnetic, optical, and/or other types of non-transitory computer-readable storage media. Note that the memory102can have a distributed architecture, where various components are situated remote from one another, but can be accessed by the processor101.

The instructions in memory102may include one or more separate programs, each of which comprises an ordered listing of computer-executable instructions for implementing logical functions. In the example ofFIG. 3, the instructions in memory102may include an operating system111. Operating system111can control the execution of other computer programs and provides scheduling, input-output control, file and data management, memory management, and communication control and related services.

Input/output adaptor103can be, for example but not limited to, one or more buses or other wired or wireless connections, as is known in the art. Input/output adaptor103may have additional elements, which are omitted for simplicity, such as controllers, buffers (caches), drivers, repeaters, and receivers, to enable communications. Further, the local interface may include address, control, and/or data connections to enable appropriate communications among the aforementioned components.

Interface adaptor112may be configured to operatively connect one or more input/output (I/O) devices to computer100. For example, interface adaptor112may connect a keyboard109and mouse110. Other output devices, e.g., speaker113may be operatively connected to interface adaptor112. Other output devices may also be included, although not shown. For example, devices may include but are not limited to a printer, a scanner, microphone, and/or the like. Finally, the I/O devices connectable to interface adaptor112may further include devices that communicate both inputs and outputs, for instance but not limited to, a network interface card (NIC) or modulator/demodulator (for accessing other files, devices, systems, or a network), a radio frequency (RF) or other transceiver, a telephonic interface, a bridge, a router, and the like.

Computer100can further include display adaptor116coupled to one or more displays117. In an exemplary embodiment, computer100can further include communications adaptor104for coupling to a network115.

Network115can be an IP-based network for communication between computer100and any external device. Network115transmits and receives data between computer100and devices and/or systems external to computer100. In an exemplary embodiment, network115can be a managed IP network administered by a service provider. Network115may be a network internal to an aircraft, such as, for example, an avionics network, etc. Network115may be implemented in a wireless fashion, e.g., using wireless protocols and technologies, such as WiFi, WiMax, etc. Network115may also be a wired network, e.g., an Ethernet network, an ARINC 429 network, a CAN, etc., having any wired connectivity including, e.g., an RS232 connection, R5422 connection, etc. Network115can also be a packet-switched network such as a local area network, wide area network, metropolitan area network, Internet network, or other similar type of network environment. The network115may be a fixed wireless network, a wireless local area network (LAN), a wireless wide area network (WAN) a personal area network (PAN), a virtual private network (VPN), intranet or other suitable network system.

If computer100is a PC, workstation, laptop, tablet computer and/or the like, the instructions in the memory102may further include a basic input output system (BIOS) (omitted for simplicity). The BIOS is a set of essential routines that initialize and test hardware at startup, start operating system111, and support the transfer of data among the operatively connected hardware devices. The BIOS is stored in ROM108so that the BIOS can be executed when computer100is activated. When computer100is in operation, processor101may be configured to execute instructions stored within the memory102, to communicate data to and from the memory102, and to generally control operations of the computer100pursuant to the instructions.

A network of interconnected cloud computing nodes (e.g., cloud computing nodes12) is at the heart of a DBaaS database infrastructure. In public, private, community, and hybrid cloud environments, there may be different types of agents in the cloud database, one of them being a coordinator agent. The coordinator agent may be any one of cloud computing nodes12, and configured to communicate with the application, receive query requests, and send replies.

In conventional DBaaS database infrastructures, the coordinator agent is selected by a receiving node that receives a query either by a software utility or hard code in the receiving node. The coordinator agent can either satisfy the request itself, or delegate the work to multiple subagents to work on the request. For example, when an application issues a query to the cloud, parts of the database request is sent by the coordinator node to subagents at the other partitions. All results from the other partitions are consolidated at the coordinator node before being sent back to the application. Therefore an incorrectly defined coordinator node, which may be determined by hard code or a software utility in conventional DBaaS systems, will significantly impact query performance and response time in addition to burdening the network and other resources.

Therefore, it may be advantageous to provide a system and method for automatically determining an optimum coordinator node in a distributed database cloud for a particular application request. It may also be advantageous to equip the system to determine the coordinator node based on the physical location of the data set requested, and/or transparently change the coordinator node if the node was pre-selected by another selection mechanism.

FIG. 4depicts a DBaaS Best Fit Processing Resource74(hereafter “best fit resource”), according to some embodiments. Referring now toFIG. 4, DBaaS best fit processing resource74may include a coordinator node selecting engine402(hereafter “selecting engine402”), which may be operatively connected to virtual storage42.

Virtual storage42may include one or more database resources including, for example, a catalog table404. For example, database software38may cause one of cloud computing nodes12(shown inFIG. 1) to access virtual storage42, read from, and write information related to management of cloud computing environment10. In some aspects, a node (e.g., laptop computer18) may write a comparison record to catalog table404that may be indicative of a priority metric of an application operating on a node in environment10.

Selecting engine402may be configured to cause processor101(shown inFIG. 3) to perform the methods described herein, and may include a prioritization module406, a request analysis engine412, and a coordination module410. Prioritization module406, request analysis engine412, and coordination module410may be configured to operate as part of DBaaS best fit processing resource74and/or resource provisioning module52. Selecting engine402may be configured to operate on any of computing nodes12. For example, selecting engine402may be configured on mobile device14, desktop computer16, laptop computer18, servers28, and blade servers30.

According to some embodiments, a transmitting node (e.g., desktop computer16) may send a query having an application request that requests access to environment10data stored on one or more of cloud computing nodes12. A receiving node configured with selecting engine402may receive the application connect request having data request information, and select (randomly) any node in cloud computing nodes12as a candidate node that may be suitable as a coordinator node. In some aspects, selecting engine402may determine whether the candidate node is overloaded, make a comparison of the relative priority of the randomly selected node (the priority of which may be stored in a database resource such as, for example, catalog table404), update catalog table404with a comparison record, and select the candidate node if it is an optimal fit for the data associated with the application connect request.

Prioritization module406may be configured to perform a query to catalog table404regarding the candidate node priority to determine the node priority, which may be predefined based on the characteristic of the node. For example, one of servers28may be dedicated (or substantially allocated) to providing mission-critical data or be otherwise important to a critical resource. Catalog table404may include a predefined node priority that indicates that server28has a relative “high” priority (in contrast with laptop computer18, which may be readily available to perform coordination agent tasks and have a “lower” relative priority). Although many predefined priority levels are contemplated, it is understood that priority levels may be set according to any node's operational importance, and may be one of many characteristics used to determine whether a candidate node is an appropriate selection as the coordinator node.

Request analysis engine408may be configured to receive the node priority level retrieved by prioritization module406, and analyze the characteristic of the data request from the data request information to determine a relative priority level of the requested data identified in the data request information with respect to the node priority level. For example, request analysis engine408may determine whether the candidate node is overloaded is based on a predetermined threshold. The threshold may be predetermined in that is indicates a level of processing activity of the candidate node, which may be known in advance, and recorded in a table. Request analysis engine may then select the candidate node is based on the data request information, the comparison record, or indicate that the node is not an appropriate match for that particular application connect request.

In other aspects, the data request information may include information indicative of the characteristic and location of requested data in a query. For example, the query may request information from a remote server having multiple layers of authentication. Request analysis engine408may perform a comparison and generate a comparison record based on the comparison.

According to other embodiments, the catalog table may indicate a relative percentage of information requested in the data request information with respect to each node in the DBaaS infrastructure. For example, catalog table404may include information indicative that 85% of the data requested in the application connect request lives on two servers directly connected to desktop computer16. Accordingly, request analysis engine408may use this information by applying a relative weight in the analysis, which may militate toward desktop computer16being an optimal selection for the coordinator node. It should be appreciated that a threshold percentage of 85% is exemplary only, and may be any predetermined threshold.

When request analysis engine408makes a determination regarding a comparison of the predefined priority metric to the predefined node priority of a candidate node, it may takes into consideration the weighted data location information. In some aspects request analysis engine408may generate a comparison record, which may include a determination of how the location of the data and the relative importance (priority) of the resource(s) on which that data is stored. Accordingly, analysis engine408may forward the comparison record to record coordination module410. Record coordination module410may be configured to write the comparison record to catalog table404.

FIG. 5depicts computer-implemented method500for determining a coordinator node in a database as a service (DBaaS) infrastructure, according to some embodiments. Referring now toFIG. 5, according to some embodiments, as shown in block402, processor101may receive, on a receiving node, an application connect request having data request information, where the data request information may refer to data stored in the DBaaS infrastructure (e.g., functional abstraction layers20operating in conjunction with cloud computing nodes12). The data request information may include a predefined priority metric, as discussed above with respect toFIG. 4. The data request information may include information indicative of the characteristic and location of requested data in a query. For example, the query (e.g., the application connect request) may reference or request data stored on a mainframe computer known to store and manage sensitive data. “Sensitive data” may be one indication of the characteristic of the requested data in the query. In other aspects, the location may be a physical location of the server, which may include the intervening connections between the receiving node and the server location.

According to some embodiments, DBaas best fit processing resource74may work by randomly selecting a node, analyzing the node for its relative strength as a coordinating node, and either select the node or move on to other nodes in the DBaaS infrastructure. After receiving an application connect request, as shown in block504, processor101may randomly select a candidate node from the DBaaS infrastructure, and determine whether the candidate node is overloaded, as shown in decision block506.

In some aspects, processor101may be configured to determine whether the candidate node is overloaded based on a predetermined threshold indicative of a level of processing activity of the candidate node. For example, if the predetermined threshold of processing activity for the candidate node is set at 65% of the node processing capacity (the predetermined threshold for which may be stored in catalog table404), and processor101observes by querying the candidate node that the current processing load of the candidate node is currently at 55%, processor101may determine that the candidate node is close to being overloaded (or would be overloaded if selected to be the coordinator node). In other aspects, processor may query the candidate node and determine that the current processing load is much lower and make a determination that the candidate node is not overloaded.

Responsive to determining that the candidate node is not overloaded, as shown in block510, processor101may compare the predefined priority metric to at least one predefined node priority stored in catalog table404. The predefined priority metric may include a relative priority of the requested data referenced in the data request information, which may also be stored in catalog table404.

As shown in block512, processor101may write a comparison record indicative of a comparison of the predefined priority metric with the at least one predefined node priority in the candidate node, where the comparison record is stored in catalog table404.

Processor101may the select the candidate node as the coordinator node, as shown in block,514.

If, as shown in decision block506, processor101determines that the first candidate node is overloaded, then processor101may create an overload record in catalog table404, as shown in block408, and randomly select another candidate node.

With a correctly defined coordinator node, the methods and systems described herein may significantly improve query performance and response time in addition to avoidance of burdening network and other resources.