code: public Future<?> startLoading(MapStoreContext mapStoreContext, boolean replaceExistingValues) {
          role.nextOrStay(Role.SENDER);
  
          if (state.is(State.LOADING)) {
              return keyLoadFinished;
          }
          state.next(State.LOADING);
  
          return sendKeys(mapStoreContext, replaceExistingValues);
      }
docs: Triggers key and value loading if there is no ongoing or completed
  key loading task, otherwise does nothing.
  The actual loading is done on a separate thread.
  
  @param mapStoreContext       the map store context for this map
  @param replaceExistingValues if the existing entries for the loaded keys should be replaced
  @return a future representing pending completion of the key loading task