# US 10,503,787 B2 · Sharing common metadata in multi-tenant environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,503,787 B2
- Document ID: US10503787B2
- Status: Granted
- Kind: B2
- Application number: 15/268,174
- Filed: 2016-09-16
- Published: 2017-04-20
- Granted: 2019-12-10
- Earliest claimed: 2015-10-19
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Girish Nagaraj; Denny McKinney; Harry Hsu
- Web page: https://patentgrep.com/patent/US10503787B2

## CPC

- G06F 16/93: Document management systems
- G06F 16/21: Design, administration or maintenance of databases
- G06F 16/211: {Schema design and management}
- G06F 16/951: Indexing; Web crawling techniques
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present disclosure relates generally to multi-tenant environments, and more particularly, to techniques for segregating and accessing (e.g., reading and writing) global and tenant base and customization metadata in a multi-tenant environment. One of the techniques includes determining whether a metadata document to be accessed is a global document, if so, accessing the metadata document from a global repository shared amongst tenants of a multi-tenant system, and accessing the metadata document from a tenant repository that is accessible by a tenant of the multi-tenant system when the metadata document is not a global document. The technique futher includes disallowing tenants from directly modifying global metadata to not affect other tenants, but still allow tenants to customize global metadata and store the changes as tenant customization documents in the tenant repository. The tenant repository which can be a database or file system is isolated from other tenants of the multi-tenant system.

## Claims

### Claim 1

A method comprising:
determining, by a computing system, whether a base document or a customization document to be accessed is a global document, wherein the determining, whether the base document to be accessed is the global document, includes analyzing a namespace of the base document to determine whether the namespace is identified as global;
when the base document is the global document, accessing, by the computing system, the base document from a global repository shared amongst tenants of a multi-tenant system; and
when the base document is not the global document, accessing, by the computing system, the base document from a tenant repository that is accessible by a tenant of the multi-tenant system, wherein the tenant repository is isolated from other tenants of the multi-tenant system;
determining, by the computing system, whether a context requesting access to the base document or the customization document is global;
when (i) the base document or the customization document to be accessed is the global document, and (ii) the context requesting access to the base document or the customization document is global, writing, by the computing system, the base document or the customization document in the global repository;
when (i) the base document or the customization document is not the global document, and (ii) the context requesting access to the base document or the customization document is not global, writing, by the computing system, the base document or the customization document in the tenant repository; and
rejecting, by the computing system, the writing when (i) the base document or the customization document is the global document: (ii) the context requesting the base document or the customization document is not global, and (iii) a tenant customization layer is not configured.

### Claim 2 (depends on 1)

The method of claim 1, wherein the global repository and the tenant repository are separate databases or file systems.

### Claim 3 (depends on 1)

The method of claim 1, further comprising processing, by the computing system, an application request using the base document.

### Claim 4 (depends on 1)

The method of claim 1, wherein the accessing the base document from the global repository includes reading the base document from the global repository, and the accessing the base document from the tenant repository includes reading the base document from the tenant repository.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
when the base document is not the global document and prior to reading the base document from the tenant repository, determining, by the computing system, whether a context requesting to read the base document is global;
when (i) the base document is not the global document, and (ii) the context requesting the base document is global, rejecting, by the computing system, the read; and
when (i) the base document is not the global document, and (ii) the context requesting the base document is not global, reading, by the computing system, the base document from the tenant repository.

### Claim 6 (depends on 4)

The method of claim 4, further comprising:
determining, by the computing system, whether there is the customization document to be read;
when there is the customization document to be read, determining, by the computing system, whether the customization document to be read is a global customization document;
when the customization document is the global customization document, reading, by the computing system, the customization document from the global repository; and
when the customization document is not the global customization document, reading, by the computing system, the customization document from the tenant repository.

### Claim 7 (depends on 6)

The method of claim 6, wherein the determining whether the customization document to be read is the global customization document includes analyzing a layer name of the customization document to determine whether the layer name is identified as global.

### Claim 8 (depends on 6)

The method of claim 6, further comprising processing, by the computing system, an application request using at least one of the base document and the customization document.

### Claim 9 (depends on 7)

The method of claim 7, further comprising:
when the customization document is not the global customization document and prior to reading the customization document from the tenant repository, determining, by the computing system, whether the context requesting to read the customization document is global;
when (i) the customization document is not the global customization document, and (ii) the context requesting the customization document is global, rejecting, by the computing system, the read; and
when (i) the customization document is not the global customization document, and (ii) the context requesting the customization document is not global, reading, by the computing system, the customization document from the tenant repository.

### Claim 10 (depends on 1)

The method of claim 1, further comprising writing, by the computing system, changes to metadata of the base document or the customization document as a customization when (i) the base document or the customization document is the global document; (ii) the context requesting the base document or the customization document is not global, and (iii) a tenant customization layer is configured.

### Claim 11

A non-transitory machine readable storage medium having instructions stored thereon that when executed by one or more processors cause the one or more processors to perform a method comprising:
determining whether a base document or a customization document to be accessed is a global document wherein the determining, whether the base document to be accessed is the global document includes analyzing a namespace of the base document to determine whether the namespace is identified as global;
when the base document is the global document, accessing the base document from a global repository shared amongst tenants of a multi-tenant system; and
when the base document is not the global document, accessing the base document from a tenant repository that is accessible by a tenant of the multi-tenant system, wherein the tenant repository is isolated from other tenants of the multi-tenant system;
determining whether a context requesting access to the base document or the customization document is global;
when (i) the base document or the customization document to be accessed is the global document, and (ii) the context requesting access to the base document or the customization document is global, writing the base document or the customization document in the global repository;
when (i) the base document or the customization document is not the global document, and (ii) the context requesting access to the base document or the customization document is not global, writing the base document or the customization document in the tenant repository; and
rejecting the writing when (i) the base document or the customization document is the global document; (ii) the context requesting the base document or the customization document is not global, and (iii) a tenant customization layer is not configured.

### Claim 12 (depends on 11)

The non-transitory machine readable storage medium of claim 11, wherein:
the accessing the base document from the global repository includes reading the base document from the global repository;
the accessing the base document from the tenant repository includes reading the base document from the tenant repository; and
the method further comprises processing an application request using the base document .

### Claim 13 (depends on 11)

The non-transitory machine readable storage medium of claim 11, wherein
the method further comprises
processing an application request using the base document or the customization document.

### Claim 14

A system comprising:
one or more processors; and
a memory coupled to the one or more processors, the memory storing a plurality of instructions executable by the one or more processors, the plurality of instructions comprising instructions that when executed by the one or more processors cause the one or more processors to perform processing comprising:
determining whether a base document or a customization document to be accessed is a global document, wherein the determining, whether the base document to be accessed is the global document, includes analyzing a namespace of the base document to determine whether the namespace is identified as global;
accessing the base document from a global repository shared amongst tenants of a multi-tenant system when the base document is the global document;
accessing the base document from a tenant repository that is accessible by a tenant of the multi-tenant system when the base document is not the global document, wherein the tenant repository is isolated from other tenants of the multi-tenant system;
determining whether a context requesting access to the base document or the customization document is global;
when (i) the base document or the customization document to be accessed is the global document, and (ii) the context requesting access to the base document or the customization document is global, writing the base document or the customization document in the global repository;
when (i) the base document or the customization document is not the global document, and (ii) the context requesting access to the base document or the customization document is not global, writing the base document or the customization document in the tenant repository; and
rejecting the writing when (i) the base document or the customization document is the global document; (ii) the context requesting the base document or the customization document is not global, and (iii) a tenant customization layer is not configured.

### Claim 15 (depends on 14)

The system of claim 14, wherein:
the accessing the base document from the global repository includes reading the base document from the global repository;
the accessing the base document from the tenant repository includes reading the base document from the tenant repository; and
the processing further comprises processing an application request using the base document.

### Claim 16 (depends on 14)

The system of claim 14, wherein the processing further comprises processing
an application request using the base document or the customization document.
