PATENTS

Sesame Software Patents

Sesame Software is a truly innovative software company in the field of data warehouse, data backup and recovery, and data integration. Our patent portfolio is growing, and is intended to document our product features as well as maintain exclusivity of our intellectual property against copycats.

What follows is a diagram showing the relationships of the numerous patents, and a brief layman’s description of the purpose of each patent. Some of the topics covered have several patents as we have evolved the product into having autonomous behavior, scalability, performance, data recovery features, and exception handling when transferring data as source schemas change structure and data types.

Scalability and Performance

Method of Integrating Remote Databases by Automated Client Scoping of Update Requests

United States Patent 8,122,040 yields a major competitive advantage for Sesame Software’s Relational Junction data warehouse offering, which includes dozens of source applicationss and databases and all popular databases for the warehouse.

This patent describes a scalability technique that breaks down the replication process into smaller data sets by ranges of time stamps in the source data. This allows Relational Junction replication products to copy unlimited data sets by breaking them into discreet ranges and checkpointing the results for restartability. The time ranges are variable length, depending on how much data is queried in the previous time range, and adjusted to prevent attempting to download too much in any one interval. This prevents timeouts from the SaaS data source and also makes the process restartable at the point of failure rather than having to repeatedly truncate and reload a database table when failures occur.

Some of Sesame Software’s customers have terabytes of data in the cloud, and we are able to load it to the on-premise or cloud data warehouse despite numerous timeouts and restarts during the initial load.

Abstract

A method for bi-directional data replication between a Web Service application and a relational database are provided. Techniques of Enterprise Application Integration (EAI) and Extract Transform Load (ETL) technology are employed to create a relational database schema, load the schema, synchronize the structure and the content of the schema, and replicate changes in the content of the schema to the web services application. Optional advanced techniques to support reporting, legacy data migration, and integration with other applications are also provided.

Method of integrating remote databases by automated client scoping of update requests prior to download via a communications network

United States Patent 9,754,001 provides a system method of patent 8,122,040.

Abstract

A system and method enable the selection of a time range of database records for download from a source database source and for transfer to a recipient database. A specifically bounded time period is selected to limit the number of data records selected for download in a particular action to those records that are individually associated with date time stamp values falling within the specified time period. This limitation of records selected for inclusion in a download process to data records having associations with date time stamps falling within a limited time range reduces a likelihood of overload in transferring data and thereby reduces the incidence of time-outs in the communication of a source database, any intermediary server or software action, and the recipient database in an updating of the recipient database to reflect a current state of the source database. A plurality of threads may be employed to contemporaneously download records associated with date time stamps having values within a requested time range whereby data records may be downloaded in parallel.

Multi-Threaded Download with Asynchronous Writing

United States Patent 10,003,634 further improves the art of multi-threaded loading of a relational database from a source application by storing the record identifiers that meet a specified query range or filter, multi-threading readers on the content, saving the records in memory, and writing the records from memory into a database. The scalability and performance of this technique allows massive amounts of data to be loaded quickly and with full restartability in the event of a failure.

Abstract

A system and method are presented for the facilitation of threaded download of software record identifiers and software records. Software record identifiers and software records are stored in separate one-dimensional stacks, which stacks feed a plurality of download threads in a first-in, first-out method. Software records and/or software record identifiers may optionally be written in parallel, or in an asynchronous manner. The total number of threads allowed to a user may optionally be limited to a pre-set number. The speed and efficiency of downloading records is increased through use of all of the cores of multi-cored computing systems to substantively concurrently download several threads. The method further allows a failed download thread to restart from the point at which it failed, rather than beginning again from the origin of the thread, thus ensuring that no software records are duplicated, and that no software records are skipped within a download thread.

Method and system for reducing time-out incidence by scoping date time stamp value ranges of succeeding record update requests in view of previous responses

United States Patent Application 16/449,397 provides additional techniques to query very large datasets of SaaS data without failure due to timeouts or governors in the SaaS system.

Abstract

A system and method to reduce the incidence of communications network time outs by tailoring the time length specified by an initial date time stamp and an ending date time stamp ranges of a new record update query request to be less likely to direct a responding system(s) to responsively communicate a count of individual record updates and/or a combined information volume that overburdens a communications channel, protocol or mode to cause a time-out. The number of record updates received in response to previous update queries are observed. In view of these observed query responses, the date time stamp ranges of the new update requests specified by the initial date time stamp and the ending date time of a new potential query are limited in magnitude to be unlikely to cause responding messages to contain a higher quantity of record updates than a preselected quantity of record updates and/or data volume.

Method of integrating remote databases by automated client scoping of update requests prior to download via a communications network

United States Patent Application 14/604,748 provides additional techniques to prevent query failure of SaaS data by limiting the scope of the query.

Abstract

A system and method enable the selection of a time range, or other record selection criteria, of database records for upload from a local database source and for transfer to a remote database. A specifically bounded time period is selected to limit the number of data records selected for upload in a particular action to those records that are individually associated with date time stamp values falling within the specified time period. This limitation of records selected for inclusion in an upload process to data records having associations with date time stamps falling within a limited time range, or other criteria, reduces a likelihood of overload in transferring data and thereby reduces the incidence of time-outs in the communication of a local database, any intermediary server or software action, and the remote database in an updating of the recipient database to reflect a current state of the local database. A plurality of asynchronous threads may be employed to contemporaneously upload records associated with date time stamps having values within a requested time range whereby data records may be uploaded in parallel.

Multi-Threaded Download with Asynchronous Writing

United States Patent Application 16/011,604 provides additional techniques to speed up replication of very large datasets.

Abstract

A system and method are presented for the facilitation of threaded download of software record identifiers and software records. Software record identifiers and software records are stored in separate one-dimensional stacks, which stacks feed a plurality of download threads in a first-in, first-out method. Software records and/or software record identifiers may optionally be written in parallel, or in an asynchronous manner. The total number of threads allowed to a user may optionally be limited to a pre-set number. The speed and efficiency of downloading records is increased through use of all of the cores of multi-cored computing systems to substantively concurrently download several threads. The method further allows a failed download thread to restart from the point at which it failed, rather than beginning again from the origin of the thread, thus ensuring that no software records are duplicated, and that no software records are skipped within a download thread.

Database and SaaS Data Recovery

Method of integrating applications with a network service application by creating new records in a relationship field

United States Patent 8,375,010 provides a way for Sesame Software’s Relational Junction replication offerings to create related records in Salesforce, NetSuite, and QuickBooks in one pass, keeping the child records pointing to the parents as new parents are created in the SaaS system. This technique allows a user of the system to create new parent-child records with temporary keys in the relationship fields. As the new parent records are created in the SaaS system during replication, the replication process is notified of the new key generated by the SaaS application. The replication process updates the local database with this key. Database triggers generated ahead of time are knowledgeable of the relationships in the data model, and look for related record with the old key, updating the key values where found.

Abstract

A computer-implemented method for integrating applications with a network service application is provided. A database management system automatically updates a local database of a computer with information contained within a remote database and an application is enabled to generate a new record in the local database with temporary values in the relationship fields such that the child records are logically related to one or more parent records by virtue of having the same relationship values. A new record is created by the web service for the parent record. When a changed value of the parent record’s key is detected, a value of the key of relevant changed parent record is written into one or more local related record’s relationship field.

Method for Generating Indexes for Downloading Data

United States Patent 8,745,029 provides a method for generating indexes for downloading data. This is essential to performance of the database triggers referenced in patent 8,375,010, “Data replication of related records to SaaS Data Sources”, and also boosts performance of reports and other operations that join tables.

Relational Junction provides an on-premise replicated database for SaaS data sources. The metadata provided by a mature SaaS API such as Salesforce.com enables the product to interrogate the relationship structure, and create a database schema with performance indexes on the relationship fields. The automation of this index creation is what sets Relational Junction apart from other vendor offerings in providing a fully indexed warehouse.

Abstract

A method for bi-directional data replication between a Web Service application and a relational database are provided. In an electronic communications network, a computer implemented method is provided for generating indexes of relationship fields by accessing the metadata of a remote web service. A plurality of records may be downloaded from the remote web service to a computer. The plurality of records may include metadata related to the identity of data fields involved in parent-child record relationships. An index may be built at least partially on the data fields involved in parent-child relationships.

Method for Generating Indexes for Downloading Data

United States Patent 9,928,255 provides a system method for patent 8,745,029

Abstract

A method for bi-directional data replication between a Web Service application and a relational database are provided. In an electronic communications network, a computer implemented method is provided for generating indexes of relationship fields by accessing the metadata of a remote web service. A plurality of records may be downloaded from the remote web service to a computer. The plurality of records may include metadata related to the identity of data fields involved in parent-child record relationships. An index may be built at least partially on the data fields involved in parent-child relationships.

System and method for procedure for point-in-time recovery of cloud or database data and records in whole or in part

United States Patent 10,540,237 provides a user interface and internal methods to recover complex relational data to a cloud or on-premise business application. The techniques allow a global recovery, subsetting the data by object name, time range, and record filters, restoring child records automatically, and recovering past  versions of records, all in a user-friendly interface.

Abstract

A user interface, system and method are provided for the recovery and restoration of software records or elements thereof to earlier record or data iterations or versions in order to overcome or repair consequences of database corruption or data deletion. A source database and/or a current archive database further enable recording of records of the source database to an historical data archive, from which records or elements thereof may be recovered. A restore command is detectable by the system as directly input via a user interface and/or as sent via an electronics communications modality or network. The databases and archives may have access to multiple iterations/versions of a record including the original record version as stored in an historical archive or elsewhere in a network. The records may optionally be updated in a batch method, in real time, and/or as the software records are created.

Method and system for dynamically modifying database metadata and structures

United States Patent 10,089,333 solves the problem of attempting to load text data to a data warehouse when the text content is wider than the database column by dynamically adjusting the column width to fit the data.

Abstract

A system and method enable the selection of database records for editing and writing. A database record is queried for the size of the data fields contained therein. The size of the data field is compared to the field width limitation of a storage database. When it is determined that the data field displays a size greater than the size of the field width limitation of the storage database, a computing device extends the size of the limitation to accommodate the new database record data field. When the size of the limitation is expanded, the new database record is written to the storage database. The system and method may optionally include the input of a user at the final steps, wherein the user may optionally approve or disapprove the extension of the size of the field width limitation.

System and Method for Time Parameter Based Database Restoration

United States Patent Application 14/855,552 describes a robust method of restoring data to a prior point in time within a relational database backup. This method is both granular to the record and field level, and can support a visual recovery user interface to tag and recover specific versions of the records that have been corrupted or deleted in the source system.

Abstract

A system and method are provided for the recovery and restoration of software records of a database server to record iterations previous to the current state of the selected records. This action may be taken in order to overcome the consequences of database corruption. An event-time maybe designated which is applied to select some or all of the earlier but most recent versions of each selected record. The system and method presented include a local target database for the purpose of recording software records to an archive, and may include a remote source database, from which records may be transmitted to the local target database. A restore command may be detected by the database server as sent from the remote source server, as received in an electronic message, as received via an electronics communications network, or as directly input. The local target database may have access to multiple iterations or versions of a software record including the original record version as stored in an archive, and may, upon instruction or command, revert to a previous iteration of a software record stored in the archive if corruption of later iterations is suspected. Alternatively or additionally, the local target database may not be restored with earlier versions of records but the remote source database may be restored with the selected record versions. The software records may optionally be updated in a batch method, or may alternatively be updated in real time, as the software records are created.

Special Purpose

Method to Replicate Complex Data Structures Using Multiple Queries

United States Patent 10,440,089 handles queries that exceed the maximum complexity or length of the source query or the ability of the receiving database to insert or update all the columns at once by breaking the query into a subset of fields.

Abstract

A system and method enable the modification of software data queries for the purpose of overcoming the problem of large, cumbersome data queries. The method and system presented includes a client device, which may split a software data query into segments representing a fraction of the original query size, and submit the divided data query to a remote server. The division of the initial query may continue until the query size is usable by the remote server. The remote server may receive the segmented query, and transmit database records associated with the fields in the divided query to the client device. Further segments of the divided query may be transmitted until the full query has been transmitted to the remote server. The divided queries may include date time stamp bounds to determine the desired database records. A computing device created specifically for the above-listed tasks may be utilized.

Method to Federate Data Replication over a Communications Network

United States Patent Application 15/818,645 provides parallel processing of Cloud data to a database, speeding performance by up to 100 times a single-threaded read-write process. Relational Junction provides a transaction-oriented load that is restartable at the point of failure without having to use bulk API’s which land data into flat files, yet is at least as fast.

Abstract

A method and system enable acceleration of high performance data replication over an Internet connection by means of parallel processes. Scalability of data replication is enhanced both by means of parallel queries as subtasks of a main controller, and by wrapping the queries in date time stamp-bounded ranges, requesting only records falling within the specific times indicated by the date time stamp. By wrapping the queries, the number of records per pass is limited, enhancing the efficiency of each pass. The reduced number of records per pass further facilitates re-initiation of data replication upon failure, because fewer records are less burdensome for a computing system to attempt to transmit and/or receive multiple times. Also presented is a method by which a client may query a remote server for record keys, in place of full records, such that the client and server need process less data.

  • PATENT APPLICATION #:

    16/860,007

  • PENDING

Method to Federate Data Replication over a Communications Network

United States Patent Application 16/860,007 provides a method to synchronize an entire source and target database.

Abstract

A system and method to ensure the consistency of a data warehouse or backup database with a source database are described. The method alleviates issues of comparing two sets of the same data on disparate network systems and eliminates having to reload the entire target database or compare every field to ensure reasonable consistency of the contents. The process involves loading a unique record identifier, an optional record change timestamp, and an optional record archive field of a source database into a work file or temporary database table. Source work file records or temporary database tables records that do not exist in the target database or have timestamp mismatches are retrieved from the source database and added to or updated in the target database. Target database records that are archived or missing in the work file or temporary database table are archived or deleted from the target database.

Find out how Relational Junction can help your business!