code: @NotNull
      public static <Entity extends Serializable> Integer scanStorage(@NotNull AnalyticsContext analyticsContext, @NotNull RangeScanTask<Entity> rangeScanTask) {
          Timer timer = MetricsFactory.getMetrics().getTimer("analytics.scan_storage");
  
  
          ClusterGroup clusterGroup = analyticsContext.getIgnite()
                                                      .cluster()
                                                      .forServers();
  
          Integer loadedDocuments = analyticsContext.getIgnite()
                                                    .compute(clusterGroup)
                                                    .execute(rangeScanTask, null);
  
          timer.stop();
  
          LOGGER.warn("Complete to scan storage data in {}. Processed items: {} ", timer, loadedDocuments);
  
          return loadedDocuments;
      }
docs: Scan storage
  <p>
  Will generate token range and execute tasks to load data from cassandra by token range
  
  @param analyticsContext Analytics context instance for retrieving distributed executor service and cassandra factory
  @param <Entity>         Entity class type
  
  @return Total processed entities