# US 12,222,949 B2 · Shared tag data system

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

- Number: US 12,222,949 B2
- Document ID: US12222949B2
- Status: Granted
- Kind: B2
- Application number: 18/545,672
- Filed: 2023-12-19
- Published: 2024-04-11
- Granted: 2025-02-11
- Earliest claimed: 2020-10-30
- Assignees: Snowflake Inc.
- Applicants: Snowflake Inc.
- Inventors: Artin Avanes; Khalid Zaman Bijon; Yujie Li; Zheng Mi; Subramanian Muralidhar; David Schultz
- Web page: https://patentgrep.com/patent/US12222949B2

## CPC

- G06F 16/24573: {using data annotations, e.g. user-defined metadata}
- G06F 16/211: {Schema design and management}
- G06F 16/212: {with details for data modelling support}
- G06F 16/2291: {User-Defined Types; Storage management thereof}
- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 16/288: {Entity relationship models}
- G06F 16/289: {Object oriented databases}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method of implementing object tagging framework starts with the processor receiving a tag creation command including a tag name. In response to the tag creation command, the processor creates a current tag. The processor then receives an association command, the tag name and a source object identifier. The processor determines a source object associated with the source object identifier. The source object includes a tag value. The processor associates the current tag with the source object. The processor receives a replication command including the source object and a target object. The processor causes replication of the source object to the target object that comprises replicating the current tag with the tag name and the tag value in the source object to the target object. Other embodiments are also described herein.

## Claims

### Claim 1

A machine-implemented method, comprising:
receiving, by a tag controller of a distributed database, a tag creation command including a tag name;
in response to the tag creation command performing, by the tag controller, operations comprising:
creating a shared tag using the tag name and a global unique identification; and
storing a state of the tag controller and a state at least one database of the distributed database in a centralized metadata store of the distributed database on a single machine of the distributed database;
associating, by a provider account using the tag controller, the shared tag with a provider object of the distributed database, the shared tag granting a read-only privilege to the provider object;
associating, by a consumer account using the tag controller, the shared tag with a consumer object, the shared tag granting an annotate privilege to the consumer object;
based on the read-only privilege of the shared tag, sharing the provider object of the provider account with the consumer account; and
based on the annotate privilege of the shared tag, allowing the consumer object of the consumer account to be annotated by a user of the consumer account.

### Claim 2 (depends on 1)

The machine-implemented method of claim 1, wherein the provider account and the consumer account are associated with different organizations.

### Claim 3 (depends on 1)

The machine-implemented method of claim 1, wherein the read-only privilege allows the provider object to be shared but not modified by the consumer object.

### Claim 4 (depends on 1)

The machine-implemented method of claim 1, wherein the annotate privilege allows the consumer object to be annotated but not modified by the provider object.

### Claim 5 (depends on 1)

The machine-implemented method of claim 1, further comprising:
identifying a child object of the provider object based on an entity hierarchy; and
associating the shared tag with the child object.

### Claim 6 (depends on 5)

The machine-implemented method of claim 5, further comprising:
providing the child object to the user of the consumer account based on the read-only privilege granted by the shared tag.

### Claim 7 (depends on 1)

The machine-implemented method of claim 1, wherein sharing the provider object comprises sharing metadata of the provider object.

### Claim 8 (depends on 1)

The machine-implemented method of claim 1, wherein allowing the consumer object to be annotated comprises allowing addition of metadata to the consumer object.

### Claim 9 (depends on 1)

The machine-implemented method of claim 1, wherein the shared tag is associated with the provider object and the consumer object globally across a plurality of geographic regions.

### Claim 10

A system comprising:
at least one processor; and
at least one memory storing instructions that, when executed by the at least one processor, cause the machine to perform operations comprising:
receiving, by a tag controller of a distributed database, a tag creation command including a tag name;
in response to the tag creation command performing, by the tag controller, operations comprising:
creating a shared tag using the tag name and a global unique identification; and
storing a state of the tag controller and a state at least one database of the distributed database in a centralized metadata store of the distributed database on a single machine of the distributed database;
associating, by a provider account using the tag controller, the shared tag with a provider object of the distributed database, the shared tag granting a read-only privilege to the provider object;
associating, by a consumer account using the tag controller, the shared tag with a consumer object, the shared tag granting an annotate privilege to the consumer object;
based on the read-only privilege of the shared tag, sharing the provider object of the provider account with the consumer account; and
based on the annotate privilege of the shared tag, allowing the consumer object of the consumer account to be annotated by a user of the consumer account.

### Claim 11 (depends on 10)

The system of claim 10, wherein the provider account and the consumer account are associated with different organizations.

### Claim 12 (depends on 10)

The system of claim 10, wherein the read-only privilege allows the provider object to be shared but not modified by the consumer object.

### Claim 13 (depends on 10)

The system of claim 10, wherein the annotate privilege allows the consumer object to be annotated but not modified by the provider object.

### Claim 14 (depends on 10)

The system of claim 10, wherein the operations further comprise:
identifying a child object of the provider object based on an entity hierarchy; and
associating the shared tag with the child object.

### Claim 15 (depends on 14)

The system of claim 14, wherein the operations further comprise:
providing the child object to the user of the consumer account based on the read-only privilege granted by the shared tag.

### Claim 16 (depends on 10)

The system of claim 10, wherein sharing the provider object comprises sharing metadata of the provider object.

### Claim 17 (depends on 10)

The system of claim 10, wherein allowing the consumer object to be annotated comprises allowing addition of metadata to the consumer object.

### Claim 18 (depends on 10)

The system of claim 10, wherein the shared tag is associated with the provider object and the consumer object globally across a plurality of geographic regions.

### Claim 19

A machine-storage medium storing instructions that, when executed by a machine, cause the machine to perform operations comprising:
receiving, by a tag controller of a distributed database, a tag creation command including a tag name;
in response to the tag creation command performing, by the tag controller, operations comprising:
creating a shared tag using the tag name and a global unique identification; and
storing a state of the tag controller and a state at least one database of the distributed database in a centralized metadata store of the distributed database on a single machine of the distributed database;
associating, by a provider account using the tag controller, the shared tag with a provider object of the distributed database, the shared tag granting a read-only privilege to the provider object;
associating, by a consumer account using the tag controller, the shared tag with a consumer object, the shared tag granting an annotate privilege to the consumer object;
based on the read-only privilege of the shared tag, sharing the provider object of the provider account with the consumer account; and
based on the annotate privilege of the shared tag, allowing the consumer object of the consumer account to be annotated by a user of the consumer account.

### Claim 20 (depends on 19)

The machine-storage medium of claim 19, wherein the provider account and the consumer account are associated with different organizations.

### Claim 21 (depends on 19)

The machine-storage medium of claim 19, wherein the read-only privilege allows the provider object to be shared but not modified by the consumer object.

### Claim 22 (depends on 19)

The machine-storage medium of claim 19, wherein the annotate privilege allows the consumer object to be annotated but not modified by the provider object.

### Claim 23 (depends on 19)

The machine-storage medium of claim 19, wherein the operations further comprise:
identifying a child object of the provider object based on an entity hierarchy; and
associating the shared tag with the child object.

### Claim 24 (depends on 23)

The machine-storage medium of claim 23, wherein the operations further comprise:
providing the child object to the user of the consumer account based on the read-only privilege granted by the shared tag.

### Claim 25 (depends on 19)

The machine-storage medium of claim 19, wherein sharing the provider object comprises sharing metadata of the provider object.

### Claim 26 (depends on 19)

The machine-storage medium of claim 19, wherein allowing the consumer object to be annotated comprises allowing addition of metadata to the consumer object.

### Claim 27 (depends on 19)

The machine-storage medium of claim 19, wherein the shared tag is associated with the provider object and the consumer object globally across a plurality of geographic regions.
