- when loading JSON files, extract PUBLIC_ID from file name and check if it was already loaded. If so, skip the file

- multiple loaders can now run in parallel. getCachedItem now handles insertion errors if another process already inserted a key.