Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

list (DirPath) -> [Name]

Get the child item names of a directory path, which is an empty list if the path does not exist, e.g.:

list('/')
// -> ['alice/', 'bob/', 'carol/']

list('/alice/')
// -> ['notes.txt']

list('/dave/')
// -> []

list('/bob')
// -> ERROR: not a directory path

The list() function is identical to get() at the shard level: we just need to know which shard holds the given directory item, and read that shard. Multiple directory reads can be combined in the same way we just described for document reads, and directory and document reads can be arbitrarily mixed using this strategy.

The Shard Manager should be ignorant of the internal structure of shard files, or the meaning of different types of item. It just needs to know which shards need to be loaded, and provide optimal access to them.