Story #1779: Create access to Metacat object file paths through Hazelcast
Create Metacat ObjectPathMap loader class
In order for the d1_indexer to gain access to the object store for indexing across CNs, we need a hazelcast map defined (hzObjectPaths) that reflects the current state of all objects (science metadata, data, etc). The map will be defined as com.hazelcast.core.IMap<Identifier, String), with Identifer being a D1 pid, and String being the system path to the object:
edu.ucsb.nceas.metacat.IdentifierManager manages the entries in the PostgresQL identifier table in Metacat, and should be called to get the pid-to-docid mapping. The metacat properties file stores the filesystem paths for data objects and for science metadata objects. See the edu.ucsb.nceas.metacat.service.PropertyService class as a property util.
These two sources of information should be used in edu.ucsb.nceas.metacat.dataone.hazelcast.ObjectPathMap to provide the backing loader for the map. This class will need to implement com.hazelcast.core.MapLoader methods.
#3 Updated by Rob Nahf over 10 years ago
- Status changed from In Progress to Closed
implemented the 3 interface methods, and created new query in identifierManager class to return all the guids from the identifier table. Yet, for the method that calls it (getAllKeys) we are choosing to return null instead. That method will be there if we change our minds.