Badhusha Muhammed
05/27/2026, 6:06 PMvalidDocIds snapshot was missing from many segments.
Assumption
1. Dataset: We are running a 10 TB Upsert table containing millions of rows with a high-cardinality primary key.
2. Restart Behavior: When a server hosting an Upsert table restarts, it must rebuild the in-memory Upsert Metadata Manager (the hash map tracking PrimaryKey -> RecordLocation).
3. Segments with Snapshots: The server can efficiently skip entire segments if their maximum timestamp falls outside the metadata TTL, keeping heap usage low.
4. Segments without Snapshots: The server is forced to load the entire segment into the heap to determine which records are valid. A background TTL filter job (running , lets say every 10 minutes) is responsible for cleaning up expired keys.
Now i feel like the 4th point is causing this issue of high heap ,
If yes ( 4th point is correct )
Is there any way we can create snapshot for segments thats are missing them..?
If no ( 4th point is wrong )
Can you please let me know, what other reason can be there ..?
@Xiang Fu, @MayankMayank
Badhusha Muhammed
05/28/2026, 3:38 PMMayank
Xiang Fu
Badhusha Muhammed
05/28/2026, 4:32 PMXiang Fu
Badhusha Muhammed
05/28/2026, 4:49 PM-Xms120G -Xmx120G -XX:+UseG1GC -XX:MaxGCPauseMillis=300 -Djute.maxbuffer=10485760 -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem -XX:ParallelGCThreads=62 -XX:ConcGCThreads=15 -XX:InitiatingHeapOccupancyPercent=30Xiang Fu
Badhusha Muhammed
05/29/2026, 11:50 AMXiang Fu
Badhusha Muhammed
05/29/2026, 5:41 PMMayank
Badhusha Muhammed
05/29/2026, 5:47 PMBadhusha Muhammed
05/29/2026, 5:50 PMMayank
Badhusha Muhammed
05/29/2026, 6:09 PMBadhusha Muhammed
05/29/2026, 6:38 PM{PK1, PK4, PK5}
Now without a snapshot is available, During a cold restart of servers , for a momentarily time , Is there any chance We will have a Upsert Metadata like this
{PK1, PK2, PK3, PK4, PK5} to rebuild the IN-MMORY bitmap of segment1, and the expired one will be eventually removed from Upsert Metadata.