Package mondrian.rolap.agg

Examples of mondrian.rolap.agg.AggregationKey


            if (cacheAggregations && !RolapStar.disableCaching) {
                synchronized (sharedAggregations) {
                    for (Map.Entry<AggregationKey, Aggregation> e
                        : sharedAggregations.entrySet())
                    {
                        AggregationKey aggregationKey = e.getKey();

                        Aggregation aggregation = e.getValue();
                        if (changeListener.isAggregationChanged(aggregation)) {
                            // Create new thread local aggregation
                            // This thread will renew aggregations
View Full Code Here


                // to global cache, because it was in use
                Iterator<Map.Entry<AggregationKey, Aggregation>>
                    it = pendingAggregations.entrySet().iterator();
                while (it.hasNext()) {
                    Map.Entry<AggregationKey, Aggregation> e = it.next();
                    AggregationKey aggregationKey = e.getKey();
                    Aggregation aggregation = e.getValue();
                    // In case this aggregation is not requested by anyone
                    // this aggregation may be pushed into global cache
                    // otherwise put it in pending cache, that will be pushed
                    // when another query finishes
                    if (!isAggregationRequested(aggregationKey)) {
                        pushAggregateModification(
                            aggregationKey, aggregation, sharedAggregations);
                        it.remove();
                    }
                }
                // Push thread local modifications
                it = localAggregations.get().entrySet().iterator();
                while (it.hasNext()) {
                    Map.Entry<AggregationKey, Aggregation> e = it.next();
                    AggregationKey aggregationKey = e.getKey();
                    Aggregation aggregation = e.getValue();
                    // In case this aggregation is not requested by anyone
                    // this aggregation may be pushed into global cache
                    // otherwise put it in pending cache, that will be pushed
                    // when another query finishes
View Full Code Here

                Iterator<Map.Entry<AggregationKey, Aggregation>>
                        it = destAggregations.entrySet().iterator();
                while (it.hasNext()) {
                    Map.Entry<AggregationKey, Aggregation> e =
                        it.next();
                    AggregationKey aggregationKey = e.getKey();
                    Aggregation aggregation = e.getValue();

                    if (localAggregationKey.equals(aggregationKey)) {
                        if (localAggregation.getCreationTimestamp().after(
                            aggregation.getCreationTimestamp()))
View Full Code Here

            // quadratic algorithm if it is large.
            Set<AggregationKey> localAggregationRequestSet =
                new HashSet<AggregationKey>(localAggregationRequests.get());
            Iterator<AggregationKey> iter = aggregationRequests.iterator();
            while (iter.hasNext()) {
                AggregationKey aggregationKey = iter.next();
                if (localAggregationRequestSet.contains(aggregationKey)) {
                    iter.remove();
                    // Make sure that bitKey is not removed more than once:
                    // other occurrences might exist for other threads.
                    localAggregationRequestSet.remove(aggregationKey);
View Full Code Here

TOP

Related Classes of mondrian.rolap.agg.AggregationKey

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.