All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.fnklabs.draenei.analytics.search.RebuildTfIndexTask Maven / Gradle / Ivy

package com.fnklabs.draenei.analytics.search;

import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteException;
import org.apache.ignite.cluster.ClusterNode;
import org.apache.ignite.compute.ComputeJobResult;
import org.apache.ignite.compute.ComputeTaskAdapter;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.resources.IgniteInstanceResource;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

class RebuildTfIndexTask extends ComputeTaskAdapter {

    @NotNull
    private final CacheConfiguration documentsCacheConfiguration;

    @NotNull
    private final CacheConfiguration> facetCacheConfiguration;

    private Ignite ignite;

    RebuildTfIndexTask(@NotNull CacheConfiguration documentsCacheConfiguration, @NotNull CacheConfiguration> facetCacheConfiguration) {
        this.documentsCacheConfiguration = documentsCacheConfiguration;
        this.facetCacheConfiguration = facetCacheConfiguration;
    }

    @Nullable
    @Override
    public Map map(List subgrid, @Nullable Document arg) throws IgniteException {
        HashMap calculateTfJobClusterNodeHashMap = new HashMap<>();

        subgrid.forEach(clusterNode -> {
            calculateTfJobClusterNodeHashMap.put(new RebuildTfIndexJob(documentsCacheConfiguration, facetCacheConfiguration), clusterNode);
        });

        return calculateTfJobClusterNodeHashMap;
    }

    @Nullable
    @Override
    public Integer reduce(List results) throws IgniteException {
        int sum = results.stream()
                         .mapToInt(computeJobResult -> {
                             return computeJobResult.getData();
                         })
                         .sum();

        return sum;
    }

    @IgniteInstanceResource
    protected void setIgnite(Ignite ignite) {
        this.ignite = ignite;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy