IP Library Granted Patent US 12,505,096
Granted Patent B2
US 12,505,096 · App. 18/141,565 · Granted Dec 23, 2025

Translation of tenant identifiers

Inventor: Thomas Fanghaenel (Oakland, CA)
Assignee: Salesforce, Inc.
G06F16/2452G06F16/221G06F16/2237G06F16/2291
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,505,096
App. No.
18/141,565
Granted
Dec 23, 2025
Kind
B2
Abstract

Systems, devices, and techniques are disclosed for translation of tenant identifiers. A record may be received. A value of a tenant identifier for the record may be determined from a key for the record or a scan descriptor. The value of the tenant identifier in the key for the record may be replaced with a new value for the tenant identifier. A bitmap stored in a record header of the record may be used to identify columns of the record that stored an encoded value of the tenant identifier. An encoded new value of the tenant identifier may be stored in columns identified by the bitmap stored in the record header that include an attribute indicating that tenant identifier translation is enabled.

Claims (37)

1 . A computer-implemented method comprising:

receiving a record;

removing an encoded value of a tenant identifier from a tenant identifier column of the record stored with records of a database in a persistent storage of a database server at a working storage of the database server;

determining that the encoded value of the tenant identifier is stored in at least one other column of the record;

generating a bitmap identifying columns of the record where the encoded value of the tenant identifier is stored;

removing the encoded value of the tenant identifier from the columns of the record identified by the bitmap without removing the columns of the record identified by the bitmap;

storing the bitmap and the encoded value of the tenant identifier in a record header of the record;

storing the record with the records of the database in the persistent storage of the database server;

identifying, using the bitmap the columns of the record that stored the encoded value of the tenant identifier; and

storing an encoded new value of the tenant identifier in the columns identified by the bitmap stored in the record header.

2 . The computer-implemented method of claim 1 , further comprising storing a bit in the record header of the record indicating that the bitmap and the encoded value of the tenant identifier are stored in the record header.

3 . The computer-implemented method of claim 1 , further comprising storing a bit in the record header of the record indicating that the encoded value of the tenant identifier was removed from the tenant identifier column of the record.

4 . The computer-implemented method of claim 1 , further comprising storing a tenant identifier column attribute number in the record header of the record that identifies the tenant identifier column.

5 . The computer-implemented method of claim 1 , wherein the record is received from the persistent storage of a multi-tenanted database system.

6 . The computer-implemented method of claim 1 , wherein the record is unpacked in working memory of a multi-tenanted database system.

7 . A computer-implemented system for translation of tenant identifiers comprising:

one or more storage devices comprising a persistent storage and a working storage; and a processor that retrieves a record from the persistent storage and writes the record to the working storage, removes an encoded value of a tenant identifier from a tenant identifier column of the record, determines that the encoded value of the tenant identifier is stored in at least one other column of the record, generates a bitmap identifying columns of the record where the encoded value of the tenant identifier is stored, removes the encoded value of the tenant identifier from the columns of the record identified by the bitmap without removing the columns of the record identified by the bitmap, stores the bitmap and the encoded value of the tenant identifier in a record header of the record stores the record with the records of the database in the persistent storage of the database server, and identifies, using the bitmap the columns of the record that stored the encoded value of the tenant identifier, and stores an encoded new value of the tenant identifier in the columns identified by the bitmap stored in the record header.

8 . The computer-implemented system of claim 7 , wherein the processor further stores a bit in the record header of the record indicating that the bitmap and the encoded value of the tenant identifier are stored in the record header.

9 . The computer-implemented system of claim 7 , wherein the processor further stores a bit in the record header of the record indicating that the encoded value of the tenant identifier was removed from the tenant identifier column of the record.

10 . The computer-implemented system of claim 7 , wherein the processor further stores a tenant identifier column attribute number in the record header of the record that identifies the tenant identifier column.

11 . The computer-implemented system of claim 7 , wherein the record is received from the persistent storage of a multi-tenanted database system.

12 . The computer-implemented system of claim 7 , wherein the record is unpacked in working memory of a multi-tenanted database system.

13 . A system comprising: one or more computers and one or more storage devices storing instructions which are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

receiving a record;

removing an encoded value of a tenant identifier from a tenant identifier column of the record stored with records of a database in a persistent storage of a database server at a working storage of the database server;

determining that the encoded value of the tenant identifier is stored in at least one other column of the record;

generating a bitmap identifying columns of the record where the encoded value of the tenant identifier is stored;

removing the encoded value of the tenant identifier from the columns of the record identified by the bitmap without removing the columns of the record identified by the bitmap;

storing the bitmap and the encoded value of the tenant identifier in a record header of the record;

storing the record with the records of the database in the persistent storage of the database server;

identifying, using the bitmap the columns of the record that stored the encoded value of the tenant identifier; and

storing an encoded new value of the tenant identifier in the columns identified by the bitmap stored in the record header.

14 . The system of claim 13 , wherein the instructions are operable, when executed by the one or more computers, to further cause the one or more computers to perform operations comprising storing a bit in the record header of the record indicating that the bitmap and the encoded value of the tenant identifier are stored in the record header.

15 . The system of claim 13 , wherein the instructions are operable, when executed by the one or more computers, to further cause the one or more computers to perform operations comprising storing a bit in the record header of the record indicating that the encoded value of the tenant identifier was removed from the tenant identifier column of the record.

16 . The system of claim 13 , wherein the instructions are operable, when executed by the one or more computers, to further cause the one or more computers to perform operations comprising storing a tenant identifier column attribute number in the record header of the record that identifies the tenant identifier column.

17 . The system of claim 13 , wherein the record is received from the persistent storage of a multi-tenanted database system.

18 . The system of claim 13 , wherein the record is unpacked in working memory of a multi-tenanted database system.

Assignments (2)
CHANGE OF NAME Recorded Aug 25, 2025
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 072545/0834 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2023
From: FANGHAENEL, THOMAS
To: SALESFORCE.COM, INC.
Reel/Frame 063492/0809 →
Continuity (2)
Division 16139889 · Sep 24, 2018
Related Publication 20230267116A1 · Aug 24, 2023
References Cited (51)
US 6360213B1 · Wagstaff · 2002 [cited by applicant]
US 6732124B1 · Koseki · 2004 [cited by applicant]
US 8938428B1 · Ozekinci · 2015 [cited by examiner]
US 9317706B2 · Kaushik · 2016 [cited by examiner]
US 9779269B1 · Perlman · 2017 [cited by examiner]
US 11263193B2 · Leingang · 2022 [cited by examiner]
US 12061606B1 · Kadado · 2024 [cited by examiner]
US 20020087500A1 · Berkowitz · 2002 [cited by applicant]
US 20020095421A1 · Koskas · 2002 [cited by examiner]
US 20040148420A1 · Hinshaw · 2004 [cited by examiner]
US 20050223022A1 · Weissman · 2005 [cited by applicant]
US 20070050381A1 · Hu · 2007 [cited by applicant]
US 20070121632A1 · Zabarski · 2007 [cited by applicant]
US 20070233718A1 · Hays · 2007 [cited by applicant]
US 20080162491A1 · Becker · 2008 [cited by applicant]
US 20090115576A1 · Schuessler · 2009 [cited by examiner]
US 20100257351A1 · O'Connor · 2010 [cited by examiner]
US 20110214062A1 · Doshi · 2011 [cited by examiner]
US 20120030172A1 · Pareek · 2012 [cited by applicant]
US 20130110828A1 · Meyerzon · 2013 [cited by examiner]
US 20130144908A1 · Geroulo · 2013 [cited by applicant]
US 20130325808A1 · Bachar · 2013 [cited by applicant]
US 20140250090A1 · Faerber · 2014 [cited by applicant]
US 20150052150A1 · Sharique · 2015 [cited by examiner]
US 20150143064A1 · Bhargava · 2015 [cited by applicant]
US 20150324480A1 · Schreter · 2015 [cited by applicant]
US 20160055197A1 · Caro · 2016 [cited by examiner]
US 20160085832A1 · Lam · 2016 [cited by applicant]
US 20160283538A1 · Barber · 2016 [cited by examiner]
US 20170060569A1 · Piccinini · 2017 [cited by examiner]
US 20170116242A1 · Chavan · 2017 [cited by examiner]
US 20170116280A1 · Shergill, Jr. · 2017 [cited by applicant]
US 20170323119A1 · Harp · 2017 [cited by applicant]
US 20180011893A1 · Kimura · 2018 [cited by examiner]
US 20180081767A1 · He · 2018 [cited by applicant]
US 20180089261A1 · Li · 2018 [cited by applicant]
US 20180129585A1 · Martin · 2018 [cited by applicant]
US 20180196839A1 · Clapham · 2018 [cited by examiner]
US 20180196947A1 · Davis · 2018 [cited by examiner]
US 20180307857A1 · Beecham · 2018 [cited by examiner]
US 20180373741A1 · Martin · 2018 [cited by examiner]
US 20190362026A1 · Nowakiewicz · 2019 [cited by applicant]
US 20190377723A1 · Caro · 2019 [cited by examiner]
US 20200159708A1 · Bi · 2020 [cited by applicant]
Wu, Ming-Chuan, and Alejandro P. Buchmann. “Encoded bitmap indexing for data warehouses.” Proceedings 14th International Conference on Data Engineering. IEEE, 1998. (Year: 1998). [cited by examiner]
European Patent Office Communication pursuant to Article 94(3) EPC issued in App. No. EP19787503.2, dated Aug. 1, 2022, 6 pages. [cited by applicant]
Indian Office Action issued in App. No. IN202147003898, dated Nov. 30, 2022, 7 pages. [cited by applicant]
International Search Report and Written Opinion for Application No. PCT/US2019/052455, date of mailing Dec. 13, 2019, 12 pages. [cited by applicant]
International Preliminary Report on Patentability for App. No. PCT/US2019/052455, dated Apr. 1, 2021, 8 pages. [cited by applicant]
Australian Examination Report No. 1 issued in App. No. AU2019349429, dated Dec. 4, 2023, 4 pages. [cited by applicant]
Chinese Office Action issued in App. No. CN201980051015, dated Nov. 1, 2023, 8 pages. [cited by applicant]