Methods and systems for providing a plurality of applications with concurrent access to data are disclosed. One such method includes identifying attributes of an expected data set to be accessed concurrently by the applications, initializing a shared cache with a column data store configured to store the expected data set in columns, and creating a memory map for accessing a physical memory location in the shared cache. The method may also include mapping the applications' data access requests to the shared cache with the memory map. Only one instance of the expected data set is stored in memory, so each application is not required to create additional instances of the expected data set in the application's memory address space. Therefore, larger expected data sets may be entirely stored in memory without limiting the number of applications running concurrently.
Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A method comprising: receiving a list of models to include in an expected data set for a plurality of applications to analyze concurrently, the models including a combination of data attributes from a database repository, wherein the expected data set includes different types of models and different types of models include different data attributes; identifying in the database repository, a portion of the database repository comprising a plurality of data attributes of the expected data set to be accessed concurrently by the plurality of applications; allocating a memory space for a shared cache, wherein the shared cache comprises a column data store configured to store data for each of the plurality of attributes of the expected data set in columns; retrieving the expected data set from a database; populating the shared cache with the expected data set; storing memory address locations corresponding to the columns of the column data store of the shared cache; and providing, to the plurality of applications, one or more of the stored memory address locations corresponding to the columns of the column data store of the shared cache.
A method for providing concurrent data access to multiple applications involves first, receiving a list of data models to be included in a shared data set. This data set contains various models with differing data attributes from a database. The method then identifies a portion of the database containing the attributes for the data set. A shared cache is created in memory, organized as a column data store to hold each attribute of the data set in columns. The data set is retrieved from the database, and the shared cache is populated. Memory addresses for each column in the shared cache are stored and provided to the applications, allowing them to directly access the data.
2. The method of claim 1 , wherein each of the plurality of applications accesses the data set by: requesting data from one or more memory locations in a virtual address space allocated to the application; mapping memory locations in the virtual address space to corresponding memory address locations of the shared cache, via a memory map; and accessing the requested data from the mapped memory locations in the shared cache.
In the method described where a shared cache provides concurrent data access to multiple applications (receiving data models, identifying attributes, allocating a column data store, retrieving data, populating the cache, storing memory locations, and providing these locations to applications), each application accesses the data by requesting data from its own virtual memory space. The application then maps these virtual memory locations to the actual memory addresses within the shared cache using a memory map. Finally, the application accesses the requested data directly from the shared cache. This enables zero-copy data access, improving performance.
3. The method of claim 1 , wherein storing the data for each of the plurality of attributes of the expected data set in columns, comprises: dividing one or more data records retrieved from the database into a plurality of attribute values; identifying a contiguous memory location in the shared cache for each attribute value; and storing each attribute value in one of the identified contiguous memory locations.
In the method described where a shared cache provides concurrent data access to multiple applications (receiving data models, identifying attributes, allocating a column data store, retrieving data, populating the cache, storing memory locations, and providing these locations to applications), storing the data in columns involves dividing data records from the database into individual attribute values. For each attribute value, a continuous memory location is identified within the shared cache. Each attribute value is then stored in its designated contiguous memory location within the column data store, allowing efficient column-wise access.
4. The method of claim 1 , wherein a plurality of object-oriented representations of the expected data set are provided to the plurality of applications by: initializing a plurality of objects with data access methods; storing the memory address locations corresponding to the columns of the column data store of the shared cache in the objects; and providing the plurality of objects for access by the plurality of applications.
In the method described where a shared cache provides concurrent data access to multiple applications (receiving data models, identifying attributes, allocating a column data store, retrieving data, populating the cache, storing memory locations, and providing these locations to applications), object-oriented representations of the data are provided by creating objects with data access methods. Memory address locations corresponding to columns in the shared cache are stored within these objects. The applications then access the data through these objects, abstracting away the direct memory access and offering a higher-level interface.
5. The method of claim 4 , wherein at least one of the plurality of applications access the data set by: calling a data access method of one of the objects; and receiving requested data from the data access method of the object.
In the method described where object-oriented representations of the data are provided using a shared cache (initializing objects with access methods, storing memory locations in objects, and providing objects to applications) and multiple applications require concurrent data access, at least one of the applications retrieves data by calling a specific data access method within one of the objects. The method then retrieves and returns the requested data from the appropriate memory location within the shared cache.
6. The method of claim 1 , wherein the shared cache is configured to provide read only access to the plurality of applications.
In the method described where a shared cache provides concurrent data access to multiple applications (receiving data models, identifying attributes, allocating a column data store, retrieving data, populating the cache, storing memory locations, and providing these locations to applications), the shared cache is configured to only allow read access to the data for all applications. This prevents applications from accidentally or maliciously modifying the shared data, ensuring data integrity.
7. The method of claim 1 , wherein the shared cache is updated by: identifying a plurality of attributes of an updated expected data set; re-allocating the memory space for the shared cache; retrieving an updated expected data set from the database; populating the shared cache with the updated expected data set; and storing updated memory address locations corresponding to the columns of the column data store in the shared cache.
In the method described where a shared cache provides concurrent data access to multiple applications (receiving data models, identifying attributes, allocating a column data store, retrieving data, populating the cache, storing memory locations, and providing these locations to applications), when the data needs to be updated, the process starts by identifying the attributes of the updated dataset. The memory for the shared cache is then re-allocated, potentially with a different size. The updated data is retrieved from the database, and the shared cache is repopulated. Finally, the memory address locations corresponding to the columns are updated to reflect the new data.
8. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform an operation for providing a plurality of applications with concurrent access to an expected data set from a database repository, the operation comprising: receiving a list of models to include in the expected data set for a plurality of applications to analyze concurrently, the models including a combination of data attributes from the database repository, wherein the expected data set includes different types of models and different types of models include different data attributes; identifying in the database repository, a portion of the database repository comprising a plurality of data attributes of the expected data set to be accessed concurrently by the plurality of applications; allocating a memory space for a shared cache, wherein the shared cache comprises a column data store configured to store data for each of the plurality of attributes of the expected data set in columns; retrieving the expected data set from a database; populating the shared cache with the expected data set; storing memory address locations corresponding to the columns of the column data store of the shared cache; and providing, to the plurality of applications, one or more of the stored memory address locations corresponding to the columns of the column data store of the shared cache.
A non-transitory computer-readable storage medium storing instructions for providing concurrent data access to multiple applications involves first, receiving a list of data models to be included in a shared data set. This data set contains various models with differing data attributes from a database. The method then identifies a portion of the database containing the attributes for the data set. A shared cache is created in memory, organized as a column data store to hold each attribute of the data set in columns. The data set is retrieved from the database, and the shared cache is populated. Memory addresses for each column in the shared cache are stored and provided to the applications, allowing them to directly access the data.
9. The non-transitory computer-readable storage medium of claim 8 , wherein each of the plurality of applications accesses the data set by: requesting data from one or more memory locations in a virtual address space allocated to the application; mapping memory locations in the virtual address space to corresponding memory address locations of the shared cache, via a memory map; and accessing the requested data from the mapped memory locations in the shared cache.
In the non-transitory computer-readable storage medium described where a shared cache provides concurrent data access to multiple applications (receiving data models, identifying attributes, allocating a column data store, retrieving data, populating the cache, storing memory locations, and providing these locations to applications), each application accesses the data by requesting data from its own virtual memory space. The application then maps these virtual memory locations to the actual memory addresses within the shared cache using a memory map. Finally, the application accesses the requested data directly from the shared cache. This enables zero-copy data access, improving performance.
10. The non-transitory computer-readable storage medium of claim 8 , wherein storing the data for each of the plurality of attributes of the expected data set in columns, comprises: dividing one or more data records retrieved from the database into a plurality of attribute values; identifying a contiguous memory location in the shared cache for each attribute value; and storing each attribute value in one of the identified contiguous memory locations.
In the non-transitory computer-readable storage medium described where a shared cache provides concurrent data access to multiple applications (receiving data models, identifying attributes, allocating a column data store, retrieving data, populating the cache, storing memory locations, and providing these locations to applications), storing the data in columns involves dividing data records from the database into individual attribute values. For each attribute value, a continuous memory location is identified within the shared cache. Each attribute value is then stored in its designated contiguous memory location within the column data store, allowing efficient column-wise access.
11. The non-transitory computer-readable storage medium of claim 8 , wherein a plurality of object-oriented representations of the expected data set are provided to the plurality of applications by: initializing a plurality of objects with data access methods; storing the memory address locations corresponding to the columns of the column data store of the shared cache in the objects; and providing the plurality of objects for access by the plurality of applications.
In the non-transitory computer-readable storage medium described where a shared cache provides concurrent data access to multiple applications (receiving data models, identifying attributes, allocating a column data store, retrieving data, populating the cache, storing memory locations, and providing these locations to applications), object-oriented representations of the data are provided by creating objects with data access methods. Memory address locations corresponding to columns in the shared cache are stored within these objects. The applications then access the data through these objects, abstracting away the direct memory access and offering a higher-level interface.
12. The non-transitory computer-readable storage medium of claim 11 , wherein at least one of the plurality of applications access the data set by: calling a data access method of one of the objects; and receiving requested data from the data access method of the object.
In the non-transitory computer-readable storage medium described where object-oriented representations of the data are provided using a shared cache (initializing objects with access methods, storing memory locations in objects, and providing objects to applications) and multiple applications require concurrent data access, at least one of the applications retrieves data by calling a specific data access method within one of the objects. The method then retrieves and returns the requested data from the appropriate memory location within the shared cache.
13. The non-transitory computer-readable storage medium of claim 8 , wherein the shared cache is configured to provide read only access to the plurality of applications.
In the non-transitory computer-readable storage medium described where a shared cache provides concurrent data access to multiple applications (receiving data models, identifying attributes, allocating a column data store, retrieving data, populating the cache, storing memory locations, and providing these locations to applications), the shared cache is configured to only allow read access to the data for all applications. This prevents applications from accidentally or maliciously modifying the shared data, ensuring data integrity.
14. The non-transitory computer-readable storage medium of claim 8 , wherein the shared cache is updated by: identifying a plurality of attributes of an updated expected data set; re-allocating the memory space for the shared cache; retrieving an updated expected data set from the database; populating the shared cache with the updated expected data set; and storing updated memory address locations corresponding to the columns of the column data store in the shared cache.
In the non-transitory computer-readable storage medium described where a shared cache provides concurrent data access to multiple applications (receiving data models, identifying attributes, allocating a column data store, retrieving data, populating the cache, storing memory locations, and providing these locations to applications), when the data needs to be updated, the process starts by identifying the attributes of the updated dataset. The memory for the shared cache is then re-allocated, potentially with a different size. The updated data is retrieved from the database, and the shared cache is repopulated. Finally, the memory address locations corresponding to the columns are updated to reflect the new data.
15. A computer system, comprising: a memory storing one or more programs; and a processor configured to execute the one or more programs to perform an operation for providing a plurality of applications with concurrent access to data, the operation comprising: receiving a list of models to include in an expected data set for multiple applications to analyze concurrently, the models including a combination of data attributes from the database repository, wherein the expected data set includes different types of models and different types of models include different data attributes; identifying in the database repository, a portion of the database repository comprising a plurality of data attributes of the expected data set to be accessed concurrently by the plurality of applications; allocating a memory space for a shared cache, wherein the shared cache comprises a column data store configured to store data for each of the plurality of attributes of the expected data set in columns; retrieving the expected data set from a database; populating the shared cache with the expected data set; storing memory address locations corresponding to the columns of the column data store of the shared cache; and providing, to the plurality of applications, one or more of the stored memory address locations corresponding to the columns of the column data store of the shared cache.
A computer system provides concurrent data access to multiple applications. It includes a memory to store programs and a processor to execute them. The executed programs first receive a list of data models to be included in a shared data set. This data set contains various models with differing data attributes from a database. The system identifies a portion of the database containing the attributes for the data set. A shared cache is created in memory, organized as a column data store to hold each attribute of the data set in columns. The data set is retrieved from the database, and the shared cache is populated. Memory addresses for each column in the shared cache are stored and provided to the applications, allowing them to directly access the data.
16. The system of claim 15 , wherein each of the plurality of applications accesses the data set by: requesting data from one or more of the memory locations in a virtual address space allocated to the application; mapping memory locations in the virtual address space to corresponding memory address locations of the shared cache, via a memory map; and accessing the requested data from the mapped memory locations in the shared cache.
In the computer system described where a shared cache provides concurrent data access to multiple applications (receiving data models, identifying attributes, allocating a column data store, retrieving data, populating the cache, storing memory locations, and providing these locations to applications), each application accesses the data by requesting data from its own virtual memory space. The application then maps these virtual memory locations to the actual memory addresses within the shared cache using a memory map. Finally, the application accesses the requested data directly from the shared cache. This enables zero-copy data access, improving performance.
17. The system of claim 15 , wherein storing the data for each of the plurality of attributes of the expected data set in columns, comprises: dividing one or more data records retrieved from the database into a plurality of attribute values; identifying a contiguous memory location in the shared cache for each attribute value; and storing each attribute value in one of the identified contiguous memory locations.
In the computer system described where a shared cache provides concurrent data access to multiple applications (receiving data models, identifying attributes, allocating a column data store, retrieving data, populating the cache, storing memory locations, and providing these locations to applications), storing the data in columns involves dividing data records from the database into individual attribute values. For each attribute value, a continuous memory location is identified within the shared cache. Each attribute value is then stored in its designated contiguous memory location within the column data store, allowing efficient column-wise access.
18. The system of claim 15 , wherein a plurality of object-oriented representations of the expected data set are provided to the plurality of applications by: initializing a plurality of objects with data access methods; storing the memory address locations corresponding to the columns of the column data store of the shared cache in the objects; and providing the plurality of objects for access by the plurality of applications.
In the computer system described where a shared cache provides concurrent data access to multiple applications (receiving data models, identifying attributes, allocating a column data store, retrieving data, populating the cache, storing memory locations, and providing these locations to applications), object-oriented representations of the data are provided by creating objects with data access methods. Memory address locations corresponding to columns in the shared cache are stored within these objects. The applications then access the data through these objects, abstracting away the direct memory access and offering a higher-level interface.
19. The system of claim 18 , wherein at least one of the plurality of applications access the data set by: calling a data access method of one of the objects; and receiving requested data from the data access method of the object.
In the computer system described where object-oriented representations of the data are provided using a shared cache (initializing objects with access methods, storing memory locations in objects, and providing objects to applications) and multiple applications require concurrent data access, at least one of the applications retrieves data by calling a specific data access method within one of the objects. The method then retrieves and returns the requested data from the appropriate memory location within the shared cache.
20. The system of claim 15 , wherein the shared cache is configured to provide read only access to the plurality of applications.
In the computer system described where a shared cache provides concurrent data access to multiple applications (receiving data models, identifying attributes, allocating a column data store, retrieving data, populating the cache, storing memory locations, and providing these locations to applications), the shared cache is configured to only allow read access to the data for all applications. This prevents applications from accidentally or maliciously modifying the shared data, ensuring data integrity.
21. The system of claim 15 , wherein the shared cache is updated by: identifying a plurality of attributes of an updated expected data set; re-allocating the memory space for the shared cache; retrieving an updated expected data set from the database; populating the shared cache with the updated expected data set; and storing updated memory address locations corresponding to the columns of the column data store in the shared cache.
In the computer system described where a shared cache provides concurrent data access to multiple applications (receiving data models, identifying attributes, allocating a column data store, retrieving data, populating the cache, storing memory locations, and providing these locations to applications), when the data needs to be updated, the process starts by identifying the attributes of the updated dataset. The memory for the shared cache is then re-allocated, potentially with a different size. The updated data is retrieved from the database, and the shared cache is repopulated. Finally, the memory address locations corresponding to the columns are updated to reflect the new data.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
June 3, 2016
May 16, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.