# Io Reference

Databases / Obsidian / PMap

|  | PMap stores persistent data in a Map-like fashion and lazily loads available slots from the PDB backing store. Values stored or loaded are cached into local object slots.
|  | at(slotName) Tries to obtain a value for slot slotName from a local slot of that name, or tries to load it from the PDB if the local slot does not exist. When all else fails, returns nil. If slotName begins with an underscore ("_"), returns the id of the slot from PDB instead of the value. atPut(slotName, value) Records value in the slot named slotName. createIfAbsent Creates a slot with a new PMap clone if not already present. init Initialize a new PMap and automatically add it as a persistent object to PDB. objectsForKeys Returns a list of values for each key in the list given. Keys beginning with an underscore ("_") are returned verbatim. persist Commits the PMap's slots to PDB. persistSlots Cleans up dirty slots by committing them to PDB. removeAt Marks a value for removal. removeSlot Marks a value for removal. shouldPersistByDefault PDB boolean flag indicating whether this object should be considered for persistence when persistence has not been specifically requested by calling ppid() or PDB addObjectToPersist. Always true by default for PMap. slotCount Returns the number of slots committed to PDB.