Cloud based services may be offered for running, using, and maintaining a database. A cloud based database service may include a plurality of servers hosting databases associated with a plurality of users. It is appreciated that many users of a cloud based database service may want functionality offered of low level control interfaces without the hassle and complexity of configuring a database and connecting to it. For example, users (e.g., developers, database administrators, analysts, etc.) may want to monitor data, verify data, and optimize performance. Current database systems may require installation of applications on client devices or accessing of another external application(s) in order to access information from a database. Users may further have to manage complex configurations and connections to connect to a database.
Accordingly, there is a need for a system capable of integrating client devices with database deployments of a cloud based database service (e.g., MongoDB Atlas) without needing a separate application or control interface. By retrieving information from a database deployment and generating user interface views through which users can view the information, a user interface may be integrated directly with the cloud based database service. In some embodiments, a system is provided that connects to intelligent agents running on servers of a database deployment and retrieves database deployment information from the intelligent agents. The system further generates a user interface to display in client devices to allow users to view the retrieved information. Additionally, the system may receive user requests for data stored in the database deployment and transmit them for execution by intelligent agents. The system may retrieve the results from execution of the query and generate visualizations of the retrieved data. In some embodiments, the system includes various operational features and components to ensure efficiency of information retrieval, security, and reliability.
According to some embodiments, a system is provided to integrate a user interface shown in a display of a client device with a cloud based database service (e.g., MongoDB Atlas) without a need of any additional database application. The system may receive a request to access a cloud based database service via a user interface of a client device. In response to the request, the system may use a network interface (e.g., Internet connection) to establish a communication link between the user interface and the database service. The system may then retrieve information from the database service and generate visualizations of the information in views of the user interface. The system may further receive user requests for data stored in the database service via the user interface and display retrieved data in views of the user interface.
According to one aspect, a system for monitoring a cloud based distributed database is provided. The system comprises a network interface; at least one processor operatively connected to a memory, the at least one processor configured to execute a plurality of system components comprising: a user interface component configured to: accept, from a client device via a user interface shown in a display of the client device, a request to access a database deployment, wherein the database deployment comprises at least one intelligent agent running on at least one server of the database deployment; an integration component configured to: establish, via the network interface, a communication link between the user interface shown in the display of the client device and the at least one intelligent agent; and retrieve, via the communication link, database deployment information from the at least one intelligent agent; and wherein the user interface component is further configured to generate, within one or more views of the user interface, one or more visualizations of the retrieved information.
According to one embodiment, establishing the communication link includes establishing a direct connection between the client device and the at least one intelligent agent.
According to one embodiment, the user interface is further configured to bypass a database application to obtain monitoring information on database usage.
According to one embodiment, the user interface component is further configured to: accept, via the user interface, a query for data stored in the database deployment; and wherein the integration component is further configured to: transmit, via the communication link, the query to the at least one intelligent agent wherein the at least one intelligent agent is configured to execute the query and retrieve the data; and receive, via the communication link in response to transmitting the query, the data from the at least one intelligent agent; and the user interface component is further configured to generate, within a view of the one or more views, at least one visualization of the data.
According to one embodiment, the system further comprises a data cache component configured to: store the retrieved query data on the client device for a period of time after retrieval; retransmit the query for execution responsive to a request to view the data after expiration of the period of time; and retrieve the query data from the client device responsive to a request to view the data prior to expiration of the time period.
According to one embodiment, the integration component is further configured to retrieve the database deployment information in real time and the user interface component is further configured to update visualizations of the retrieved information according to the real time information.
According to one embodiment, the act of retrieving database deployment information comprises: retrieving statistical information about one or more collections of at least one database stored in the database deployment; and retrieving index information of the one or more collections.
According to one embodiment, the act of retrieving index information comprises retrieving at least one or more of a list of one or more indexes, sizes of the one or more indexes, keys of the one of or more indexes, rates of access of the one or more indexes, and hashes of the one or more indexes.
According to one embodiment, establishing the communication link between the user interface and the at least one intelligent agent comprises establishing a communication link with a plurality intelligent agents running on a plurality of nodes and the integration component is configured to: retrieve information from a first intelligent agent of the plurality of intelligent agents running on a first node of the plurality of nodes; receive an indication from the first intelligent agent that the first node is unavailable; and retrieve, responsive to receiving the indication, information from a second intelligent agent of the plurality of agents running on a second node of the plurality of nodes.
According to one embodiment, the integration component is further configured to: receive, from the client device, an indication to end access to the database deployment; and stop retrieval of information from the database deployment responsive to receiving the indication.
According to one embodiment, the system further comprises an an access manager, executed by the at least one processor, configured to: authenticate the identity of the user; determine a role of the user; and provide access to the retrieved information according to the role of the user.
According to one embodiment, the system further comprises a data cache component configured to: store retrieved information on the client device while the communication link is established; disconnect the communication link; and clear the stored information responsive to disconnecting the communication link.
According to one aspect, a method for monitoring a cloud based distributed database is provided. The method comprises acts of: accepting, from a client device via a user interface shown in a display of the client device, a request to access a database deployment, wherein the database deployment comprises at least one intelligent agent running on at least one server of the database deployment; establishing, via a network interface, a communication link between the user interface shown in the display of the client device and the at least one intelligent agent; retrieving information from the at least one intelligent agent via the communication link; and generating, within one or more views of the user interface, one or more visualizations of the retrieved information.
According to one embodiment, the act of establishing the communication link includes establishing a direct connection between the client device and the at least one intelligent agent.
According to one embodiment, the method further comprises an act of bypassing a database application to obtain monitoring information on database usage.
According to one embodiment, the method further comprises comprising acts of: accepting, via the user interface, a query for data stored in the database deployment; and transmitting, via the communication link, the query to the at least one intelligent agent wherein the at least one intelligent agent is configured to execute the query and retrieve the data; and receiving, via the communication link in response to transmitting the query, the data from the at least one intelligent agent; and generating, within a view of the one or more views, at least one visualization of the data.
According to one embodiment, the act of retrieving the database deployment information comprises retrieving the information in real time and the act of generating the one or more visualizations further comprises updating the one or more visualizations according to the real time information.
According to one embodiment, the method further comprises acts of: receiving, from the client device, an indication to end access to the database deployment; and stopping retrieval of information from the at least one intelligent agent responsive to receiving the indication.
According to one embodiment, the act of establishing the communication link with the at least one intelligent agent comprises connecting to a plurality of intelligent agents running on a plurality of nodes and the act of retrieving information comprises: retrieving information from a first intelligent agent of the plurality of intelligent agents running on a first node of the plurality of nodes; receiving an indication that the first node is unavailable; and retrieving, responsive to receiving the indication, information from a second intelligent agent of the plurality of intelligent agents running on a second node of the plurality of nodes.
According to one embodiment, the method further comprises acts of: authenticating and identity of a user of the client device; determining a role of the user; and providing access to the retrieved information according to the role of the user.
According to another aspect, a cloud based distributed database system is provided. The system comprises: a network interface; at least one database; at least one processor operatively connected to a memory, the at least one processor configured to execute a plurality of system components comprising: at least one intelligent agent configured to: connect, via the network interface, to at least one client system; collect monitoring information from the distributed data system; transmit, responsive to the act of connecting, the monitoring information to the at least one client system; receive, from the client system, a query for data stored in the at least one database; execute the query; retrieve, responsive to execution of the query, at least one data item from the at least one database; and transmit the retrieved at least one data item to the client system.
According to one aspect, a user interface is provided. The user interface comprises: a user interface component, executed by at least one processor, operable to display at least one user interface, wherein the at least one user interface is configured to display and accept information from a database deployment through a plurality of views, the plurality of views including: a first view configured to: display a list of one or more databases in the database deployment; and accept selection of a database of the one or more databases; a database level view configured to: visualize information about one or more collections in the database; and receive selection of a collection of the one or more collections; and a find view configured to: accept a query for data in the selected collection; and display a visual representation of the queried data.
According to one embodiment, the first view is further configured to display a filterable list of the one or more databases for navigation.
According to one embodiment, the first view is further configured to display a total number of the one or more databases.
According to one embodiment, the plurality of views include an index view configured to display index information for one or more indexes of the selected collection.
According to one embodiment, the query results comprise one or more pages of retrieved data and the find view is further configured to: display a single page of the one or more pages; and provide page backward and page forward options to allow navigation through the one or more pages of the results.
According to one embodiment, the user interface component is configured to display statistics associated with the selected collection in a header of the at least one user interface.
Still other aspects, examples, and advantages of these exemplary aspects and examples, are discussed in detail below. Moreover, it is to be understood that both the foregoing information and the following detailed description are merely illustrative examples of various aspects and examples, and are intended to provide an overview or framework for understanding the nature and character of the claimed aspects and examples. Any example disclosed herein may be combined with any other example in any manner consistent with at least one of the objects, aims, and needs disclosed herein, and references to “an example,” “some examples,” “an alternate example,” “various examples,” “one example,” “at least one example,” “this and other examples” or the like are not necessarily mutually exclusive and are intended to indicate that a particular feature, structure, or characteristic described in connection with the example may be included in at least one example. The appearances of such terms herein are not necessarily all referring to the same example.
Various aspects of at least one embodiment are discussed below with reference to the accompanying figures, which are not intended to be drawn to scale. The figures are included to provide an illustration and a further understanding of the various aspects and embodiments, and are incorporated in and constitute a part of this specification, but are not intended as a definition of the limits of any particular embodiment. The drawings, together with the remainder of the specification, serve to explain principles and operations of the described and claimed aspects and embodiments. In the figures, each identical or nearly identical component that is illustrated in various figures is represented by a like numeral. For purposes of clarity, not every component may be labeled in every figure. In the figures:
Some current systems require separate database applications to interact with cloud based database systems. For example, a separate database application may be required to be installed on a device and users interact with their database data through the database application. For example, to carry out various activities associated with a database such as inserting, deleting, monitoring, backing up, updating, and verifying data stored in the database. Users may further need to access the database application to monitor performance of the database system. For example, a user may need the application to view memory usage, disk usage, storage capacity, network connections, and other parameters of the database system. Typically, such database application(s) require users to configure the database and a connection to the database through the database application.
It is appreciated that many users of a cloud based database service (e.g., MongoDB Atlas) may want functionality offered by low level control interfaces (e.g., MongoDB Shell), without the need to interact with separate applications. Further, users may want the functionality without the complexity associated with configuring a database application and/or system and managing connections to the database. According to some embodiments, data verification, monitoring, and performance optimization are ongoing processes for users of a database that can be executed separately and apart from other database functions. Various embodiments are configured to enable users (e.g., developers, database administrators, analysts, etc.) to monitor data, verify data, and optimize performance of a database system without having to connect through an additional application, configure a database, and or manage a connection to the database system. Various aspects eliminate any performance impact (e.g., computation and memory usage) associated with accessing your database application to review monitoring data and/or fine tuning backend configurations. For example, various embodiments provide a system that integrates a user interface directly with a database back end to enable users to monitor data, verify data, and optimize performance.
Accordingly, various embodiments relate to a system to integrate a user interface shown in a display of a client device with a cloud based database service (e.g., MongoDB Atlas) without a need to access any front end systems or the database application itself. According to one embodiment, the system may receive a request to access a cloud based database service via a user interface of the client device. The system can be configured to use a network interface (e.g., Internet connection) to establish a communication link between the user interface and intelligent agents running on the database back end. According to one embodiment, the system is configured to enable connections between a user interface on a client computer and intelligent agents running on the back end of the database system. The system may then retrieve information from the intelligent agent(s) and generate visualizations of the information in views of the user interface. The system may further receive user requests for data stored in the database service via the user interface and display retrieved data in views of the user interface. In some embodiments, the system may allow users of a database service to carry out monitoring, verification, and optimization activities without complexities of and resource usage of an additional database application.
A cloud based database service may comprise of a plurality of database deployments. A database deployment may comprise a cluster of one or more servers hosting one or more databases (e.g., MongoDB Atlas cluster). Stated broadly, various aspects herein describe systems and methods for viewing, analyzing, and monitoring database deployments without use of a database application. In one embodiment, this involves a system that integrates a user interface of a client device(s) with a database deployment(s). This may involve determining database deployments associated with particular users, establishing a communicative link with a server(s) of a database deployment(s), authenticating users, accessing information from the server(s), managing access to information from the server(s) from a plurality of client devices, and providing a user interface through which users can access information from the database deployment(s).
It is appreciated that there may be challenges associated with managing requests and accesses of a plurality of client systems to a cloud bases database service. According to one aspect, systems and methods are provided to maintain efficiency of operation to provide optimal performance and availability to users accessing databases through the database monitoring system. For example, cloud based database systems may need to manage real time information transmissions to client devices and to ensure availability and efficiency for users viewing data at a given time. In another example, the system may need to ensure that client device connections and information retrieval are maintained during various operations associated with the databases (e.g., rebalancing, database node restarts, etc.).
According to another aspect, the system is further configured to facilitate user access and interactions to the databases. In some embodiments, the system may provide various visualization and navigation interfaces via which a user(s) can interact with a database deployment. For example, a user(s) can view, monitor, and verify data stored in the database deployment. The user(s) may further view performance information about the database deployment.
The disclosure provided herein is not limited in its application to the details of construction and the arrangement of components set forth in the following description or illustrated drawings. The disclosure is capable of other embodiments and of being practiced or of being carried out in various ways. Also, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including”, “comprising”, “having”, “containing”, “involving”, and variations therein is meant to encompass the items listed thereafter and equivalents thereof as well as additional items.
In some embodiments, the database monitoring system 110 may integrate devices 102, 104, 106 with one or more database deployments 132, 134, 142, 144. In one implementation, the database monitoring system 110 may enable a client device to access information from one or more database deployments 132, 134, 142, 144 via an Internet browser application, mobile application, or other application. For example, a user may access a particular Internet website or specific mobile application in order to gain access to a database deployment. The integration component 114 may establish a connection between the client device and a database deployment to enable a user(s) to execute various activities such as view performance metrics about a database deployment(s) (e.g., databases 132, 134, 142, 144) and query for data stored in the database deployment.
In some embodiments, a database deployment (e.g., one of database deployments 132, 134, 142, 144) may comprise a cluster of one or more servers hosting one or more databases. According to various embodiments, a database as described in U.S. application Ser. No. 15/605,372 entitled “METHODS AND APPARATUS FOR MAINTAINING REPLICA SETS” incorporated by reference herein may be stored in a database deployment.
In some embodiments, a database may be replicated to form a replica set. The replica set may be hosted by a plurality of nodes, each node hosting a replica of the database. The plurality of nodes may be distributed across one or more servers of a database deployment. In some embodiments, a database may be divided into units called shards. Each shard may be replicated via a replica set. A database deployment (e.g., a cluster) may contain one or more replica sets associated with one or more databases or shards.
In some embodiments, a database may comprise a non-relational database (e.g., a MongoDB database). A document may represent an individual data item stored in the database. In some embodiments, a document may include plurality of fields with associated values. For example, a non-relational database for an e-commerce website may store transaction information in documents. A document storing information for a transaction may, for example, include fields for transaction date, amount, and items purchased among other fields.
In some embodiments, a database may further include a plurality of collections. A collection is a grouping of documents within a database. For example, a non-relational database storing information for an e-commerce website may store the information in documents which are grouped into collections. A collection may, for example, comprise documents for transactions executed on the e-commerce website on a particular date.
In some embodiments, a collection may have one or more indexes associated with it. An index may store a portion of the collection's dataset in an easy to traverse form. In some embodiments, any field of a document may be used to create an index for a collection. In one implementation, an index stores the value of a specific field or set of fields of documents in the collection and orders the index entries according to the value of the field. In some embodiments, an index may additionally or alternatively store hashes of a specific field or set of fields of documents in the collection. The ordering of the index may, for example, support efficient equality matches and querying of ranges of data from a collection. Further, the index may be used to sort query results.
In some embodiments, a database deployment can also be configured to include one or more intelligent agents running on servers of the database deployment. In some embodiments, an intelligent agent can be configured to monitor various processes (e.g., MongoDB processes) executing in the database deployment. Additionally, the intelligent agent can be configured to collect information about the state of the database deployment (e.g., performance information, storage capacity, configuration). The intelligent agent can also be configured to transmit collected information. In some embodiments, an intelligent agent may additionally receive queries and execute them to retrieve data stored in a database deployment. As discussed above, a replica set of a database may comprise a plurality of nodes. In one embodiment, each of the plurality of nodes may have an intelligent agent executing on the node. In one implementation, an intelligent agent running on a respective node can be configured to execute queries and retrieve data from the respective replica set hosted by the node.
In some embodiments, the database monitoring system 110 may include a user interface component 112 configured to generate various interactive user interfaces for displaying information on and accepting information from one or more client devices (e.g., client devices 102, 104, 106). In some embodiments, the user interface component 112 may generate views in a user interface shown on a client device to display information from one or more database deployments associated with a user. The user interface component 112 may accept selection of a database deployment. In one example, the user interface component 112 may generate a list of one or more database deployments on an Internet webpage or mobile application screen. The database deployments may have links associated with them. The user interface component 112 may accept selection of a link associated with a database deployment.
In some embodiments, the user interface component 112 may generate a filterable list of one or more databases and/or collections in a database deployment for navigation. Additionally, the user interface component 112 may generate a view displaying a total number of databases and/or collections in a selected database deployment. The user interface component 112 may further accept selection of a collection of a database and then generate views that visualize information about the collection. For example, the user interface component 112 may generate a webpage(s) or mobile application screen displaying a filterable list of one or more databases and/or collections. The user interface component 112 may accept selection of a database and/or collection and generate additional views displaying more information about the selected entity.
In some embodiments, the user interface component 112 may generate views displaying visualizations of information about one or more collections of a database on the client device. Additionally, the user interface component 112 may further accept selection of a specific collection to generate additional views of information about the selected collection. In one implementation, the user interface component 112 may generate a view of a user interface in which information about a selected collection is displayed in a header of the view. For example, the user interface component 112 may generate, for a selected collection, views (e.g., on a webpage, or a mobile application screen) that display a total size of indexes for a collection, number of indexes for the collection, size of the collection, number of documents stored in the collection, and other information about the collection.
In some embodiments, the user interface component 112 may further generate an index view that displays information about one or more indexes of a collection. For example, the user interface component 112 may generate views that display a size of one or more indexes, keys the indexes are on, rate of accesses of the indexes, and/or attributes of the indexes such as hashing or other constraints. In some implementations, the user interface component 112 may generate graphs, diagrams, and other forms of visualizations to display information.
In some embodiments, the user interface component 112 may generate views displaying real time information (e.g., performance information) about a database deployment. The user interface component 112 may generate visualizations of data about the database deployment that are constantly updated with information retrieved from the deployments. The user interface component 112 may, in one implementation, generate graphs displaying one or more of disk usage, network connection statuses, input/output operations per second (IOPS), and/or number of database operations (e.g., query, getMore, update, insert, delete, etc.). Additionally, the user interface component 112 may display visualizations of the hottest collections, i.e., collections with the most operations. The user interface component 112 may also generate a display showing the slowest operation in a database deployment. In some embodiments, the user interface component 112 may additionally or alternatively generate tables displaying various statistics of a database deployment. The fields may include, for example:
In some embodiments, the user interface component 112 may generate a query interface. The query interface may comprise one or more user interface views through which the user interface component 112 may accept queries for data in a database and/or collection and then generate displays of the queried data. In some embodiments, query data may comprise one or more pages of data. A page of data may comprise a subset of results from a query. For example, a query in a database of an e-commerce website for all transactions occurring on a particular date may result a plurality of data items (e.g., documents of a non-relational database). The plurality of documents may be divided, for displaying, into sets of pages. In some embodiments, a page size may be configurable.
In some embodiments, the user interface component 112 may display one page of query results at a time. In some embodiments, a page may comprise a batch of query results (e.g., a page comprises ten query results). The user interface component 112 may provide navigation buttons in the query interface that allow a user to navigate through pages of results. In one example, the user interface component 112 may generate the query interface on a webpage or screen of a mobile application. The query interface may include an area for a user to enter and submit a query. The query interface may further include an area displaying a page of retrieved query results. The query interface may further include forward and back arrows allowing a user to navigate through the query results.
In some embodiments, the database monitoring system 110 may include an integration component 114 configured to integrate a user interface shown on the client device with a database deployment. In some embodiments, the integration component 114 may establish a communication link between a client device 102, 104, 106 and one or more database deployments 132, 134, 142, 144. In one implementation, the integration component 114 may connect the client device to one or more servers of the database deployment via the network 120 (e.g., the Internet). In some embodiments, the integration component 114 may further retrieve information from the database deployments via the communication link. The information may, for example, be utilized by user interface component 112 to display information in views described above within a display of client devices 102, 104, 106.
In some embodiments, the integration component 114 may connect the client device to an intelligent agent(s) executing on a server(s) of a database deployment. The intelligent agent(s) can be configured, as discussed above, to retrieve monitoring information about the database deployment and also execute queries. The integration component 114 may retrieve information about the database from the intelligent agents and submit queries to the intelligent agents for execution.
In some embodiments, the integration component 114 may receive an identity of a user and/or client device requesting access to the database monitoring system 110. For example, the integration component 114 may receive a username and password of a user and/or an identification associated with a client device (e.g. an IP address). The integration component 114 may determine, according to the identity, database deployments associated with the user and/or client device.
In some embodiments, the database deployments 132, 134, 142, 144 may be organized into a plurality of groups 130, 140. Each database deployment may be categorized into one of the groups. A particular user and/or client device may be associated with a particular group. The user and/or client device may only have access to the database deployments in a group(s) associated with the user and/or client device. For example, users and/or client devices 102, 104 may be associated with database deployments 132, 134 in group 130 whereas user 106 may be associated with database deployments in 142, 144 in group 140. The integration component 114 may limit access of users and/or client devices to only database deployments to which the users and/or client devices are associated. For example, a user may log in to a webpage or mobile application from a client device to access a database deployment. The integration component 114 may then provide access to database deployments in a group to which the user and/or the client device has been given permission to access. The user interface component 112 may, for example, generate a user interface view showing only database deployments in the group. The user may then only access information and data from one of the available database deployments.
In some embodiments, a database deployment group may maintain a list of approved users and/or client devices. The list, for example, include usernames and client device IP addresses that are approved to access the database deployment group. In some embodiments, the integration component 114 may access the list in order to determine whether a user and/or client device has access to the database deployment group.
In some embodiments, the integration component 114 may further transmit queries received from a client device (e.g., queries accepted by user interface component 112 via a query interface) to one or more servers of a database deployment. In some embodiments, the integration component 114 may transmit the query to an intelligent agent of the database deployment for execution. The integration component 114 may retrieve via the communication link, in response to transmitting the queries and execution by the intelligent agent, data items from one or more databases of the database deployment. The data items may then be displayed to a user of the client device as discussed above. In one example, the integration component 114 may transmit a query to an intelligent agent(s) executing on a server(s) of a database deployment. The intelligent agent may execute the query to gather query results. The integration component 114 may then retrieve the data for displaying on a client device.
In some embodiments, the integration component 114 may be configured to retrieve query results in pages. As discussed above, a page may comprise a batch of query results. A page may have a configurable size. For example, in the case of a non-relational database a page may comprise of a set number of documents of a plurality of documents retrieved as a result of executing a query. In one embodiment, the integration component 114 may retrieve a specific number of pages of a query result. The integration component 114 may retrieve successive pages of query results as a user navigates through the results. For example, the integration component 114 may retrieve two pages of a query results at a time. In this example, if the page size is ten documents the integration component 114 may retrieve twenty documents. The user interface component 112 may generate a query results view displaying a first page (e.g., first set of ten documents). The user interface component 114 may display a second page (e.g., second set of ten document) in response to accepting an input indicating a request to view the next page of results. The integration component 114 may further retrieve the next page of results (e.g., third set of ten documents) in response to accepting the input. In some embodiments, the integration component 114 may limit the total number of pages that can be retrieved for a query.
In some embodiments, a database deployment may comprise a plurality of servers. In some embodiments, the integration component 114 may be configured to establish a communication link with the plurality of servers. This may provide redundancy in information and data access for client devices 102, 104, 106. In one implementation, the integration component 114 may be configured to retrieve data from a first server. The integration component 114 may be further configured to retrieve data from a second server if it detects that the first server is unavailable. For example, the first server may be shutdown, restarting, executing balancing activities, and/or other processes. The integration component 114 may retrieve information from the second server during such processes. This redundancy may provide a high level of availability of information for users accessing database deployments.
In some embodiments, the integration component 114 may enter a zero state while the database monitoring system initially connects to a database deployment (e.g., one of database deployment 132, 134, 142, 144). In one implementation, during the zero state the integration component 114 may set up a connection to one or more servers of a database deployment. In some embodiments, the integration component 114 may set up a connection to one or more intelligent agents of the database deployment. Additionally, the integration component 114 may retrieve an initial list of databases and collections stored in the database deployment from the intelligent agent(s).
In some embodiments, the integration component 114 may support user concurrency in the database monitoring system. The integration component 114 may integrate user interfaces of multiple client devices to the same database deployment. In one implementation, the integration component 114 connects each user of the multiple users using one or more addresses (e.g. domain name system (DNS) addresses) unique to the user. In some embodiments, the integration component 114 may allow each user to connect to a plurality of servers. For each user, the integration component 114 may connect the user to each of the plurality of servers using a different address. The integration component 114 may manage connections from a plurality of users to a plurality of servers using the individual addresses. For example, the integration component 114 may direct information requested by a first client device from a first server using an address associated with the user and the first server. The integration component 114 may direct information for a second client device from the first server using an address associated with a connection between the second client device and the server.
In some embodiments, the database monitoring system 110 may include a data cache component 116. The data cache component 116 may temporarily store information retrieved from a database deployment in order to provide quick and efficient access to the information for reuse. In some embodiments, the data cache component 116 may store all retrieved information on a client device. In one implementation, the data cache component 116 may store information on the client device for a duration of the connection to a database deployment. If a user navigates away from or commands a disconnect, the data cache component 116 may clear the stored information. For example, a user accessing the database monitoring system 110 via client device 102 may access database deployment 132. The user may, for example, log into a website or mobile application and select the database deployment to initiate a connection session. The data cache component 116 may store all retrieved information during the session on the client device 102. The user may log off or select to disconnect from the database deployment 132. The data cache component 116 may, in response, clear the stored retrieved information from the client device.
In some embodiments, the data cache component 116 may store query results retrieved from the database deployment. In one implementation, the data cache component 116 may store data retrieved from one or more queries for a time period after initially retrieving the data. The data cache component 116 may refresh the retrieved data if a user re-navigates to queried data after expiration of the time period. If, however, the user navigates to the queried data prior to the time period, the data can be accessed from the data cache on the client device. For example, a user may query a collection in a database deployment 132 from client device 102. The data cache component 116 may store the queried data on the client device 102. The user may then navigate away from the queried data. If the user re-navigates to the queried data within a time period of the initial query, the database monitoring system 110 may redisplay the data stored by the data cache component 116. If, however, the user re-navigates to the queried data after time period, the database monitoring system 110 may retransmit the query and re-retrieve the query data.
In some embodiments, requests from the database monitoring system 110 (e.g., received from a user interface shown on a client device) to a database deployment 132, 134, 142, 144 may be performed with a timeout. In some embodiments, the timeout may be configurable. In some embodiments, the integration component 114 may have a first timeout for communication to a database deployment and a second timeout for execution of an operation by a server(s) of the database deployment. In some embodiments, the user interface component 112 may generate error views on a user interface shown in a display of a client device indicating expiration of a timeout. In some embodiments, the database monitoring system 110 may automatically retry a request in the case of a timeout.
In some embodiments, the database monitoring system may further include an access manager 118. The access manager 118 may protect a database deployment from unauthorized access via database monitoring system 110. In some embodiments, the access manager 118 may govern access according to various types of roles with associated permissions to govern access to information retrieved by the database monitoring system 110. In some embodiments, the access manager 118 may limit access to particular views generated by the user interface component 112 according to permissions associated with a role of a user. For example, the role manager may recognize an administrative role assigned to a user. The administrative role may, for example, be assigned to a database deployment group owner(s). The role may be required by a user in order to view certain information. In one embodiment, the user interface component 112 may generate an error message on a user interface screen of a client device if an unauthorized user attempts to access information for which the user does not have permission. In some embodiments, the access manager 118 may further provide a global on/off switch to disable access to information to all users. A group owner, for example, may control the global on/off switch in order to limit access to a database deployment (e.g., for maintenance activities).
Process 200 begins at act 202 where the database monitoring system 110 may receive a request to access the database monitoring system 110 from a client device. For example, a user may log into a website via an Internet browser application executing on the client device or log into a mobile application from the client device. The user may, for example, enter a username and password to enter the system and request access to one or more services.
Next, process 200 proceeds to act 204 where the user is authenticated. The database monitoring system 110 may, for example, receive a username and/or password from the client device and authenticate the username and/or password to verify that the user has permission to access database monitoring system 110. In some embodiments, the database monitoring system 110 may additionally or alternatively also check a unique identity of the client device from which the request was received. For example, the database monitoring system 110 may verify that an IP address of the client device has permission to access the database monitoring system 110.
Next, process 200 proceeds to act 206 where the database monitoring system 110 determines whether the user and/or client device have access to the database monitoring system 110. If, during authentication, it is found that the user and/or client device do not have sufficient permission(s) 206 NO then process 200 ends. The database monitoring system 110 may, for example, direct the client device to a webpage or screen of a mobile application displaying an error message or a message indicating that the user does not have access.
If, however, the user and/or client device are found to have access during authentication 206 YES process 200 proceeds to act 208. Act 208, the database monitoring system 110 determines database deployments that are associated with the user. In some embodiments, the database deployments may be organized into groups and users may be granted access to the database deployments according to users' associations with groups. As shown in
In some embodiments, the database monitoring system 110 may generate a view in a user interface displayed on the client device showing one or more database deployments to which the user has access. For example, for a user and/or client device 102 associated with group 130 accessing the database monitoring system 110 via an Internet browser application or mobile application, the database monitoring system 110 may generate a view showing a list of database deployments 132, 134 in group 130. Each database deployment may, for example, have a link associated with it that a user may select in order to request further access to the specific database deployment.
Next, process 200 proceeds to act 210 where the database monitoring system 110 may accept a request to connect to a particular database deployment. In one embodiment, the database monitoring system 110 may receive selection of a database deployment from a user interface view shown in a display of the client device. For example, the database monitoring system 110 may accept a selection of a link associated with the database deployment from an Internet webpage or accept selection of a button associated with the database deployment from a mobile application.
Next, process 200 proceeds to act 212 where the database monitoring system 110 may establish a communication link with the selected database deployment over a network (e.g., network 120 discussed with reference to
In some embodiments, by establishing a communication link between a client device or user interface of a client device to the database deployment, the database monitoring system integrates a user interface with the database deployment. The database monitoring system 110 may establish the communication without use of a particular database application, tool, or other interface. For example, a user may, in order to access the database deployment, access an Internet website via an Internet browser application running on a client device (e.g., a computer, mobile device). The database monitoring system 110 may establish a link from a user interface running on the client device to the database deployment using a network (e.g., the Internet) upon accepting a request to connect (e.g., selection of a link on a webpage). A user may access information from and interact with the database deployment via the user interface.
Next, process 200 proceeds to act 214 where the database monitoring system 110 retrieves information from the servers. In some embodiments, cluster servers may have intelligent agents executing on the servers. The intelligent agents may be configured to collect information about the cluster and transmit the data. The database monitoring system 110 may communicate with the intelligent agents to retrieve information. In some embodiments, the database monitoring system 110 may retrieve information in real time once connected to a database deployment. The information may then be used to generate visualizations of real time performance and statistics of the database deployment within a user interface displayed on the client device. For example, the system 110 may generate visualizations in various views of an Internet website through which accesses the database deployment.
In some embodiments, the database monitoring system 110 may also retrieve data stored in databases and/or collections stored in the database deployment. In some embodiments, the database monitoring system 110 may accept queries for data stored in a database or collection (e.g., via user interface shown in display of client device). In one implementation, the database monitoring system 110 transmits queries to servers of the database deployment. The servers may execute the queries and transmit data back to the database monitoring system 110. For example, the database monitoring system 110 may transmit queries to intelligent agents executing on the servers. The intelligent agents may process the queries to gather data and transmit it to the client device via the established connection for displaying in a view of a user interface (e.g., website) shown on the client device.
The inventors have appreciated that the database monitoring system 110 may provide monitoring services to a large number of users accessing a large number of database deployments. Thus, the database monitoring system 110 must respond to requests for data and information from many users. In some embodiments, the database monitoring system 110 may only retrieve information in real time when a user requests access to a database deployment. This may limit the amount of data that must be retrieved by the database monitoring system 110 and transmitted by database deployments. This may further limit the computations required by database deployment servers in order to gather information.
Information collection and transmission operations may need to be executed primarily when accessed or requested by users. According to some embodiments, by limiting information retrieval to execute when access to the information is requested by a user or device, the database monitoring system 110 limits computation associated with querying data from a database and computations associated with information transfer between database deployments and client systems as described in reference to
Next, process 200 proceeds to act 216 where the database monitoring system 110 generates visualizations of retrieved information. In some embodiments, the database monitoring system 110 may generate multiple views of a user interface displayed on a client device. For example, a user accessing the database monitoring system 110 via an Internet browser application may be able to view several visualizations of real time performance information about a database deployment and data stored in collections of a database on various webpages of an Internet website screens of a mobile application. In one implementation, the database monitoring component 110 may generate a user interface via which a user can navigate to various information. Further, the user interface may provide a filterable list of databases and/or collections that a user may select from for information about the database or collection. The user interface may further provide an interface via which a user may request to view data stored in databases of the database deployment (e.g., submit queries for data).
Continuing reference to
In some embodiments, the database monitoring system 110 may manage access to various portions of information retrieved by the system.
Process 300 begins at act 300, the database monitoring system 110 may authenticate an identity of a user and/or client device accessing the database monitoring system 110. The authentication may, for example, be part of authentication executed during process 200 discussed above with reference to
Next, process 300 proceeds to act 304 where the database monitoring system 110 determines whether a user and/or device identity are valid (e.g., have permission to access the system). If not 304 NO, the process 300 ends and the user and device are not given any further access. If the user and/or device identity are valid 304 YES, the database monitoring system 110 proceeds to act 306 where the system determines a role of the user.
At act 306 of process 300, the database monitoring system 110 determines one or more roles associated with a user and/or device. In some embodiments, the database monitoring system 110 may access the database deployment group to determine the roles.
In some embodiments, a database deployment group may maintain a plurality of roles for various users and/or devices for a given database deployment. Each role may have different levels of access to information associated with it. A user and/or device may be assigned one or more roles. The assigned roles may govern access of a particular user and/or device. In one example, a database deployment may have a group owner role. The group owner role may, for example, provide permission to access data stored in a database deployment. In one example, a database deployment may comprise a MongoDB Atlas cluster deployment. Data stored in the cluster deployment may be viewed via the MongoDB Data Explorer portion of a user interface generated by database monitoring system 110. The database monitoring system 110 may govern access to the MongoDB Data Explorer based on role(s) associated with a user and/or device.
Next, process 300 proceeds to act 308 where a user may request access to a portion of information retrieved by the database monitoring system 110. In one implementation, the database monitoring system may receive a request to access to a particular view or section of a user interface generated by the system and displayed on a client device of the user (e.g., Data Explorer of the MongoDB Atlas UI). At act 310 of process 300, the database monitoring system may determine whether the user and/or device has permission to access the requested information. In one embodiment, the database monitoring system 110 may determine whether the user and/or device have a role that has permission to access to the requested information (e.g., user interface view). If the user and/or device has one or more required roles 310 YES, the database monitoring system 110 may provide access to the user and/or device at act 312. If, however, the use and/or device does not have a required role 310 NO, process 300 proceeds to act 314 where the database monitoring system 110 denies access to the requested information. The database monitoring system 110 may, for example, generate a message or screen of a user interface indicating an error or message informing a user that access is denied.
In one example, a user may have accessed a MongoDB cluster deployment via the database monitoring system 110. The user may then request access to Data Explorer from a user interface generated by the databased monitoring system 110 displayed on a client device. The user may, in this example, not have a specific role required to access Data Explorer (e.g., a group owner role). In this case, the database monitoring system 110 may deny the user access to the Data Explorer. The system 110 may generate a message to display in the user interface indicating to the user that the user does not have appropriate permission(s). In another example, the user may have a role needed to access the Data Explorer (e.g., a group owner role). In this case, the database monitoring system 110 may allow the user to access Data Explorer.
In some embodiments, the database monitoring system 110 may accept requests for data (e.g., queries) stored in a database(s) of a database deployment and respond to requests received from a client device as discussed above.
Process 500 begins at act 502 where the database monitoring system 110 accepts a query interface shown in a display of a client device. The query interface may, for example, comprise the query interface shown and discussed above in reference to
Next, process 500 proceeds to act 504 where the database monitoring system 110 transmits the query to one or more servers of a database deployment. The database deployment may, for example, comprise a database deployment with which the database monitoring system 110 established connection during process 200 discussed above. In some embodiments, the database monitoring system 110 may transmit the query to intelligent agents executing on the one or more servers. One or more servers may execute the query and then transmit the resulting data to the client device (e.g., via a communication established by system 110 during process 200).
Next, process 500 proceeds to act 506 where the database monitoring system 110 receives data from the one or more servers. The database monitoring system 110 may, for example, receive one or more data items that were retrieved by a server(s) as a result of executing the query. In one example, the database deployment may be hosting a non-relational database. The data items may, in this example, comprise documents from the database.
Next, process 500 proceeds to act 508 where the database monitoring system 110 generates visualizations of the queried data. In some embodiments, the database monitoring system 110 may generate visualizations of the retrieved data within a user interface displayed on a client device from which the query was submitted. In one implementation, the database monitoring system 110 may display one page of retrieved data (e.g., a set of results from the query) at a time. The database monitoring system 110 may further provide navigation options in the user interface (e.g., forward and backward buttons) that allow a user to navigate query results. For example, the database monitoring system 110 may fetch different pages of the retrieved data in response to receiving forward and backward selections from the user interface (e.g., by selection of the buttons).
In some embodiments, the database monitoring system 110 may store information retrieved from one or more servers of a database deployment on a client device accessing the database monitoring system 110. In some embodiments, the database monitoring system 110 stores the retrieved information in a temporary data cache.
Process 600 begins at act 602 where database monitoring system 110 establishes a connection with one or more servers of a database deployment (e.g., during process 200) in response to a request received from a client device. After establishing a communication link with the one or more servers, process 600 proceeds to act 604 where the database monitoring system 604 retrieves information from the server(s). The retrieved information may comprise meta-information about the database deployment (e.g., metrics, performance, memory usage, network usage, storage, etc.) and/or data retrieved in response to a query(s) retrieved from the client device.
Next, process 600 proceeds to act 606 where the data monitoring system 110 stores retrieved information on the client device. In some embodiments, the data monitoring system 110 stores the retrieved information in a temporary data cache on the client device. The data monitoring system 110 may then quickly access data that has previously been retrieved from the data cache. In some embodiments, accessing data from the data cache may be significantly faster and more efficient than re-retrieving information from a server(s) of a database deployment. Additionally, this may reduce computational burden on database deployment server(s) by avoiding computations associated with collecting and transmitting requested information.
Next, process 600 proceeds to act 608 where the database monitoring system 110 determines whether the connection session with the database deployment server(s) has ended. In some embodiments, the database monitoring system 110 may receive an indication of an end to a connection session via a user interface shown in a client device. For example, the database monitoring system 110 may receive an indication that a user has selected to log off or selected an option to exit from an information monitoring screen. If the database monitoring system detects an end to the connection session 608 YES, the database monitoring system proceeds to act 610 where the system 110 clears the stored information. In some embodiments, the database monitoring system 110 may clear a data cache stored on the client device. If, however, the database monitoring system 110 does not detect an end of the connection session 608 NO, the process returns to act 604 where the database monitoring system 110 continues to retrieve information from the database deployment server(s) and store it on the client device at act 606.
In some embodiments, the database monitoring system 110 may store queried data for a period of time in order to ensure that the system 110 is providing the most up to date data from the database.
Process 700 begins at act 702 where the database monitoring system 110 retrieves queried data (e.g., during process 500). The system 110 may, for example, have retrieved one or more documents from a collection of a non-relational database. Next, exemplary process 700 proceeds to act 704 where the database monitoring system 110 stores data in a data cache on the client device for a period of time. In some embodiments, the database monitoring system 110 may automatically clear the stored data items from the client device upon expiration of the period of time. In some embodiments, the period of time may be configurable.
Next, process 700 proceeds to act 706 where the database monitoring system 110 receives a request for previously retrieved data. For example, the system 110 may receive a query for data that had been previously retrieved as a result of a previous query. Next process 700 proceeds to act 708 where the system determines whether the data is available in the data cache stored on the client device. In some embodiments, if the data had been retrieved within an amount of time that is less than a temporary storage time limit, the data may still be available in the data cache.
If the data is available in the cache 708 YES, the database monitoring system 110 may retrieve the data from the data cache of the client device and display it. The database monitoring system 110 may, for example, generate a view displaying one or more documents retrieved from a previous query to a non-relational database of a database deployment. If, however, the data is not available in the data cache 708 NO, the database monitoring system 110 may transmit the request (e.g., query) to the database deployment server(s) to retrieve the data. The database monitoring system 110 may then use the newly retrieved data to generate a view in a user interface of the client device displaying the retrieved data (e.g., documents of a non-relational database).
In some embodiments, database deployments may include replica sets of a database as discussed above. Each replica set may comprise a plurality of nodes, each of which hosts a replica of the database. In some embodiments, the database monitoring system 110 may utilize multiple nodes to access data in order to have redundancy of data access and maintain data availability for users accessing database deployments via database monitoring system 110.
Process 800 begins at act 802 where the database monitoring system 110 may be configured to retrieve data from a first node of a replica set. The first node may, for example, comprise a primary node or secondary node of the replica set. Any queries for data may, for example, be directed to the first or primary node. In one implementation, the first node may have a first intelligent agent associated with it. The intelligent agent may execute queries and retrieve data from the replica set associated with the first node.
Next, process 800 proceeds to act 804 where the database monitoring system 110 determines whether the first node is unavailable. In one implementation, a node may be unavailable during a process of restarting, shutting down, node rebalancing, or other process. During these processes, it may not be possible to retrieve data from the first node. In some embodiments, the database monitoring system 110 may receive an indication that the first node is unavailable. For example, the system 110 may receive an indication from an intelligent agent of the first node indicating that the first node is unavailable.
If the system 110 receives an indication that the first node is unavailable, 804 YES, process 800 proceeds to act 806 where the database monitoring system 110 may then retrieve information from the second node. For example, queries received by the database monitoring system 110 may be sent to the second node in order to retrieve data. In some embodiments, the second node may comprise another secondary node of the replica set. In one implementation, the second node may have a second intelligent agent running on it. The second intelligent agent may execute queries and retrieve data from the replica set associated with the second node. If, however, the first node is detected as available 804 YES, then the database monitoring system 110 may continue retrieving data from the first node.
The systems and/or system components shown can be specially configured to execute the processes and/or functions described. Various aspects and functions described herein, in accord with aspects of the present invention, may be implemented as specially configured hardware, software, or a combination of hardware and software on one or more specially configured computer systems. Additionally, aspects in accord with the present invention may be located on a single specially configured computer system or may be distributed among one or more specially configured computer systems connected to one or more communication networks.
For example, various systems and components (e.g., database monitoring system, user interface component, integration component, access manager, data cache etc.) may be distributed among one or more special purpose computer systems configured to provide a service to one or more client computers, mobile device, or to perform an overall task as part of a distributed system. Additionally, aspects may be performed on a client-server or multi-tier system that includes components or engines distributed among one or more server systems that perform various functions. Consequently, examples are not limited to executing on any particular system or group of systems. Further, aspects and functions may be implemented in software, hardware or firmware, or any combination thereof. Thus, aspects and functions may be implemented within methods, acts, systems, system elements and components using a variety of hardware and software configurations, and examples are not limited to any particular distributed architecture, network, or communication protocol.
Referring to
As illustrated in
The memory 1112 stores programs (e.g., sequences of instructions coded to be executable by the processor 1110) and data during operation of the computer system 1102. Thus, the memory 1112 may be a relatively high performance, volatile, random access memory such as a dynamic random access memory (“DRAM”) or static memory (“SRAM”). However, the memory 1112 may include any device for storing data, such as a disk drive or other nonvolatile storage device. Various examples may organize the memory 1112 into particularized and, in some cases, unique structures to perform the functions disclosed herein. These data structures may be sized and organized to store values for particular data and types of data.
Components of the computer system 1102 are coupled by an interconnection element such as the interconnection mechanism 1114. The interconnection element 1114 may include any communication coupling between system components such as one or more physical busses in conformance with specialized or standard computing bus technologies such as IDE, SCSI, PCI and InfiniBand. The interconnection element 1114 enables communications, including instructions and data, to be exchanged between system components of the computer system 1102.
The computer system 1102 also includes one or more interface devices 1116 such as input devices, output devices and combination input/output devices. Interface devices may receive input or provide output. More particularly, output devices may render information for external presentation. Input devices may accept information from external sources. Examples of interface devices include keyboards, mouse devices, trackballs, microphones, touch screens, printing devices, display screens, speakers, network interface cards, etc. Interface devices allow the computer system 1102 to exchange information and to communicate with external entities, such as users and other systems.
The data storage element 1118 includes a computer readable and writeable nonvolatile, or non-transitory, data storage medium in which instructions are stored that define a program or other object that is executed by the processor 1110. The data storage element 1118 also may include information that is recorded, on or in, the medium, and that is processed by the processor 1110 during execution of the program. More specifically, the information may be stored in one or more data structures specifically configured to conserve storage space or increase data exchange performance. The instructions may be persistently stored as encoded signals, and the instructions may cause the processor 1110 to perform any of the functions described herein. The medium may, for example, be optical disk, magnetic disk or flash memory, among others. In operation, the processor 1110 or some other controller causes data to be read from the nonvolatile recording medium into another memory, such as the memory 1112, that allows for faster access to the information by the processor 1110 than does the storage medium included in the data storage element 1118. The memory may be located in the data storage element 1118 or in the memory 1112, however, the processor 1110 manipulates the data within the memory, and then copies the data to the storage medium associated with the data storage element 1118 after processing is completed. A variety of components may manage data movement between the storage medium and other memory elements and examples are not limited to particular data management components. Further, examples are not limited to a particular memory system or data storage system.
Although the computer system 1102 is shown by way of example as one type of computer system upon which various aspects and functions may be practiced, aspects and functions are not limited to being implemented on the computer system 1102 as shown in
The computer system 1102 may be a computer system including an operating system that manages at least a portion of the hardware elements included in the computer system 1102. In some examples, a processor or controller, such as the processor 1110, executes an operating system. Examples of a particular operating system that may be executed include a Windows-based operating system, such as, Windows NT, Windows 2000 (Windows ME), Windows XP, Windows Vista or Windows 7, 8, or 10 operating systems, available from the Microsoft Corporation, a MAC OS System X operating system or an iOS operating system available from Apple Computer, one of many Linux-based operating system distributions, for example, the Enterprise Linux operating system available from Red Hat Inc., a Solaris operating system available from Oracle Corporation, or a UNIX operating systems available from various sources. Many other operating systems may be used, and examples are not limited to any particular operating system.
The processor 1110 and operating system together define a computer platform for which application programs in high-level programming languages are written. These component applications may be executable, intermediate, bytecode or interpreted code which communicates over a communication network, for example, the Internet, using a communication protocol, for example, TCP/IP. Similarly, aspects may be implemented using an object-oriented programming language, such as .Net, SmallTalk, Java, C++, Ada, C# (C-Sharp), Python, or JavaScript. Other object-oriented programming languages may also be used. Alternatively, functional, scripting, or logical programming languages may be used.
Additionally, various aspects and functions may be implemented in a non-programmed environment. For example, documents created in HTML, XML or other formats, when viewed in a window of a browser program, can render aspects of a graphical-user interface or perform other functions. Further, various examples may be implemented as programmed or non-programmed elements, or any combination thereof. For example, a web page may be implemented using HTML while a data object called from within the web page may be written in C++. Thus, the examples are not limited to a specific programming language and any suitable programming language could be used. Accordingly, the functional components disclosed herein may include a wide variety of elements (e.g., specialized hardware, executable code, data structures or objects) that are configured to perform the functions described herein.
In some examples, the components disclosed herein may read parameters that affect the functions performed by the components. These parameters may be physically stored in any form of suitable memory including volatile memory (such as RAM) or nonvolatile memory (such as a magnetic hard drive). In addition, the parameters may be logically stored in a propriety data structure (such as a database or file defined by a user space application) or in a commonly shared data structure (such as an application registry that is defined by an operating system). In addition, some examples provide for both system and user interfaces that allow external entities to modify the parameters and thereby configure the behavior of the components.
Based on the foregoing disclosure, it should be apparent to one of ordinary skill in the art that the embodiments disclosed herein are not limited to a particular computer system platform, processor, operating system, network, or communication protocol. Also, it should be apparent that the embodiments disclosed herein are not limited to a specific architecture or programming language.
It is to be appreciated that embodiments of the methods and apparatuses discussed herein are not limited in application to the details of construction and the arrangement of components set forth in the following description or illustrated in the accompanying drawings. The methods and apparatuses are capable of implementation in other embodiments and of being practiced or of being carried out in various ways. Examples of specific implementations are provided herein for illustrative purposes only and are not intended to be limiting. In particular, acts, elements and features discussed in connection with any one or more embodiments are not intended to be excluded from a similar role in any other embodiments.
Also, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. Any references to embodiments or elements or acts of the systems and methods herein referred to in the singular may also embrace embodiments including a plurality of these elements, and any references in plural to any embodiment or element or act herein may also embrace embodiments including only a single element. References in the singular or plural form are not intended to limit the presently disclosed systems or methods, their components, acts, or elements. The use herein of “including,” “comprising,” “having,” “containing,” “involving,” and variations thereof is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. References to “or” may be construed as inclusive so that any terms described using “or” may indicate any of a single, more than one, and all of the described terms. Use of at least one of and a list of elements (e.g., A, B, C) is intended to cover any one selection from A, B, C (e.g., A), any two selections from A, B, C (e.g., A and B), any three selections (e.g., A, B, C), etc., and any multiples of each selection.
Having thus described several aspects of at least one embodiment of this invention, it is to be appreciated that various alterations, modifications, and improvements will readily occur to those skilled in the art. Such alterations, modifications, and improvements are intended to be part of this disclosure, and are intended to be within the spirit and scope of the invention. Accordingly, the foregoing description and drawings are by way of example only.
This application is a continuation of and claims priority under 35 U.S.C. § 120 to U.S. application Ser. No. 15/627,672, titled “SYSTEMS AND METHODS FOR MONITORING DISTRIBUTED DATABASE DEPLOYMENTS” filed on Jun. 20, 2017, which claims priority under 35 U.S.C. § 119(e) to U.S. Provisional Application Ser. No. 62/355,087, entitled “SYSTEM AND METHOD FOR MANAGING DISTRIBUTED DATABASE DEPLOYMENTS” filed on Jun. 27, 2016, which are herein incorporated by reference in their entirety.
Number | Name | Date | Kind |
---|---|---|---|
4918593 | Huber | Apr 1990 | A |
5379419 | Heffernan et al. | Jan 1995 | A |
5416917 | Adair et al. | May 1995 | A |
5471629 | Risch | Nov 1995 | A |
5551027 | Choy et al. | Aug 1996 | A |
5598559 | Chaudhuri | Jan 1997 | A |
5710915 | McElhiney | Jan 1998 | A |
5884299 | Ramesh et al. | Mar 1999 | A |
5999179 | Kekic et al. | Dec 1999 | A |
6065017 | Barker | May 2000 | A |
6088524 | Levy et al. | Jul 2000 | A |
6112201 | Wical | Aug 2000 | A |
6115705 | Larson | Sep 2000 | A |
6212529 | Boothby et al. | Apr 2001 | B1 |
6240406 | Tannen | May 2001 | B1 |
6240514 | Inoue et al. | May 2001 | B1 |
6249866 | Brundett et al. | Jun 2001 | B1 |
6324540 | Khanna et al. | Nov 2001 | B1 |
6324654 | Wahl et al. | Nov 2001 | B1 |
6339770 | Leung et al. | Jan 2002 | B1 |
6351742 | Agarwal et al. | Feb 2002 | B1 |
6363389 | Lyle et al. | Mar 2002 | B1 |
6385201 | Iwata | May 2002 | B1 |
6385604 | Bakalash et al. | May 2002 | B1 |
6427230 | Goiffon et al. | Jul 2002 | B1 |
6438538 | Goldring | Aug 2002 | B1 |
6496843 | Getchius | Dec 2002 | B1 |
6505187 | Shatdal | Jan 2003 | B1 |
6611850 | Shen | Aug 2003 | B1 |
6687846 | Adrangi et al. | Feb 2004 | B1 |
6691101 | MacNicol et al. | Feb 2004 | B2 |
6748393 | Kapoor et al. | Jun 2004 | B1 |
6801905 | Andrei | Oct 2004 | B2 |
6823474 | Kampe et al. | Nov 2004 | B2 |
6920460 | Srinivasan et al. | Jul 2005 | B1 |
6959369 | Ashton et al. | Oct 2005 | B1 |
6973452 | Metzger et al. | Dec 2005 | B2 |
7020649 | Cochrane et al. | Mar 2006 | B2 |
7032089 | Ranade et al. | Apr 2006 | B1 |
7082473 | Breitbart et al. | Jul 2006 | B2 |
7177866 | Holenstein et al. | Feb 2007 | B2 |
7181460 | Coss et al. | Feb 2007 | B2 |
7191299 | Kekre et al. | Mar 2007 | B1 |
7246345 | Sharma et al. | Jul 2007 | B1 |
7447807 | Merry et al. | Nov 2008 | B1 |
7467103 | Murray et al. | Dec 2008 | B1 |
7469253 | Celis et al. | Dec 2008 | B2 |
7472117 | Dettinger et al. | Dec 2008 | B2 |
7486661 | Van den Boeck et al. | Feb 2009 | B2 |
7529834 | Birrell et al. | May 2009 | B1 |
7548928 | Dean et al. | Jun 2009 | B1 |
7552356 | Waterhouse et al. | Jun 2009 | B1 |
7558481 | Jenkins et al. | Jul 2009 | B2 |
7567991 | Armangau et al. | Jul 2009 | B2 |
7617369 | Bezbaruah et al. | Nov 2009 | B1 |
7634459 | Eshet et al. | Dec 2009 | B1 |
7647329 | Fischman et al. | Jan 2010 | B1 |
7657570 | Wang et al. | Feb 2010 | B2 |
7657578 | Karr et al. | Feb 2010 | B1 |
7668801 | Koudas et al. | Feb 2010 | B1 |
7761465 | Nonaka et al. | Jul 2010 | B1 |
7778959 | Fries et al. | Aug 2010 | B2 |
7827144 | Saito et al. | Nov 2010 | B1 |
7957284 | Lu et al. | Jun 2011 | B2 |
7962458 | Holenstein et al. | Jun 2011 | B2 |
8005804 | Greer | Aug 2011 | B2 |
8005868 | Saborit et al. | Aug 2011 | B2 |
8037059 | Bestgen et al. | Oct 2011 | B2 |
8078825 | Oreland et al. | Dec 2011 | B2 |
8082265 | Carlson et al. | Dec 2011 | B2 |
8086597 | Balmin et al. | Dec 2011 | B2 |
8099572 | Arora et al. | Jan 2012 | B1 |
8103906 | Alibakhsh et al. | Jan 2012 | B1 |
8108443 | Thusoo | Jan 2012 | B2 |
8126848 | Wagner | Feb 2012 | B2 |
8170984 | Bakalash et al. | May 2012 | B2 |
8185505 | Blitzer et al. | May 2012 | B1 |
8260840 | Sirota et al. | Sep 2012 | B1 |
8296419 | Khanna et al. | Oct 2012 | B1 |
8305999 | Palanki et al. | Nov 2012 | B2 |
8321558 | Sirota et al. | Nov 2012 | B1 |
8352450 | Mraz et al. | Jan 2013 | B1 |
8352463 | Nayak | Jan 2013 | B2 |
8363961 | Avidan et al. | Jan 2013 | B1 |
8370857 | Kamii et al. | Feb 2013 | B2 |
8386463 | Bestgen et al. | Feb 2013 | B2 |
8392482 | McAlister et al. | Mar 2013 | B1 |
8539197 | Marshall et al. | Sep 2013 | B1 |
8572031 | Merriman et al. | Oct 2013 | B2 |
8589382 | Betawadkar-Norwood | Nov 2013 | B2 |
8589574 | Connie et al. | Nov 2013 | B1 |
8615507 | Varadarajulu et al. | Dec 2013 | B2 |
8712044 | MacMillan et al. | Apr 2014 | B2 |
8712993 | Ordonez | Apr 2014 | B1 |
8751533 | Dhavale et al. | Jun 2014 | B1 |
8775070 | Bhatia | Jul 2014 | B1 |
8843441 | Rath et al. | Sep 2014 | B1 |
8869256 | Sample | Oct 2014 | B2 |
8996463 | Merriman et al. | Mar 2015 | B2 |
9015431 | Resch et al. | Apr 2015 | B2 |
9069827 | Rath et al. | Jun 2015 | B1 |
9116862 | Rath et al. | Aug 2015 | B1 |
9141814 | Murray | Sep 2015 | B1 |
9183254 | Cole et al. | Nov 2015 | B1 |
9262462 | Merriman et al. | Feb 2016 | B2 |
9268639 | Leggette et al. | Feb 2016 | B2 |
9274902 | Morley et al. | Mar 2016 | B1 |
9313604 | Holcombe | Apr 2016 | B1 |
9317576 | Merriman et al. | Apr 2016 | B2 |
9350633 | Cudak et al. | May 2016 | B2 |
9350681 | Kitagawa et al. | May 2016 | B1 |
9442995 | Pareek et al. | Sep 2016 | B2 |
9460008 | Leshinsky et al. | Oct 2016 | B1 |
9495427 | Abadi et al. | Nov 2016 | B2 |
9569481 | Chandra et al. | Feb 2017 | B1 |
9628404 | Goffinet et al. | Apr 2017 | B1 |
9660666 | Ciarlini et al. | May 2017 | B1 |
9715433 | Mu et al. | Jul 2017 | B2 |
9740762 | Horowitz et al. | Aug 2017 | B2 |
9792322 | Merriman et al. | Oct 2017 | B2 |
9800685 | Neerincx et al. | Oct 2017 | B2 |
9805108 | Merriman et al. | Oct 2017 | B2 |
9881034 | Horowitz et al. | Jan 2018 | B2 |
9959308 | Carman et al. | May 2018 | B1 |
10031931 | Horowitz et al. | Jul 2018 | B2 |
10031956 | Merriman et al. | Jul 2018 | B2 |
10262050 | Bostic et al. | Apr 2019 | B2 |
10303570 | Nakajima | May 2019 | B2 |
10346430 | Horowitz et al. | Jul 2019 | B2 |
10346434 | Morkel et al. | Jul 2019 | B1 |
10366100 | Horowitz et al. | Jul 2019 | B2 |
10372926 | Leshinsky et al. | Aug 2019 | B1 |
10394822 | Stearn | Aug 2019 | B2 |
10423626 | Stearn et al. | Sep 2019 | B2 |
10430433 | Stearn et al. | Oct 2019 | B2 |
10467245 | Sirer et al. | Nov 2019 | B2 |
10474645 | Freedman et al. | Nov 2019 | B2 |
10489357 | Horowitz et al. | Nov 2019 | B2 |
10496669 | Merriman et al. | Dec 2019 | B2 |
10614098 | Horowitz et al. | Apr 2020 | B2 |
10621050 | Horowitz et al. | Apr 2020 | B2 |
10621200 | Merriman et al. | Apr 2020 | B2 |
10671496 | Horowitz et al. | Jun 2020 | B2 |
10673623 | Horowitz et al. | Jun 2020 | B2 |
10698775 | Horowitz et al. | Jun 2020 | B2 |
10713275 | Merriman et al. | Jul 2020 | B2 |
10713280 | Horowitz et al. | Jul 2020 | B2 |
10740353 | Horowitz et al. | Aug 2020 | B2 |
10740355 | Horowitz et al. | Aug 2020 | B2 |
10776220 | Horowitz et al. | Sep 2020 | B2 |
10846305 | Merriman et al. | Nov 2020 | B2 |
10846411 | Horowitz et al. | Nov 2020 | B2 |
10866868 | Horowitz | Dec 2020 | B2 |
10872095 | Horowitz et al. | Dec 2020 | B2 |
10977277 | Merriman et al. | Apr 2021 | B2 |
10990590 | Merriman et al. | Apr 2021 | B2 |
10997211 | Merriman et al. | May 2021 | B2 |
11012806 | Tan et al. | May 2021 | B2 |
11222043 | Horowitz et al. | Jan 2022 | B2 |
11394532 | Horowitz et al. | Jul 2022 | B2 |
20010021929 | Lin | Sep 2001 | A1 |
20020029207 | Bakalash et al. | Mar 2002 | A1 |
20020065675 | Grainger et al. | May 2002 | A1 |
20020065676 | Grainger et al. | May 2002 | A1 |
20020065677 | Grainger et al. | May 2002 | A1 |
20020143901 | Lupo et al. | Oct 2002 | A1 |
20020147842 | Breitbart et al. | Oct 2002 | A1 |
20020184239 | Mosher, Jr. et al. | Dec 2002 | A1 |
20020198872 | MacNicol et al. | Dec 2002 | A1 |
20030046307 | Rivette et al. | Mar 2003 | A1 |
20030212668 | Hinshaw et al. | Apr 2003 | A1 |
20030084073 | Hotti et al. | May 2003 | A1 |
20030088659 | Susarla et al. | May 2003 | A1 |
20030182427 | Halpern | Sep 2003 | A1 |
20030187864 | McGoveran | Oct 2003 | A1 |
20040078569 | Hotti | Apr 2004 | A1 |
20040133591 | Holenstein et al. | Jul 2004 | A1 |
20040168084 | Owen et al. | Aug 2004 | A1 |
20040186817 | Thames et al. | Sep 2004 | A1 |
20040186826 | Choi et al. | Sep 2004 | A1 |
20040205048 | Pizzo et al. | Oct 2004 | A1 |
20040220937 | Bickford et al. | Nov 2004 | A1 |
20040236743 | Blaicher et al. | Nov 2004 | A1 |
20040254919 | Giuseppini | Dec 2004 | A1 |
20050027796 | San Andres | Feb 2005 | A1 |
20050033756 | Kottomtharayil et al. | Feb 2005 | A1 |
20050038833 | Colrain et al. | Feb 2005 | A1 |
20050192921 | Chaudhuri et al. | Sep 2005 | A1 |
20050216923 | Krebs | Sep 2005 | A1 |
20050234841 | Miao et al. | Oct 2005 | A1 |
20050283457 | Sonkin et al. | Dec 2005 | A1 |
20060004746 | Angus et al. | Jan 2006 | A1 |
20060020586 | Prompt et al. | Jan 2006 | A1 |
20060085541 | Cuomo et al. | Apr 2006 | A1 |
20060090095 | Massa et al. | Apr 2006 | A1 |
20060168154 | Zhang et al. | Jul 2006 | A1 |
20060209782 | Miller et al. | Sep 2006 | A1 |
20060218123 | Chowdhuri et al. | Sep 2006 | A1 |
20060224603 | Correll, Jr. | Oct 2006 | A1 |
20060235905 | Kapur | Oct 2006 | A1 |
20060259160 | Hood et al. | Nov 2006 | A1 |
20060287998 | Foiling et al. | Dec 2006 | A1 |
20060288232 | Ho et al. | Dec 2006 | A1 |
20060294129 | Stanfill et al. | Dec 2006 | A1 |
20070050436 | Chen et al. | Mar 2007 | A1 |
20070061487 | Moore et al. | Mar 2007 | A1 |
20070094237 | Mitchell et al. | Apr 2007 | A1 |
20070124317 | Dettinger et al. | May 2007 | A1 |
20070203944 | Batra et al. | Aug 2007 | A1 |
20070226640 | Holbrook et al. | Sep 2007 | A1 |
20070233746 | Garbow et al. | Oct 2007 | A1 |
20070240129 | Kretzschmar et al. | Oct 2007 | A1 |
20080002741 | Maheshwari et al. | Jan 2008 | A1 |
20080005475 | Lubbers et al. | Jan 2008 | A1 |
20080016021 | Gulbeden et al. | Jan 2008 | A1 |
20080071755 | friedman et al. | Mar 2008 | A1 |
20080098041 | Chidambaran et al. | Apr 2008 | A1 |
20080140971 | Dankel et al. | Jun 2008 | A1 |
20080162590 | Kundu et al. | Jul 2008 | A1 |
20080288646 | Hasha et al. | Nov 2008 | A1 |
20090030986 | Bates | Jan 2009 | A1 |
20090055350 | Branish et al. | Feb 2009 | A1 |
20090077010 | Muras et al. | Mar 2009 | A1 |
20090094318 | Gladwin et al. | Apr 2009 | A1 |
20090172322 | Gilpin et al. | Jul 2009 | A1 |
20090222474 | Alpern et al. | Sep 2009 | A1 |
20090240744 | Thomson et al. | Sep 2009 | A1 |
20090254572 | Redlich et al. | Oct 2009 | A1 |
20090271412 | Lacapra et al. | Oct 2009 | A1 |
20100011026 | Saha et al. | Jan 2010 | A1 |
20100030793 | Cooper et al. | Feb 2010 | A1 |
20100030800 | Brodfuehrer et al. | Feb 2010 | A1 |
20100049717 | Ryan et al. | Feb 2010 | A1 |
20100057764 | Williamson | Mar 2010 | A1 |
20100058010 | Augenstein et al. | Mar 2010 | A1 |
20100094851 | Bent et al. | Apr 2010 | A1 |
20100106934 | Calder et al. | Apr 2010 | A1 |
20100161492 | Harvey et al. | Jun 2010 | A1 |
20100198791 | Wu et al. | Aug 2010 | A1 |
20100205028 | Johnson et al. | Aug 2010 | A1 |
20100223078 | Willis et al. | Sep 2010 | A1 |
20100235606 | Oreland et al. | Sep 2010 | A1 |
20100250497 | Redlich et al. | Sep 2010 | A1 |
20100250930 | Csaszar et al. | Sep 2010 | A1 |
20100257142 | Murphy et al. | Oct 2010 | A1 |
20100333111 | Kothamasu | Dec 2010 | A1 |
20100333116 | Prahlad et al. | Dec 2010 | A1 |
20110022642 | deMilo et al. | Jan 2011 | A1 |
20110032571 | Kitada | Feb 2011 | A1 |
20110125704 | Mordinova et al. | May 2011 | A1 |
20110125766 | Carozza | May 2011 | A1 |
20110125894 | Anderson et al. | May 2011 | A1 |
20110138148 | Friedman et al. | Jun 2011 | A1 |
20110202792 | Atzmony | Aug 2011 | A1 |
20110225122 | Denuit et al. | Sep 2011 | A1 |
20110225123 | D'Souza et al. | Sep 2011 | A1 |
20110231447 | Starkey | Sep 2011 | A1 |
20110246717 | Kobayashi et al. | Oct 2011 | A1 |
20110258225 | Taylor et al. | Oct 2011 | A1 |
20110258317 | Sinha et al. | Oct 2011 | A1 |
20110295686 | Martin-Cocher | Dec 2011 | A1 |
20110307338 | Carlson | Dec 2011 | A1 |
20120054155 | Darcy | Mar 2012 | A1 |
20120054249 | Batra et al. | Mar 2012 | A1 |
20120054755 | Evans | Mar 2012 | A1 |
20120076058 | Padmanabh et al. | Mar 2012 | A1 |
20120078848 | Jennas et al. | Mar 2012 | A1 |
20120078896 | Nixon | Mar 2012 | A1 |
20120079224 | Clayton et al. | Mar 2012 | A1 |
20120084414 | Brock et al. | Apr 2012 | A1 |
20120084789 | Iorio | Apr 2012 | A1 |
20120109892 | Novik et al. | May 2012 | A1 |
20120109935 | Meijer | May 2012 | A1 |
20120130973 | Tamm et al. | May 2012 | A1 |
20120130988 | Nica et al. | May 2012 | A1 |
20120131278 | Chang et al. | May 2012 | A1 |
20120136835 | Kosuru et al. | May 2012 | A1 |
20120138671 | Gaede et al. | Jun 2012 | A1 |
20120158655 | Dove et al. | Jun 2012 | A1 |
20120158949 | Lee | Jun 2012 | A1 |
20120159097 | Jennas, II et al. | Jun 2012 | A1 |
20120166390 | Merriman et al. | Jun 2012 | A1 |
20120166517 | Lee et al. | Jun 2012 | A1 |
20120179833 | Kenrick et al. | Jul 2012 | A1 |
20120198200 | Li et al. | Aug 2012 | A1 |
20120209625 | Armstrong | Aug 2012 | A1 |
20120215740 | Vaillant et al. | Aug 2012 | A1 |
20120215763 | Hughes et al. | Aug 2012 | A1 |
20120221540 | Rose et al. | Aug 2012 | A1 |
20120254175 | Horowitz et al. | Oct 2012 | A1 |
20120274664 | Fagnou | Nov 2012 | A1 |
20120320914 | Thyni et al. | Dec 2012 | A1 |
20130019296 | Brandenburg | Jan 2013 | A1 |
20130151477 | Tsaur et al. | Jun 2013 | A1 |
20130151558 | Chércoles Sánchez et al. | Jun 2013 | A1 |
20130179450 | Chitiveli | Jul 2013 | A1 |
20130290249 | Merriman et al. | Oct 2013 | A1 |
20130290471 | Venkatesh | Oct 2013 | A1 |
20130332484 | Gajic | Dec 2013 | A1 |
20130339379 | Ferrari et al. | Dec 2013 | A1 |
20130346366 | Ananthanarayanan et al. | Dec 2013 | A1 |
20140013334 | Bisdikian et al. | Jan 2014 | A1 |
20140032525 | Merriman et al. | Jan 2014 | A1 |
20140032579 | Merriman et al. | Jan 2014 | A1 |
20140032628 | Cudak et al. | Jan 2014 | A1 |
20140074790 | Berman et al. | Mar 2014 | A1 |
20140101100 | Hu et al. | Apr 2014 | A1 |
20140164831 | Merriman et al. | Jun 2014 | A1 |
20140180723 | Cote et al. | Jun 2014 | A1 |
20140201267 | Yang | Jul 2014 | A1 |
20140258343 | Nikula | Sep 2014 | A1 |
20140279929 | Gupta et al. | Sep 2014 | A1 |
20140280380 | Jagtap et al. | Sep 2014 | A1 |
20140289197 | Webber et al. | Sep 2014 | A1 |
20150012797 | Leggette et al. | Jan 2015 | A1 |
20150016300 | Devireddy et al. | Jan 2015 | A1 |
20150074041 | Bhattacharjee et al. | Mar 2015 | A1 |
20150081766 | Curtis et al. | Mar 2015 | A1 |
20150242531 | Rodniansky | Aug 2015 | A1 |
20150278295 | Merriman et al. | Oct 2015 | A1 |
20150301901 | Rath et al. | Oct 2015 | A1 |
20150331755 | Morgan | Nov 2015 | A1 |
20150341212 | Hsiao | Nov 2015 | A1 |
20150378786 | Supama et al. | Dec 2015 | A1 |
20150378825 | Resch | Dec 2015 | A1 |
20160005423 | Neppalli et al. | Jan 2016 | A1 |
20160042008 | Tripathy et al. | Feb 2016 | A1 |
20160048345 | Vijayrao et al. | Feb 2016 | A1 |
20160110284 | Athalye et al. | Apr 2016 | A1 |
20160110414 | Park | Apr 2016 | A1 |
20160162354 | Singhai et al. | Jun 2016 | A1 |
20160162374 | Mutha et al. | Jun 2016 | A1 |
20160188377 | Thimmappa et al. | Jun 2016 | A1 |
20160198044 | Gruchala | Jul 2016 | A1 |
20160203202 | Merriman et al. | Jul 2016 | A1 |
20160246861 | Merriman et al. | Aug 2016 | A1 |
20160253109 | Litke et al. | Sep 2016 | A1 |
20160306709 | Shaull | Oct 2016 | A1 |
20160323378 | Coskun et al. | Nov 2016 | A1 |
20160364440 | Lee et al. | Dec 2016 | A1 |
20170032007 | Merriman | Feb 2017 | A1 |
20170032010 | Merriman | Feb 2017 | A1 |
20170091327 | Bostic et al. | Mar 2017 | A1 |
20170109398 | Stearn | Apr 2017 | A1 |
20170109399 | Stearn et al. | Apr 2017 | A1 |
20170109421 | Stearn et al. | Apr 2017 | A1 |
20170169059 | Horowitz et al. | Jun 2017 | A1 |
20170177658 | Lee et al. | Jun 2017 | A1 |
20170262516 | Horowitz et al. | Sep 2017 | A1 |
20170262517 | Horowitz et al. | Sep 2017 | A1 |
20170262519 | Horowitz et al. | Sep 2017 | A1 |
20170262638 | Horowitz et al. | Sep 2017 | A1 |
20170264432 | Horowitz et al. | Sep 2017 | A1 |
20170270176 | Horowitz et al. | Sep 2017 | A1 |
20170286510 | Horowitz et al. | Oct 2017 | A1 |
20170286516 | Horowitz et al. | Oct 2017 | A1 |
20170286517 | Horowitz et al. | Oct 2017 | A1 |
20170286518 | Horowitz et al. | Oct 2017 | A1 |
20170322954 | Horowitz et al. | Nov 2017 | A1 |
20170322996 | Horowitz et al. | Nov 2017 | A1 |
20170344290 | Horowitz et al. | Nov 2017 | A1 |
20170344441 | Horowitz et al. | Nov 2017 | A1 |
20170344618 | Horowitz et al. | Nov 2017 | A1 |
20170371750 | Horowitz et al. | Dec 2017 | A1 |
20170371968 | Horowitz et al. | Dec 2017 | A1 |
20180004801 | Burchall et al. | Jan 2018 | A1 |
20180004804 | Merriman et al. | Jan 2018 | A1 |
20180095852 | Keremane et al. | Apr 2018 | A1 |
20180096045 | Merriman et al. | Apr 2018 | A1 |
20180096066 | Venkataramanappa et al. | Apr 2018 | A1 |
20180150230 | Schreter | May 2018 | A1 |
20180165338 | Kumar et al. | Jun 2018 | A1 |
20180173745 | Balasubramanian et al. | Jun 2018 | A1 |
20180176300 | Chen et al. | Jun 2018 | A1 |
20180300203 | Kathpal et al. | Oct 2018 | A1 |
20180300209 | Rahut | Oct 2018 | A1 |
20180300381 | Horowitz et al. | Oct 2018 | A1 |
20180300385 | Merriman et al. | Oct 2018 | A1 |
20180314750 | Merriman et al. | Nov 2018 | A1 |
20180343131 | George et al. | Nov 2018 | A1 |
20180365114 | Horowitz | Dec 2018 | A1 |
20190102410 | Horowitz et al. | Apr 2019 | A1 |
20190303382 | Bostic et al. | Oct 2019 | A1 |
20200097486 | Horowitz et al. | Mar 2020 | A1 |
20200099392 | Hecker et al. | Mar 2020 | A1 |
20200160297 | Munk | May 2020 | A1 |
20200285549 | Horowitz et al. | Sep 2020 | A1 |
20200295925 | Horowitz et al. | Sep 2020 | A1 |
20200327021 | Horowitz et al. | Oct 2020 | A1 |
20200341867 | Horowitz et al. | Oct 2020 | A1 |
Entry |
---|
U.S. Appl. No. 15/706,593, filed Sep. 15, 2017, Merriman et al. |
U.S. Appl. No. 16/890,948, filed Jun. 2, 2020, Merriman et al. |
U.S. Appl. No. 16/294,227, filed Mar. 6, 2019, Bostic et al. |
U.S. Appl. No. 16/887,092, filed May 29, 2020, Horowitz et al. |
U.S. Appl. No. 15/605,143, filed May 25, 2017, Horowitz. |
U.S. Appl. No. 15/604,879, filed May 25, 2017, Horowitz. |
U.S. Appl. No. 17/083,238, filed Oct. 28, 2020, Horowitz et al. |
U.S. Appl. No. 16/883,653, filed May 26, 2020, Horowitz et al. |
U.S. Appl. No. 16/912,963, filed Jun. 26, 2020, Horowitz et al. |
U.S. Appl. No. 16/456,685, filed Jun. 28, 2019, Horowitz et al. |
U.S. Appl. No. 16/846,916, filed Apr. 13, 2020, Horowitz et al. |
U.S. Appl. No. 15/627,631, filed Jun. 20, 2017, Horowitz et al. |
U.S. Appl. No. 15/627,656, filed Jun. 20, 2017, Horowitz et al. |
U.S. Appl. No. 16/013,720, filed Jun. 20, 2018, Horowitz et al. |
U.S. Appl. No. 16/013,706, filed Jun. 20, 2018, Horowitz et al. |
U.S. Appl. No. 16/013,725, filed Jun. 20, 2018, Horowitz et al. |
[No Author Listed], Automated Administration Tasks (SQL Server Agent). https://docs.microsoft.com/en-us/sql/ssms/agent/automated-adminsitration-tasks-sql-server-agent. 2 pages, [downloaded Mar. 4, 2017]. |
Chang et al., Bigtable: a distributed storage system for structured data. OSDI'06: Seventh Symposium on Operating System Design and Implementation. Nov. 2006. |
Cooper et al., PNUTS: Yahoo!'s hosted data serving platform. VLDB Endowment. Aug. 2008. |
Decandia et al., Dynamo: Amazon's highly available key-value store. SOSP 2007. Oct. 2004. |
Nelson et al., Automate MongoDB with MMS. PowerPoint Presentation. Published Jul. 24, 2014. 27 slides. http://www.slideshare.net/mongodb/mms-automation-mongo-db-world. |
Ongaro et al., In Search of an Understandable Consensus Algorithm Proceedings of USENIX ATC '14: 2014 USENIX Annual Technical Conference. Philadelphia, PA. Jun. 19-20, 2014; pp. 305-320. |
Poder, Oracle living books. 2009. <http://tech.e2sn.com/oracle/sql/oracle-execution-plan-operation-reference >. |
Stirman, Run MongoDB with Confidence using MMS. PowerPoint Presentation. Published Oct. 6, 2014. 34 slides. http://www.slideshare.net/mongodb/mongo-db-boston-run-mongodb-with-mms-20141001. |
Van Renesse et al., Chain replication for supporting high throughput and availability. OSDI. 2004: 91-104. |
Walsh et al., Xproc: An XML Pipeline Language. May 11, 2011. <https://www.w3.org/TR/xproc/>. |
Wikipedia, Dataflow programming. Oct. 2011. <http://en.wikipedia.org/wiki/Dataflow_programming>. |
Wikipedia, Pipeline (Unix). Sep. 2011. <http://en.wikipedia.org/wiki/Pipeline (Unix)>. |
Wilkins et al., Migrate DB2 applications to a partitioned database. developerWorks, IBM. Apr. 24, 2008, 33 pages. |
U.S. Appl. No. 17/541,890, filed Dec. 3, 2021, Horowitz et al. |
Number | Date | Country | |
---|---|---|---|
20200409804 A1 | Dec 2020 | US |
Number | Date | Country | |
---|---|---|---|
62355087 | Jun 2016 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15627672 | Jun 2017 | US |
Child | 17018475 | US |