Serge Huber created UNOMI-1016:
----------------------------------

             Summary: Speed up looking up a tenant by its API key
                 Key: UNOMI-1016
                 URL: https://issues.apache.org/jira/browse/UNOMI-1016
             Project: Apache Unomi
          Issue Type: Improvement
            Reporter: Serge Huber
             Fix For: unomi-4.1.0


h3. Summary

On each public request that carries an API key, Unomi finds the matching tenant 
by loading every tenant from storage and checking their keys one by one. On a 
server with many tenants, that work repeats on every such request and can 
become a large share of the cost of serving public traffic.

The goal of this ticket is to make tenant lookup by API key cheaper, so public 
requests do not pay for a full scan of all tenants each time.

This is separate from the per-tenant website origin work (UNOMI-1013). It is 
about the shared cost of resolving which tenant owns a key.

h3. Ways to explore
* Keep an in-memory map from key to tenant, refreshed when tenants are created, 
updated, or removed.
* Store a durable index that can resolve a key without loading every tenant 
document.
* Measure the cost with a realistic number of tenants so the change can be 
checked under load.

h3. How to test
* Unit and integration tests that resolve a tenant by public and private key 
still pass.
* With many tenants, looking up a key no longer loads every tenant from storage 
on each call.
* Creating, updating, or deleting a tenant still makes the new keys work and 
the old keys stop working.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to