Account-Level Namespace Resolution for Database Object Isolation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Database platforms face challenges in managing name collisions and access control for objects within customer accounts, leading to complexity and inefficiency in object naming, replication, and user access.

Innovation Solution

Implementing account-level namespaces that allow for hierarchical organization of objects, enabling name resolution, access control, and simplified replication across accounts, while allowing for namespace-based system-user access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional flat namespace structure is used for database objects, then object naming is simple, but name collisions occur and access control becomes complex

Engineering Contradiction:
Improvename collision preventionVSAvoidnamespace structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the database object namespace into hierarchical levels (account-level namespaces containing database-level namespaces containing schema-level namespaces). This segmentation allows objects at different levels to have the same name without collision, while maintaining clear organizational structure and access control boundaries.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an additional dimensional layer to the traditional flat namespace by implementing account-level namespaces as a new hierarchical level above database-level namespaces. This dimensional change provides more namespace resources for object identification and enables multi-tenant isolation while preserving simple object naming within each namespace scope.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Ease of operation

If hierarchical namespaces are implemented, then name resolution and access control are simplified, but system complexity increases

Engineering Contradiction:
Improveobject naming simplicityVSAvoidnamespace management complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent applies local quality by making each namespace level self-contained with its own scope and resolution rules. Object naming and resolution within a namespace remains simple and familiar, while the hierarchical structure provides automatic isolation. Each level maintains local naming simplicity without requiring global name management complexity.

Inventive Principle:
Principle #3Local quality

3Adaptability or versatility

If account-level namespaces are introduced, then multi-tenancy and replication are improved, but existing system architecture becomes more complex

Engineering Contradiction:
Improvemulti-tenancy capabilityVSAvoidarchitecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The account-level namespace structure serves multiple functions simultaneously: it provides multi-tenant isolation, enables simplified object replication across accounts, supports hierarchical access control, and maintains backward compatibility with existing database objects. This universal structure replaces multiple separate mechanisms that would otherwise be needed.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11971876B2Object resolution among account-level namespaces for database platforms
Publication Date: 2024.04.30 SNOWFLAKE INC
  • US11971876B2 patent drawing
  • US11971876B2 patent drawing
  • US11971876B2 patent drawing

AI summary

A database platform receives an object identifier from a client in association with a database session. The client is associated with a customer account of the database platform, and the database session is associated with the client. The customer account includes multiple disjoint account-level namespaces, each of which represents a distinct context for resolution of object identifiers, such that matching object identifiers in different account-level namespaces in the customer account do not collide with respect to object-identifier resolution. The database platform determines that the object identifier does not specify an account-level namespace, and responsively resolves the object identifier with reference to a current account-level namespace of the database session by identifying an object corresponding to the object identifier in the customer account.