Implementation Design (3)
Single server continued
- Special client cooperate with garbage collector to transform rarely used objects
- Upgrades complete in order: when all objects affected by the oldest upgrade has been transformed, it is discarded
- Problem: objects change sizes across transformations
- Size decreases---overwrite original object
- Size increases---find space on the same server page:
- If succeed, update page offset table
- Otherwise, write to another page and replace original object with surrogate
- Reference through surrogate is shortcut when the referring object is modified