Memory
MonkDB memory provides short-lived key/value state with SQL control plane and visibility tables.
Memory objects
Create a memory namespace:
CREATE MEMORY session_store
WITH (strict = true, entry_ttl_ms = 3600000, max_entries = 1000);
Supported options:
strict(boolean)entry_ttl_ms(long)max_entries(integer)
Data path
Write/read through memory.memory_entries.
INSERT INTO memory.memory_entries (memory_name, entry_key, entry_value)
VALUES
('session_store', 'sess-42:intent', 'payment_failure'),
('session_store', 'sess-42:priority', 'urgent');
SELECT memory_name, entry_key, entry_value
FROM memory.memory_entries
WHERE memory_name = 'session_store'
ORDER BY entry_key;
Upsert pattern:
INSERT INTO memory.memory_entries (memory_name, entry_key, entry_value)
VALUES ('session_store', 'sess-42:intent', 'payment_failure_v2')
ON CONFLICT (memory_name, entry_key) DO UPDATE
SET entry_value = excluded.entry_value;
Compaction
Manual compaction:
ALTER MEMORY session_store COMPACT;
Periodic compaction settings:
memory.compaction.enabledmemory.compaction.interval
Status views
memory.memoriesmemory.memory_entriesmemory.memory_status
Example:
SELECT strict, entry_ttl_ms, max_entries, active_entries, expired_entries, capacity_used_percent
FROM memory.memory_status
WHERE memory_name = 'session_store';