/**
  * Returns the protocol descriptors map, keyed by node ID. Creates and stores the map if it
  * doesn't already exist. This method must be run within a transaction.
  */
 private static Map<Long, Set<ProtocolDescriptor>> getProtocolDescriptorsMap() {
   DataService dataService = getDataService();
   Map<Long, Set<ProtocolDescriptor>> protocolDescriptorsMap;
   try {
     protocolDescriptorsMap =
         Objects.uncheckedCast(dataService.getServiceBinding(PROTOCOL_DESCRIPTORS_MAP_KEY));
   } catch (NameNotBoundException e) {
     protocolDescriptorsMap = new ScalableHashMap<Long, Set<ProtocolDescriptor>>();
     dataService.setServiceBinding(PROTOCOL_DESCRIPTORS_MAP_KEY, protocolDescriptorsMap);
   }
   return protocolDescriptorsMap;
 }