Maintenance of multi-tenant software programs
US-9904538-B2 · Feb 27, 2018 · US
US10241896B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10241896-B2 |
| Application number | US-201615345914-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 8, 2016 |
| Priority date | Nov 8, 2016 |
| Publication date | Mar 26, 2019 |
| Grant date | Mar 26, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Systems and methods are provided for creating a sandbox for an original tenant at a point in time, the original tenant having original tenant data stored in an immutable storage associated with an original tenant identifier, the original tenant data as of the sandbox creation point in time being a virtual snapshot of the original tenant data accessible by a sandbox tenant, where the sandbox tenant data can be changed without changing the original tenant data, and the original tenant data can be changed without changing the sandbox tenant data. A sandbox tenant is created by associating a sandbox tenant identifier with the virtual snapshot of the original tenant data and with sandbox tenant data created by the sandbox tenant subsequent to the sandbox creation point in time. Original tenant data is subsequently created and associated with the original tenant identifier, and is not accessible to the sandbox tenant.
Opening claim text (preview).
The invention claimed is: 1. A computerized method for creating a sandbox for an original tenant of a database system at a point in time, the original tenant having original tenant data stored in an immutable storage of the database system associated with an original tenant identifier, the original tenant data as of the sandbox creation point in time being a virtual snapshot of the original tenant data to be made accessible to a sandbox tenant, where sandbox tenant data can be changed or augmented without changing or augmenting the original tenant data, and the original tenant data can be changed or augmented without changing or augmenting the sandbox tenant data, comprising: creating, via the database system, a sandbox tenant identifier; creating a sandbox tenant by associating the sandbox tenant identifier with the virtual snapshot of the original tenant data and with sandbox tenant data created by the sandbox tenant subsequent to the sandbox creation point in time, wherein the sandbox tenant data created by the sandbox tenant subsequent to the sandbox creation point in time is inaccessible to the original tenant; subsequent to the sandbox creation point in time, creating subsequent original tenant data associated with the original tenant identifier stored in the immutable storage, the subsequent original tenant data not accessible to the sandbox tenant, wherein the original tenant may access original tenant data created both before and after the sandbox creation point in time that is stored in the immutable storage, and wherein the subsequent original tenant data is written as new original tenant data that does not alter older original tenant data stored in the immutable storage. 2. The method of claim 1 , further comprising: receiving a query including a key indicating the sandbox tenant; and operating on data from the immutable storage identified by the key for the sandbox tenant by dynamically mapping the key indicating the sandbox tenant to a key indicating the original tenant. 3. The method of claim 2 , further comprising: returning the data from the immutable storage for the sandbox tenant based on the dynamic mapping of the key indicating the sandbox tenant. 4. The method of claim 2 , wherein the operating on data comprises: retrieving data from the immutable storage based on the mapped key; translating data from the immutable storage indicated by the key of the original tenant to data of the key indicating the sandbox tenant; performing an operation on the translated data; and storing resultant data from the performed operation in the immutable storage that is associated with the key of the sandbox tenant. 5. The method of claim 1 , further comprising: receiving a query including a key indicating the sandbox tenant; and operating on data from the immutable storage identified by the key for the sandbox tenant. 6. The method of claim 5 , further comprising: returning the data from the immutable storage for the sandbox tenant based on the dynamic mapping of the key indicating the sandbox tenant. 7. The method of claim 1 , further comprising: receiving an operation to delete the sandbox tenant; and removing, from the immutable storage, at least one key associated with the sandbox tenant without changing or augmenting the original tenant data. 8. The method of claim 7 , wherein the removing the at least one key comprises: removing a key range from the immutable storage without removing physical data stored in the immutable storage. 9. The method of claim 7 , wherein the removing the at least one key comprises: removing extent references from the immutable storage for the sandbox tenant data that have original tenant mapping associated with them when there have been no changes to the sandbox tenant data in the immutable storage after the sandbox creation point in time. 10. The method of claim 7 , wherein the removing the at least one key comprises: removing extent references from the immutable storage for a key range of the sandbox tenant data when there have been changes to the sandbox tenant data in the immutable storage so as to replace existing extent references of the original tenant data so as to not include the removed extent references of the sandbox tenant data. 11. The method of claim 1 , further comprising: storing the data in the immutable storage using a log-structured merge tree data structure. 12. A system to create a sandbox for an original tenant at a point in time, the system comprising: at least one memory, the original tenant having original tenant data stored in an immutable storage of the at least one memory associated with an original tenant identifier, the original tenant data as of the sandbox creation point in time being a virtual snapshot of the original tenant data accessible to a sandbox tenant, where sandbox tenant data can be stored in the at least one memory and can be changed or augmented without changing or augmenting the original tenant data, and the original tenant data can be changed or augmented without changing or augmenting the sandbox tenant data; and one or more servers for the original tenant and the sandbox tenant that are communicatively coupled to the at least one memory, the one or more servers to create a sandbox tenant identifier, to create the sandbox tenant by associating the sandbox tenant identifier with the virtual snapshot of the original tenant data and with data created by the sandbox tenant subsequent to the sandbox creation point in time, wherein the data created by the sandbox tenant subsequent to the sandbox creation point in time is inaccessible to the original tenant, and subsequent to the sandbox creation point in time, to create subsequent original tenant data associated with the original tenant identifier stored in the immutable storage of the at least one memory, the subsequent original tenant data not accessible to the sandbox tenant, wherein the original tenant may access tenant data created both before and after the sandbox creation point in time that is stored in the immutable storage, and wherein the subsequent original tenant data is written as new original tenant data that does not alter older original tenant data stored in the immutable storage. 13. The system of claim 12 , wherein the one or more servers receives a query including a key indicating the sandbox tenant operating on data from the immutable storage identified by the key for the sandbox tenant by dynamically mapping the key indicating the sandbox tenant to a key indicating the original tenant. 14. The system of claim 13 , wherein the one or more servers receives the data from the immutable storage for the sandbox tenant from the at least one memory based on the dynamic mapping of the key indicating the sandbox tenant. 15. The system of claim 13 , wherein the one or more servers operates on data so as to retrieve data from the immutable storage based on the mapped key, translate data from the immutable storage indicated by the key of the original tenant to data of the key indicating the sandbox tenant, perform an operation on the translated data, and store resultant data from the performed operation in the immutable storage in the at least one memory that is associated with the key of the sandbox tenant. 16. The system of claim 12 , wherein the one or more servers receives a query including a key indicating the original tenant, and operates on data from the immutable storage of the at least one memory identified by the key for the original tenant. 17. The system of claim 16 , wherein the one or more servers receiv
Query processing · CPC title
Methods or tools to render software testable · CPC title
Design, administration or maintenance of databases · CPC title
Physics · mapped topic
Physics · mapped topic
Related publications grouped by family.
Answers are generated from the same data shown on this page.