Patents by Inventor Douglas Surber

Douglas Surber has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 11636075
    Abstract: In accordance with an embodiment, described herein are systems and methods for providing direct access to a sharded database. A shard director provides access by software client applications to database shards. A connection pool (e.g., a Universal Connection Pool, UCP) and database driver (e.g., a Java Database Connectivity, JDBC, component) can be configured to allow a client application to provide a shard key, either during connection checkout or at a later time; recognize shard keys specified by the client application; and enable connection by the client application to a particular shard or chunk. The approach enables efficient re-use of connection resources, and faster access to appropriate shards.
    Type: Grant
    Filed: April 20, 2016
    Date of Patent: April 25, 2023
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Vidya Hegde, Jean de Lavarene, Douglas Surber, Mark Dilman, Leonid Novak, Wei Ming Hu, Ashok Shivarudraiah, Tong Zhou, Ilya Taranov
  • Patent number: 11556500
    Abstract: Techniques are disclosed herein for identifying, recording and restoring the state of a database session and various aspects thereof. A session template data structure is generated that includes session attribute values describing various aspects of the session that is established between a client system and a database management system (DBMS and enables the client system to issue to the DBMS commands for execution. Based on the session attribute values, DBMS may generate a template identifier corresponding to the session template data structure. The template identifier may be stored in an association with the session state that it partially (or in whole) represents. In an embodiment, when another state of a session is captured, if the template identifier for the state is the same, then rather than storing the attribute-value pairs for the other state, the template identifier is further associated with the other state.
    Type: Grant
    Filed: September 28, 2018
    Date of Patent: January 17, 2023
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Jonathan Giloni, Kevin S. Neel, Carol L. Colrain, Douglas Surber, Ravi Thammaiah, Tong Zhou, Arturo Ismael Quinto, Manoj Dhanapal
  • Patent number: 11409721
    Abstract: In accordance with an embodiment, the system enables access to a sharded database using a cache and a shard topology. A shard-aware client application connecting to a sharded database can use a connection pool (e.g., a Universal Connection Pool, UCP), to store or access connections to different shards or chunks of the sharded database within a shared pool. As new connections are created, a shard topology layer can be built at the database driver layer, which learns and caches shard key ranges to locations of shards. The shard topology layer enables subsequent connection requests from a client application to use a fast key path access to the appropriate shard or chunk.
    Type: Grant
    Filed: December 23, 2019
    Date of Patent: August 9, 2022
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Vidya Hegde, Jean de Lavarene, Douglas Surber, Mark Dilman, Leonid Novak, Wei Ming Hu, Ashok Shivarudraiah, Tong Zhou, Ilya Taranov
  • Patent number: 11204813
    Abstract: In accordance with an embodiment, a system enables multidimensional search within a resource pool, to support complex borrow operations such as, for example, specifying ranges for particular connection properties. As threads access the pool, attempting to borrow connections having particular connection properties, one or more skipped pool elements can be represented as skip lists within a k-dimensional tree (KD-tree) or other data structure that enables searching across multiple dimensions. In response to receiving a request to borrow a connection having particular connection properties, a multidimensional search can be performed within the KD-tree to determine the availability of a connection having the requested properties.
    Type: Grant
    Filed: October 12, 2020
    Date of Patent: December 21, 2021
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Yuri Dolgov, Douglas Surber, Jean De Lavarene
  • Publication number: 20210034437
    Abstract: In accordance with an embodiment, a system enables multidimensional search within a resource pool, to support complex borrow operations such as, for example, specifying ranges for particular connection properties. As threads access the pool, attempting to borrow connections having particular connection properties, one or more skipped pool elements can be represented as skip lists within a k-dimensional tree (KD-tree) or other data structure that enables searching across multiple dimensions. In response to receiving a request to borrow a connection having particular connection properties, a multidimensional search can be performed within the KD-tree to determine the availability of a connection having the requested properties.
    Type: Application
    Filed: October 12, 2020
    Publication date: February 4, 2021
    Inventors: Yuri Dolgov, Douglas Surber, Jean De Lavarene
  • Patent number: 10909088
    Abstract: In accordance with an embodiment, described herein is a system and method for high availability and load balancing in a database environment. A transparency engine can be provided between client applications and a database, and can operate as a proxy engine for the database and as a session abstraction layer for the client applications, to enable the client applications to utilize database features provided by the connection pool without code changes to the client applications. The transparency can keep track of session states, request boundaries and cursors to efficiently reuse the database connections across the client applications. The transparency engine can use the request boundaries and indicators from the database to detect safe places to drain database connections in the event of database outages.
    Type: Grant
    Filed: March 6, 2018
    Date of Patent: February 2, 2021
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Carol Colrain, Kevin Neel, Pablo Silberkasten, Michael McMahon, Saurabh Verma, Douglas Surber, Jean De Lavarene
  • Patent number: 10802890
    Abstract: In accordance with an embodiment, a system enables multidimensional search within a resource pool, to support complex borrow operations such as, for example, specifying ranges for particular connection properties. As threads access the pool, attempting to borrow connections having particular connection properties, one or more skipped pool elements can be represented as skip lists within a k-dimensional tree (KD-tree) or other data structure that enables searching across multiple dimensions. In response to receiving a request to borrow a connection having particular connection properties, a multidimensional search can be performed within the KD-tree to determine the availability of a connection having the requested properties.
    Type: Grant
    Filed: January 24, 2018
    Date of Patent: October 13, 2020
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Yuri Dolgov, Douglas Surber, Jean De Lavarene
  • Patent number: 10776378
    Abstract: In accordance with an embodiment, described herein is a system and method for use of immutable accessors with dynamic byte arrays. In accordance with an embodiment, a database driver provides access by software applications executing at an application server to data at a database, including associating a result set cache manager with a pool of result set caches. Each result set cache can be associated with one or more immutable accessors. In response to receiving a request from an application, to access a set of data, the set of data from the database is received into a particular result set cache. In response to receiving a subsequent request for a same set of data, from a same or another application using a same or another database connection, access is provided to the immutable accessor associated with the particular result set cache, for use in accessing the data therein.
    Type: Grant
    Filed: July 8, 2015
    Date of Patent: September 15, 2020
    Assignee: ORACLE INTERNTIONAL CORPORATION
    Inventors: Ashok Shivarudraiah, Douglas Surber, Jean De Lavarene
  • Patent number: 10678761
    Abstract: In accordance with an embodiment, described herein is a system and method for high availability and load balancing in a database environment. A transparency engine can be provided between client applications and a database, and can operate as a proxy engine for the database and as a session abstraction layer for the client applications, to enable the client applications to utilize database features provided by the connection pool without code changes to the client applications. The transparency can keep track of session states, request boundaries and cursors to efficiently reuse the database connections across the client applications. The transparency engine can use the request boundaries and indicators from the database to detect safe places to drain database connections in the event of database outages.
    Type: Grant
    Filed: March 6, 2018
    Date of Patent: June 9, 2020
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Carol Colrain, Kevin Neel, Pablo Silberkasten, Michael McMahon, Saurabh Verma, Douglas Surber, Jean De Lavarene
  • Publication number: 20200125546
    Abstract: In accordance with an embodiment, the system enables access to a sharded database using a cache and a shard topology. A shard-aware client application connecting to a sharded database can use a connection pool (e.g., a Universal Connection Pool, UCP), to store or access connections to different shards or chunks of the sharded database within a shared pool. As new connections are created, a shard topology layer can be built at the database driver layer, which learns and caches shard key ranges to locations of shards. The shard topology layer enables subsequent connection requests from a client application to use a fast key path access to the appropriate shard or chunk.
    Type: Application
    Filed: December 23, 2019
    Publication date: April 23, 2020
    Inventors: Vidya Hegde, Jean de Lavarene, Douglas Surber, Mark Dilman, Leonid Novak, Wei Ming Hu, Ashok Shivarudraiah, Tong Zhou, Ilya Taranov
  • Patent number: 10545935
    Abstract: In accordance with an embodiment, the system enables access to a sharded database using a cache and a shard topology. A shard-aware client application connecting to a sharded database can use a connection pool (e.g., a Universal Connection Pool, UCP), to store or access connections to different shards or chunks of the sharded database within a shared pool. As new connections are created, a shard topology layer can be built at the database driver layer, which learns and caches shard key ranges to locations of shards. The shard topology layer enables subsequent connection requests from a client application to use a fast key path access to the appropriate shard or chunk.
    Type: Grant
    Filed: April 20, 2016
    Date of Patent: January 28, 2020
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Vidya Hegde, Jean de Lavarene, Douglas Surber, Mark Dilman, Leonid Novak, Wei Ming Hu, Ashok Shivarudraiah, Tong Zhou, Ilya Taranov
  • Patent number: 10318520
    Abstract: A system and method for reducing communications overhead in a distributed transaction processing environment such as an XA environment. In accordance with an embodiment communication overhead is reduced in a transaction by deferring a transaction end communication. The deferred transaction end communication is determined from a subsequent XA transaction communication thereby reducing the number of networks calls required for each transaction and enhancing system performance.
    Type: Grant
    Filed: March 31, 2016
    Date of Patent: June 11, 2019
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Paul Parkinson, Todd J. Little, Carol Colrain, Jean De Lavarene, Vivekanandhan Raja, Douglas Surber, Stefan Roesch, Nancy Ikeda, Kevin Neel
  • Patent number: 10313477
    Abstract: In accordance with an embodiment, described herein is a system and method for use of a non-blocking process with a resource pool, for example a connection pool, or another type of computing environment. A generic wait-free approach can be used with a variety of different types of resource pools and pool elements. Threads which require access to a collection of resources do not have to wait for a lock on that collection of resources to become available. Although a borrowing thread may still be required to wait for a particular resource to be released, the wait-free approach allows the thread to browse through a list of available resources. The approach can be used with connection pools, or with other types of computing environments, to provide improved scalability in such systems.
    Type: Grant
    Filed: July 20, 2016
    Date of Patent: June 4, 2019
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Yuri Dolgov, Douglas Surber, Jean De Lavarene
  • Publication number: 20190102401
    Abstract: Techniques are disclosed herein for identifying, recording and restoring the state of a database session and various aspects thereof. A session template data structure is generated that includes session attribute values describing various aspects of the session that is established between a client system and a database management system (DBMS and enables the client system to issue to the DBMS commands for execution. Based on the session attribute values, DBMS may generate a template identifier corresponding to the session template data structure. The template identifier may be stored in an association with the session state that it partially (or in whole) represents. In an embodiment, when another state of a session is captured, if the template identifier for the state is the same, then rather than storing the attribute-value pairs for the other state, the template identifier is further associated with the other state.
    Type: Application
    Filed: September 28, 2018
    Publication date: April 4, 2019
    Inventors: KEVIN S. NEEL, CAROL L. COLRAIN, TONG ZHOU, ARTURO ISMAEL QUINTO, JONATHAN GILONI, DOUGLAS SURBER, RAVI THAMMAIAH
  • Publication number: 20190102267
    Abstract: Techniques are disclosed herein for identifying, recording and restoring the state of a database session and various aspects thereof. A session template data structure is generated that includes session attribute values describing various aspects of the session that is established between a client system and a database management system (DBMS and enables the client system to issue to the DBMS commands for execution. Based on the session attribute values, DBMS may generate a template identifier corresponding to the session template data structure. The template identifier may be stored in an association with the session state that it partially (or in whole) represents. In an embodiment, when another state of a session is captured, if the template identifier for the state is the same, then rather than storing the attribute-value pairs for the other state, the template identifier is further associated with the other state.
    Type: Application
    Filed: September 28, 2018
    Publication date: April 4, 2019
    Inventors: JONATHAN GILONI, KEVIN S. NEEL, CAROL L. COLRAIN, DOUGLAS SURBER, RAVI THAMMAIAH, TONG ZHOU, ARTURO ISMAEL QUINTO, MANOJ DHANAPAL
  • Publication number: 20190075170
    Abstract: In accordance with an embodiment, described herein is a system and method for high availability and load balancing in a database environment. A transparency engine can be provided between client applications and a database, and can operate as a proxy engine for the database and as a session abstraction layer for the client applications, to enable the client applications to utilize database features provided by the connection pool without code changes to the client applications. The transparency can keep track of session states, request boundaries and cursors to efficiently reuse the database connections across the client applications. The transparency engine can use the request boundaries and indicators from the database to detect safe places to drain database connections in the event of database outages.
    Type: Application
    Filed: March 6, 2018
    Publication date: March 7, 2019
    Inventors: Carol Colrain, Kevin Neel, Pablo Silberkasten, Michael McMahon, Saurabh Verma, Douglas Surber, Jean De Lavarene
  • Patent number: 10089377
    Abstract: A system and method is described for database split generation in a massively parallel or distributed database environment including a plurality of databases and a data warehouse layer providing data summarization and querying functionality. A database table accessor of the system obtains, from an associated client application, a query for data in a table of the data warehouse layer, wherein the query includes a user preference. The system obtains table data representative of properties of the table, and determines a splits generator in accordance with one or more of the user preference or the properties of the table. The system generates, by the selected splits generator, table splits dividing the user query into a plurality of query splits, and outputs the plurality of query splits to an associated plurality of mappers for execution by the associated plurality of mappers of each of the plurality of query splits against the table.
    Type: Grant
    Filed: September 24, 2015
    Date of Patent: October 2, 2018
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Ashok Shivarudraiah, Garret Swart, Douglas Surber, Jean De Lavarene
  • Publication number: 20180150337
    Abstract: In accordance with an embodiment, a system enables multidimensional search within a resource pool, to support complex borrow operations such as, for example, specifying ranges for particular connection properties. As threads access the pool, attempting to borrow connections having particular connection properties, one or more skipped pool elements can be represented as skip lists within a k-dimensional tree (KD-tree) or other data structure that enables searching across multiple dimensions. In response to receiving a request to borrow a connection having particular connection properties, a multidimensional search can be performed within the KD-tree to determine the availability of a connection having the requested properties.
    Type: Application
    Filed: January 24, 2018
    Publication date: May 31, 2018
    Inventors: Yuri Dolgov, Douglas Surber, Jean De Lavarene
  • Patent number: 9984096
    Abstract: A system and method for reducing communications overhead in a distributed transaction processing environment such as an XA environment. In accordance with an embodiment communication overhead is reduced in a transaction start method by deferring a transaction start communication. The deferred transaction start communication is determined from a subsequent transaction processing communication thereby reducing the number of networks calls required for each transaction and enhancing system performance.
    Type: Grant
    Filed: March 31, 2016
    Date of Patent: May 29, 2018
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Paul Parkinson, Todd J. Little, Carol Colrain, Jean De Lavarene, Vivekanandhan Raja, Douglas Surber, Stefan Roesch, Nancy Ikeda, Kevin Neel
  • Patent number: 9880938
    Abstract: In accordance with an embodiment, described herein is a system and method for compacting a pseudo linear byte array, for use with supporting access to a database. A database driver (e.g., a Java Database Connectivity (JDBC) driver) provides access by software application clients to a database. When a result set (e.g., ResultSet) is returned for storage in a dynamic byte array (DBA), in response to a database query (e.g., a SELECT), the database driver determines if the DBA is underfilled and, if so, calculates the data size of the DBA, creates a static byte array (SBA) in a cache at the client, compacts the returned data into the SBA, and stores the data size as part of the metadata associated with the cache. In accordance with an embodiment, the DBA and the SBA can use a same interface for access by client applications.
    Type: Grant
    Filed: September 24, 2015
    Date of Patent: January 30, 2018
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Ashok Shivarudraiah, Douglas Surber, Jean De Lavarene