Abstract:
Transactional and non-transactional data for maintaining session state is described. In a session, a server instance receives, from a client, a request to execute transactional commands and non-transactional commands. The server instance sends at least one first directive executable at the client to store, in a first set of information, one or more first items representing one or more particular transactional commands that are open but not yet committed. The first set of information is maintained separately from a second set of information including one or more second items representing one or more particular non-transactional commands that have been processed. Based on committing one or more particular transactional commands, the server instance sends at least one second directive executable at the client to purge, from the first set of information, the one or more first items without purging, from the second set of information, the one or more second items.
Abstract:
A method, machine, and computer-readable medium is provided for managing transactional sets of commands sent from a client to a server for execution. A server receives, from a client in a second session, a request that identifies a set of commands that were sent by the client in a first session. The set of commands comprises one or more transactions. The server determines that at least one transaction of the one or more transactions in the set of commands has not committed. Based at least in part on determining that the at least one transaction of the one or more transactions has not committed, the server blocks, from the second session, completion of the at least one transaction in the first session to prevent committing of the at least one transaction in the first session.
Abstract:
A process, apparatus, and computer-readable medium are provided for rebuilding a database session when a previous database session becomes unavailable and the commands previously sent for execution on the previous database session satisfy certain criteria. The process includes determining whether or not a set of commands sent by a client for execution on the previous database session is acceptable to replay based at least in part on whether or not the set of commands satisfies one or more criteria. The process further includes determining that the previous database session is unavailable due to a planned or unplanned recoverable error. In response to determining that the previous database session is unavailable, if the set of commands is acceptable for replay, the set of commands is sent for execution on a new database session to rebuild the state, which was exposed to the client from the previous database session, on the new database session. The process masks the outage from the application.
Abstract:
Techniques are described for failing over from a primary database to the replicated logical database of the primary database. Techniques are also described for the client-side object references to be preserved when failing over to the logical replica database, for AS OF and other queries preserved, and for versioning of checksums, signatures and structures across logical replicas.
Abstract:
Techniques are described for closing one or more connections with a database management system (DBMS) as part of a planned operation such as maintenance and load balancing. In an embodiment, a request is received for a planned operation of a database server of a DBMS that requires releasing and migrating database sessions. Over a database connection with the database server, the DBMS or a Client-Driver on the client system that interfaces with the DBMS, may receive request(s) from the client system. Based on the request(s), a safe point, for the database connection with the database server, at which the database connection of the client system with the database server can be closed without affecting the success of execution of next one or more command that the client system intended to request the DBMS to execute on the database server, is determined. In an embodiment, in response to the request(s), the DBMS and/or Client-Driver, while the connection is valid, provide to the client system an invalid status for a connection test request. Such a response may cause the client system to use a different database connection to connect with the DBMS. After returning the response to the client system, the DBMS and/or Client-Driver causes the database session with the DBMS to close. In an embodiment, for database sessions to be released, the DBMS identifies a safe point in a database session by a detected request boundary or where the session states are determined to be recoverable or the failover is determined to be expected to succeed. At such a safe point, all database session states are known, and failing the session over to another database instance offering the requested service can be performed safely and transparent to applications.
Abstract:
A method, machine, and computer-readable medium is provided for managing transactional sets of commands sent from a client to a server for execution. A server receives, from a client in a second session, a request that identifies a set of commands that were sent by the client in a first session. The set of commands comprises one or more transactions. The server determines that at least one transaction of the one or more transactions in the set of commands has not committed. Based at least in part on determining that the at least one transaction of the one or more transactions has not committed, the server blocks, from the second session, completion of the at least one transaction in the first session to prevent committing of the at least one transaction in the first session.
Abstract:
A process, apparatus, and computer-readable medium are provided for rebuilding a database session when a previous database session becomes unavailable and the commands previously sent for execution on the previous database session satisfy certain criteria. The process includes determining whether or not a set of commands sent by a client for execution on the previous database session is acceptable to replay based at least in part on whether or not the set of commands satisfies one or more criteria. The process further includes determining that the previous database session is unavailable due to a planned or unplanned recoverable error. In response to determining that the previous database session is unavailable, if the set of commands is acceptable for replay, the set of commands is sent for execution on a new database session to rebuild the state, which was exposed to the client from the previous database session, on the new database session. The process masks the outage from the application.
Abstract:
Techniques are provided to allow users to define a global service that is offered across multiple replicated databases. Database clients connect to and use a global service just as they do with regular services on a single database today. Upon receiving a connection request, a collection of components, referred to collectively as the Global Data Service framework (GDS framework), automatically chooses the best database server instances to which to connect a client. Once those connections have been established, the clients determine which database server instance, of those database server instances to which they are connected, to send requests to based, at least in part, on advisory messages sent to the clients by the GDS framework.
Abstract:
Transactional and non-transactional data for maintaining session state is described. In a session, a server instance receives, from a client, a request to execute transactional commands and non-transactional commands. The server instance sends at least one first directive executable at the client to store, in a first set of information, one or more first items representing one or more particular transactional commands that are open but not yet committed. The first set of information is maintained separately from a second set of information including one or more second items representing one or more particular non-transactional commands that have been processed. Based on committing one or more particular transactional commands, the server instance sends at least one second directive executable at the client to purge, from the first set of information, the one or more first items without purging, from the second set of information, the one or more second items.
Abstract:
Transactional and non-transactional data for maintaining session state is described. In a session, a server instance receives, from a client, a request to execute transactional commands and non-transactional commands. The server instance sends at least one first directive executable at the client to store, in a first set of information, one or more first items representing one or more particular transactional commands that are open but not yet committed. The first set of information is maintained separately from a second set of information including one or more second items representing one or more particular non-transactional commands that have been processed. Based on committing one or more particular transactional commands, the server instance sends at least one second directive executable at the client to purge, from the first set of information, the one or more first items without purging, from the second set of information, the one or more second items.