http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryTask.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryTask.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryTask.java index d996f6c..303e6b6 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryTask.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryTask.java @@ -17,16 +17,35 @@ package org.apache.ignite.internal.visor.query; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.UUID; +import javax.cache.Cache; +import org.apache.ignite.IgniteCache; +import org.apache.ignite.cache.query.QueryCursor; +import org.apache.ignite.cache.query.ScanQuery; +import org.apache.ignite.cache.query.SqlFieldsQuery; +import org.apache.ignite.internal.processors.query.GridQueryFieldMetadata; import org.apache.ignite.internal.processors.task.GridInternal; +import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; +import org.apache.ignite.internal.visor.VisorEither; +import org.apache.ignite.internal.visor.VisorJob; import org.apache.ignite.internal.visor.VisorOneNodeTask; import org.apache.ignite.internal.visor.util.VisorExceptionWrapper; -import org.apache.ignite.lang.IgniteBiTuple; +import org.apache.ignite.lang.IgniteBiPredicate; + +import static org.apache.ignite.internal.visor.query.VisorQueryUtils.SQL_QRY_NAME; +import static org.apache.ignite.internal.visor.query.VisorQueryUtils.fetchSqlQueryRows; +import static org.apache.ignite.internal.visor.query.VisorQueryUtils.scheduleResultSetHolderRemoval; /** - * Task for execute SCAN or SQL query and get first page of results. + * Task for execute SQL fields query and get first page of results. */ @GridInternal -public class VisorQueryTask extends VisorOneNodeTask<VisorQueryArg, IgniteBiTuple<? extends VisorExceptionWrapper, VisorQueryResultEx>> { +public class VisorQueryTask extends VisorOneNodeTask<VisorQueryArg, VisorEither<VisorQueryResult>> { /** */ private static final long serialVersionUID = 0L; @@ -34,4 +53,97 @@ public class VisorQueryTask extends VisorOneNodeTask<VisorQueryArg, IgniteBiTupl @Override protected VisorQueryJob job(VisorQueryArg arg) { return new VisorQueryJob(arg, debug); } -} \ No newline at end of file + + /** + * Job for execute SCAN or SQL query and get first page of results. + */ + private static class VisorQueryJob extends VisorJob<VisorQueryArg, VisorEither<VisorQueryResult>> { + /** */ + private static final long serialVersionUID = 0L; + + /** + * Create job with specified argument. + * + * @param arg Job argument. + * @param debug Debug flag. + */ + private VisorQueryJob(VisorQueryArg arg, boolean debug) { + super(arg, debug); + } + + /** + * Execute scan query. + * + * @param c Cache to scan. + * @param arg Job argument with query parameters. + * @return Query cursor. + */ + private QueryCursor<Cache.Entry<Object, Object>> scan(IgniteCache<Object, Object> c, VisorQueryArg arg, + IgniteBiPredicate<Object, Object> filter) { + ScanQuery<Object, Object> qry = new ScanQuery<>(filter); + qry.setPageSize(arg.getPageSize()); + qry.setLocal(arg.isLocal()); + + return c.withKeepBinary().query(qry); + } + + /** {@inheritDoc} */ + @Override protected VisorEither<VisorQueryResult> run(final VisorQueryArg arg) { + try { + IgniteCache<Object, Object> c = ignite.context().cache().jcache(arg.getCacheName()); + UUID nid = ignite.localNode().id(); + + SqlFieldsQuery qry = new SqlFieldsQuery(arg.getQueryText()); + qry.setPageSize(arg.getPageSize()); + qry.setLocal(arg.isLocal()); + qry.setDistributedJoins(arg.isDistributedJoins()); + qry.setEnforceJoinOrder(arg.isEnforceJoinOrder()); + + long start = U.currentTimeMillis(); + + VisorQueryCursor<List<?>> cur = new VisorQueryCursor<>(c.withKeepBinary().query(qry)); + + Collection<GridQueryFieldMetadata> meta = cur.fieldsMeta(); + + if (meta == null) + return new VisorEither<>( + new VisorExceptionWrapper(new SQLException("Fail to execute query. No metadata available."))); + else { + List<VisorQueryField> names = new ArrayList<>(meta.size()); + + for (GridQueryFieldMetadata col : meta) + names.add(new VisorQueryField(col.schemaName(), col.typeName(), + col.fieldName(), col.fieldTypeName())); + + List<Object[]> rows = fetchSqlQueryRows(cur, arg.getPageSize()); + + // Query duration + fetch duration. + long duration = U.currentTimeMillis() - start; + + boolean hasNext = cur.hasNext(); + + // Generate query ID to store query cursor in node local storage. + String qryId = SQL_QRY_NAME + "-" + UUID.randomUUID(); + + if (hasNext) { + ignite.cluster().<String, VisorQueryCursor<List<?>>>nodeLocalMap().put(qryId, cur); + + scheduleResultSetHolderRemoval(qryId, ignite); + } + else + cur.close(); + + return new VisorEither<>(new VisorQueryResult(nid, qryId, names, rows, hasNext, duration)); + } + } + catch (Throwable e) { + return new VisorEither<>(new VisorExceptionWrapper(e)); + } + } + + /** {@inheritDoc} */ + @Override public String toString() { + return S.toString(VisorQueryJob.class, this); + } + } +}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryUtils.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryUtils.java index 5faeac0..9a0262d 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryUtils.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryUtils.java @@ -21,14 +21,16 @@ import java.math.BigDecimal; import java.net.URL; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.Date; import java.util.List; +import java.util.concurrent.ConcurrentMap; import javax.cache.Cache; import org.apache.ignite.binary.BinaryObject; import org.apache.ignite.binary.BinaryObjectException; import org.apache.ignite.binary.BinaryType; +import org.apache.ignite.internal.IgniteEx; import org.apache.ignite.internal.binary.BinaryObjectEx; +import org.apache.ignite.internal.processors.timeout.GridTimeoutObjectAdapter; import org.apache.ignite.internal.util.IgniteUtils; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.internal.util.typedef.internal.SB; @@ -46,17 +48,8 @@ public class VisorQueryUtils { /** Prefix for node local key for SCAN queries. */ public static final String SCAN_QRY_NAME = "VISOR_SCAN_QUERY"; - /** Prefix for node local key for SCAN near queries. */ - public static final String SCAN_NEAR_CACHE = "VISOR_SCAN_NEAR_CACHE"; - - /** Prefix for node local key for SCAN near queries. */ - public static final String SCAN_CACHE_WITH_FILTER = "VISOR_SCAN_CACHE_WITH_FILTER"; - - /** Prefix for node local key for SCAN near queries. */ - public static final String SCAN_CACHE_WITH_FILTER_CASE_SENSITIVE = "VISOR_SCAN_CACHE_WITH_FILTER_CASE_SENSITIVE"; - /** Columns for SCAN queries. */ - public static final Collection<VisorQueryField> SCAN_COL_NAMES = Arrays.asList( + public static final List<VisorQueryField> SCAN_COL_NAMES = Arrays.asList( new VisorQueryField(null, null, "Key Class", ""), new VisorQueryField(null, null, "Key", ""), new VisorQueryField(null, null, "Value Class", ""), new VisorQueryField(null, null, "Value", "") ); @@ -264,4 +257,32 @@ public class VisorQueryUtils { return rows; } + + /** + * @param qryId Unique query result id. + */ + public static void scheduleResultSetHolderRemoval(final String qryId, final IgniteEx ignite) { + ignite.context().timeout().addTimeoutObject(new GridTimeoutObjectAdapter(RMV_DELAY) { + @Override public void onTimeout() { + ConcurrentMap<String, VisorQueryCursor> storage = ignite.cluster().nodeLocalMap(); + + VisorQueryCursor cur = storage.get(qryId); + + if (cur != null) { + // If cursor was accessed since last scheduling, set access flag to false and reschedule. + if (cur.accessed()) { + cur.accessed(false); + + scheduleResultSetHolderRemoval(qryId, ignite); + } + else { + // Remove stored cursor otherwise. + storage.remove(qryId); + + cur.close(); + } + } + } + }); + } } http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorRunningQueriesCollectorTask.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorRunningQueriesCollectorTask.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorRunningQueriesCollectorTask.java new file mode 100644 index 0000000..a267f06 --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorRunningQueriesCollectorTask.java @@ -0,0 +1,96 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.visor.query; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import org.apache.ignite.IgniteException; +import org.apache.ignite.compute.ComputeJobResult; +import org.apache.ignite.internal.processors.query.GridRunningQueryInfo; +import org.apache.ignite.internal.processors.task.GridInternal; +import org.apache.ignite.internal.util.typedef.internal.U; +import org.apache.ignite.internal.visor.VisorJob; +import org.apache.ignite.internal.visor.VisorMultiNodeTask; +import org.jetbrains.annotations.Nullable; + +/** + * Task to collect currently running queries. + */ +@GridInternal +public class VisorRunningQueriesCollectorTask extends VisorMultiNodeTask<Long, Map<UUID, Collection<VisorRunningQuery>>, Collection<VisorRunningQuery>> { + /** */ + private static final long serialVersionUID = 0L; + + /** {@inheritDoc} */ + @Override protected VisorCollectRunningQueriesJob job(Long arg) { + return new VisorCollectRunningQueriesJob(arg, debug); + } + + /** {@inheritDoc} */ + @Nullable @Override protected Map<UUID, Collection<VisorRunningQuery>> reduce0(List<ComputeJobResult> results) throws IgniteException { + Map<UUID, Collection<VisorRunningQuery>> map = new HashMap<>(); + + for (ComputeJobResult res : results) + if (res.getException() == null) { + Collection<VisorRunningQuery> queries = res.getData(); + + map.put(res.getNode().id(), queries); + } + + return map; + } + + /** + * Job to collect currently running queries from node. + */ + private static class VisorCollectRunningQueriesJob extends VisorJob<Long, Collection<VisorRunningQuery>> { + /** */ + private static final long serialVersionUID = 0L; + + /** + * Create job with specified argument. + * + * @param arg Job argument. + * @param debug Flag indicating whether debug information should be printed into node log. + */ + protected VisorCollectRunningQueriesJob(@Nullable Long arg, boolean debug) { + super(arg, debug); + } + + /** {@inheritDoc} */ + @Override protected Collection<VisorRunningQuery> run(@Nullable Long duration) throws IgniteException { + Collection<GridRunningQueryInfo> queries = ignite.context().query() + .runningQueries(duration != null ? duration : 0); + + Collection<VisorRunningQuery> res = new ArrayList<>(queries.size()); + + long curTime = U.currentTimeMillis(); + + for (GridRunningQueryInfo qry : queries) + res.add(new VisorRunningQuery(qry.id(), qry.query(), qry.queryType(), qry.cache(), + qry.startTime(), curTime - qry.startTime(), + qry.cancelable(), qry.local())); + + return res; + } + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorRunningQuery.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorRunningQuery.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorRunningQuery.java index fc6bc7a..1864718 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorRunningQuery.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorRunningQuery.java @@ -17,13 +17,18 @@ package org.apache.ignite.internal.visor.query; -import java.io.Serializable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; import org.apache.ignite.internal.processors.cache.query.GridCacheQueryType; +import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; +import org.apache.ignite.internal.visor.VisorDataTransferObject; /** * Descriptor of running query. */ -public class VisorRunningQuery implements Serializable { +public class VisorRunningQuery extends VisorDataTransferObject { /** */ private static final long serialVersionUID = 0L; @@ -52,6 +57,15 @@ public class VisorRunningQuery implements Serializable { private boolean loc; /** + * Default constructor. + */ + public VisorRunningQuery() { + // No-op. + } + + /** + * Construct data transfer object for running query information. + * * @param id Query ID. * @param qry Query text. * @param qryType Query type. @@ -129,4 +143,33 @@ public class VisorRunningQuery implements Serializable { public boolean isLocal() { return loc; } + + /** {@inheritDoc} */ + @Override protected void writeExternalData(ObjectOutput out) throws IOException { + out.writeLong(id); + U.writeString(out, qry); + U.writeEnum(out, qryType); + U.writeString(out, cache); + out.writeLong(startTime); + out.writeLong(duration); + out.writeBoolean(cancellable); + out.writeBoolean(loc); + } + + /** {@inheritDoc} */ + @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException { + id = in.readLong(); + qry = U.readString(in); + qryType = GridCacheQueryType.fromOrdinal(in.readByte()); + cache = U.readString(in); + startTime = in.readLong(); + duration = in.readLong(); + cancellable = in.readBoolean(); + loc = in.readBoolean(); + } + + /** {@inheritDoc} */ + @Override public String toString() { + return S.toString(VisorRunningQuery.class, this); + } } http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorScanQueryArg.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorScanQueryArg.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorScanQueryArg.java new file mode 100644 index 0000000..cc12ac5 --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorScanQueryArg.java @@ -0,0 +1,157 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.visor.query; + +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; +import org.apache.ignite.internal.visor.VisorDataTransferObject; + +/** + * Arguments for {@link VisorScanQueryTask}. + */ +public class VisorScanQueryArg extends VisorDataTransferObject { + /** */ + private static final long serialVersionUID = 0L; + + /** Cache name for query. */ + private String cacheName; + + /** Filter text. */ + private String filter; + + /** Filter is regular expression */ + private boolean regEx; + + /** Case sensitive filtration */ + private boolean caseSensitive; + + /** Scan of near cache */ + private boolean near; + + /** Flag whether to execute query locally. */ + private boolean loc; + + /** Result batch size. */ + private int pageSize; + + /** + * Default constructor. + */ + public VisorScanQueryArg() { + // No-op. + } + + /** + * @param cacheName Cache name for query. + * @param filter Filter text. + * @param regEx Filter is regular expression. + * @param caseSensitive Case sensitive filtration. + * @param near Scan near cache. + * @param loc Flag whether to execute query locally. + * @param pageSize Result batch size. + */ + public VisorScanQueryArg(String cacheName, String filter, boolean regEx, boolean caseSensitive, boolean near, + boolean loc, int pageSize) { + this.cacheName = cacheName; + this.filter = filter; + this.regEx = regEx; + this.caseSensitive = caseSensitive; + this.near = near; + this.loc = loc; + this.pageSize = pageSize; + } + + /** + * @return Cache name. + */ + public String getCacheName() { + return cacheName; + } + + /** + * @return Filter is regular expression. + */ + public boolean isRegEx() { + return regEx; + } + + /** + * @return Filter. + */ + public String getFilter() { + return filter; + } + + /** + * @return Case sensitive filtration. + */ + public boolean isCaseSensitive() { + return caseSensitive; + } + + /** + * @return Scan of near cache. + */ + public boolean isNear() { + return near; + } + + /** + * @return {@code true} if query should be executed locally. + */ + public boolean isLocal() { + return loc; + } + + /** + * @return Page size. + */ + public int getPageSize() { + return pageSize; + } + + /** {@inheritDoc} */ + @Override protected void writeExternalData(ObjectOutput out) throws IOException { + U.writeString(out, cacheName); + U.writeString(out, filter); + out.writeBoolean(regEx); + out.writeBoolean(caseSensitive); + out.writeBoolean(near); + out.writeBoolean(loc); + out.writeInt(pageSize); + } + + /** {@inheritDoc} */ + @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException { + cacheName = U.readString(in); + filter = U.readString(in); + regEx = in.readBoolean(); + caseSensitive = in.readBoolean(); + near = in.readBoolean(); + loc = in.readBoolean(); + pageSize = in.readInt(); + } + + /** {@inheritDoc} */ + @Override public String toString() { + return S.toString(VisorScanQueryArg.class, this); + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorScanQueryTask.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorScanQueryTask.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorScanQueryTask.java new file mode 100644 index 0000000..b8173ba --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorScanQueryTask.java @@ -0,0 +1,185 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.visor.query; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.UUID; +import javax.cache.Cache; +import org.apache.ignite.IgniteCache; +import org.apache.ignite.cache.CachePeekMode; +import org.apache.ignite.cache.query.QueryCursor; +import org.apache.ignite.cache.query.ScanQuery; +import org.apache.ignite.internal.processors.task.GridInternal; +import org.apache.ignite.internal.util.typedef.F; +import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; +import org.apache.ignite.internal.visor.VisorEither; +import org.apache.ignite.internal.visor.VisorJob; +import org.apache.ignite.internal.visor.VisorOneNodeTask; +import org.apache.ignite.internal.visor.util.VisorExceptionWrapper; +import org.apache.ignite.lang.IgniteBiPredicate; + +import static org.apache.ignite.internal.visor.query.VisorQueryUtils.SCAN_COL_NAMES; +import static org.apache.ignite.internal.visor.query.VisorQueryUtils.SCAN_QRY_NAME; +import static org.apache.ignite.internal.visor.query.VisorQueryUtils.fetchScanQueryRows; +import static org.apache.ignite.internal.visor.query.VisorQueryUtils.scheduleResultSetHolderRemoval; + +/** + * Task for execute SCAN query and get first page of results. + */ +@GridInternal +public class VisorScanQueryTask extends VisorOneNodeTask<VisorScanQueryArg, VisorEither<VisorQueryResult>> { + /** */ + private static final long serialVersionUID = 0L; + + /** {@inheritDoc} */ + @Override protected VisorScanQueryJob job(VisorScanQueryArg arg) { + return new VisorScanQueryJob(arg, debug); + } + + /** + * Job for execute SCAN query and get first page of results. + */ + private static class VisorScanQueryJob extends VisorJob<VisorScanQueryArg, VisorEither<VisorQueryResult>> { + /** */ + private static final long serialVersionUID = 0L; + + /** + * Create job with specified argument. + * + * @param arg Job argument. + * @param debug Debug flag. + */ + private VisorScanQueryJob(VisorScanQueryArg arg, boolean debug) { + super(arg, debug); + } + + /** + * Execute scan query. + * + * @param c Cache to scan. + * @param arg Job argument with query parameters. + * @return Query cursor. + */ + private QueryCursor<Cache.Entry<Object, Object>> scan(IgniteCache<Object, Object> c, VisorScanQueryArg arg, + IgniteBiPredicate<Object, Object> filter) { + ScanQuery<Object, Object> qry = new ScanQuery<>(filter); + qry.setPageSize(arg.getPageSize()); + qry.setLocal(arg.isLocal()); + + return c.withKeepBinary().query(qry); + } + + /** + * Scan near cache. + * + * @param c Cache to scan near entries. + * @return Cache entries iterator wrapped with query cursor. + */ + private QueryCursor<Cache.Entry<Object, Object>> near(IgniteCache<Object, Object> c) { + return new VisorNearCacheCursor<>(c.localEntries(CachePeekMode.NEAR).iterator()); + } + + /** {@inheritDoc} */ + @Override protected VisorEither<VisorQueryResult> run(final VisorScanQueryArg arg) { + try { + IgniteCache<Object, Object> c = ignite.context().cache().jcache(arg.getCacheName()); + UUID nid = ignite.localNode().id(); + + String filterText = arg.getFilter(); + + long start = U.currentTimeMillis(); + + IgniteBiPredicate<Object, Object> filter = null; + + if (!F.isEmpty(filterText)) + filter = new VisorQueryScanRegexFilter(arg.isCaseSensitive(), arg.isRegEx(), filterText); + + VisorQueryCursor<Cache.Entry<Object, Object>> cur = + new VisorQueryCursor<>(arg.isNear() ? near(c) : scan(c, arg, filter)); + + List<Object[]> rows = fetchScanQueryRows(cur, arg.getPageSize()); + + long duration = U.currentTimeMillis() - start; // Scan duration + fetch duration. + + boolean hasNext = cur.hasNext(); + + // Generate query ID to store query cursor in node local storage. + String qryId = SCAN_QRY_NAME + "-" + UUID.randomUUID(); + + if (hasNext) { + ignite.cluster().<String, VisorQueryCursor>nodeLocalMap().put(qryId, cur); + + scheduleResultSetHolderRemoval(qryId, ignite); + } + else + cur.close(); + + return new VisorEither<>(new VisorQueryResult(nid, qryId, SCAN_COL_NAMES, rows, hasNext, + duration)); + } + catch (Throwable e) { + return new VisorEither<>(new VisorExceptionWrapper(e)); + } + } + + /** {@inheritDoc} */ + @Override public String toString() { + return S.toString(VisorScanQueryJob.class, this); + } + + /** + * Wrapper for cache iterator to behave like {@link QueryCursor}. + */ + private static class VisorNearCacheCursor<T> implements QueryCursor<T> { + /** Wrapped iterator. */ + private final Iterator<T> it; + + /** + * Wrapping constructor. + * + * @param it Near cache iterator to wrap. + */ + private VisorNearCacheCursor(Iterator<T> it) { + this.it = it; + } + + /** {@inheritDoc} */ + @Override public List<T> getAll() { + List<T> all = new ArrayList<>(); + + while(it.hasNext()) + all.add(it.next()); + + return all; + } + + /** {@inheritDoc} */ + @Override public void close() { + // Nothing to close. + } + + /** {@inheritDoc} */ + @Override public Iterator<T> iterator() { + return it; + } + } + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/service/VisorServiceDescriptor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/service/VisorServiceDescriptor.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/service/VisorServiceDescriptor.java index 26f5c10..4cfd150 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/visor/service/VisorServiceDescriptor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/service/VisorServiceDescriptor.java @@ -17,17 +17,21 @@ package org.apache.ignite.internal.visor.service; -import java.io.Serializable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; import java.util.Map; import java.util.UUID; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; +import org.apache.ignite.internal.visor.VisorDataTransferObject; import org.apache.ignite.internal.visor.util.VisorTaskUtils; import org.apache.ignite.services.ServiceDescriptor; /** * Data transfer object for {@link ServiceDescriptor} object. */ -public class VisorServiceDescriptor implements Serializable { +public class VisorServiceDescriptor extends VisorDataTransferObject { /** */ private static final long serialVersionUID = 0L; @@ -65,6 +69,7 @@ public class VisorServiceDescriptor implements Serializable { /** * Create task result with given parameters * + * @param srvc Service descriptor to transfer. */ public VisorServiceDescriptor(ServiceDescriptor srvc) { name = srvc.name(); @@ -133,6 +138,28 @@ public class VisorServiceDescriptor implements Serializable { } /** {@inheritDoc} */ + @Override protected void writeExternalData(ObjectOutput out) throws IOException { + U.writeString(out, name); + U.writeString(out, srvcCls); + out.writeInt(totalCnt); + out.writeInt(maxPerNodeCnt); + U.writeString(out, cacheName); + U.writeUuid(out, originNodeId); + U.writeMap(out, topSnapshot); + } + + /** {@inheritDoc} */ + @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException { + name = U.readString(in); + srvcCls = U.readString(in); + totalCnt = in.readInt(); + maxPerNodeCnt = in.readInt(); + cacheName = U.readString(in); + originNodeId = U.readUuid(in); + topSnapshot = U.readMap(in); + } + + /** {@inheritDoc} */ @Override public String toString() { return S.toString(VisorServiceDescriptor.class, this); } http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java index e1cd7cf..897ac89 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java @@ -52,7 +52,6 @@ import org.apache.ignite.IgniteLogger; import org.apache.ignite.cache.eviction.EvictionPolicy; import org.apache.ignite.cache.eviction.fifo.FifoEvictionPolicyMBean; import org.apache.ignite.cache.eviction.lru.LruEvictionPolicyMBean; -import org.apache.ignite.cache.eviction.sorted.SortedEvictionPolicyMBean; import org.apache.ignite.cluster.ClusterNode; import org.apache.ignite.events.Event; import org.apache.ignite.internal.processors.igfs.IgfsEx; @@ -66,6 +65,7 @@ import org.apache.ignite.internal.visor.file.VisorFileBlock; import org.apache.ignite.internal.visor.log.VisorLogFile; import org.apache.ignite.lang.IgniteClosure; import org.apache.ignite.lang.IgnitePredicate; +import org.apache.ignite.spi.eventstorage.NoopEventStorageSpi; import org.jetbrains.annotations.Nullable; import static java.lang.System.getProperty; @@ -138,7 +138,7 @@ public class VisorTaskUtils { /** Comparator for log files by last modified date. */ private static final Comparator<VisorLogFile> LAST_MODIFIED = new Comparator<VisorLogFile>() { @Override public int compare(VisorLogFile f1, VisorLogFile f2) { - return Long.compare(f2.lastModified(), f1.lastModified()); + return Long.compare(f2.getLastModified(), f1.getLastModified()); } }; @@ -255,7 +255,7 @@ public class VisorTaskUtils { sb.append(", "); } - sb.append("]"); + sb.append(']'); return sb.toString(); } @@ -290,6 +290,26 @@ public class VisorTaskUtils { } /** + * Compact classes names. + + * @param clss Classes to compact. + * @return Compacted string. + */ + @Nullable public static List<String> compactClasses(Class<?>[] clss) { + if (clss == null) + return null; + + int len = clss.length; + + List<String> res = new ArrayList<>(len); + + for (Class<?> cls: clss) + res.add(U.compact(cls.getName())); + + return res; + } + + /** * Joins array elements to string. * * @param arr Array. @@ -417,7 +437,7 @@ public class VisorTaskUtils { * @param evtMapper Closure to map grid events to Visor data transfer objects. * @return Collections of node events */ - public static Collection<VisorGridEvent> collectEvents(Ignite ignite, String evtOrderKey, String evtThrottleCntrKey, + public static List<VisorGridEvent> collectEvents(Ignite ignite, String evtOrderKey, String evtThrottleCntrKey, int[] evtTypes, IgniteClosure<Event, VisorGridEvent> evtMapper) { assert ignite != null; assert evtTypes != null && evtTypes.length > 0; @@ -449,7 +469,9 @@ public class VisorTaskUtils { } }; - Collection<Event> evts = ignite.events().localQuery(p, evtTypes); + Collection<Event> evts = ignite.configuration().getEventStorageSpi() instanceof NoopEventStorageSpi + ? Collections.<Event>emptyList() + : ignite.events().localQuery(p, evtTypes); // Update latest order in node local, if not empty. if (!evts.isEmpty()) { @@ -464,7 +486,7 @@ public class VisorTaskUtils { boolean lost = !lastFound.get() && throttle == 0; - Collection<VisorGridEvent> res = new ArrayList<>(evts.size() + (lost ? 1 : 0)); + List<VisorGridEvent> res = new ArrayList<>(evts.size() + (lost ? 1 : 0)); if (lost) res.add(new VisorGridEventsLost(ignite.cluster().localNode().id())); @@ -630,6 +652,7 @@ public class VisorTaskUtils { raf.seek(pos); byte[] buf = new byte[toRead]; + int cntRead = raf.read(buf, 0, toRead); if (cntRead != toRead) @@ -681,9 +704,6 @@ public class VisorTaskUtils { if (plc instanceof FifoEvictionPolicyMBean) return ((FifoEvictionPolicyMBean)plc).getMaxSize(); - if (plc instanceof SortedEvictionPolicyMBean) - return ((SortedEvictionPolicyMBean)plc).getMaxSize(); - return null; } http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/plugin/security/SecurityPermissionSet.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/security/SecurityPermissionSet.java b/modules/core/src/main/java/org/apache/ignite/plugin/security/SecurityPermissionSet.java index 9961501..2415fad 100644 --- a/modules/core/src/main/java/org/apache/ignite/plugin/security/SecurityPermissionSet.java +++ b/modules/core/src/main/java/org/apache/ignite/plugin/security/SecurityPermissionSet.java @@ -20,7 +20,6 @@ package org.apache.ignite.plugin.security; import java.io.Serializable; import java.util.Collection; import java.util.Map; -import org.apache.ignite.internal.LessNamingBean; import org.jetbrains.annotations.Nullable; /** @@ -32,7 +31,7 @@ import org.jetbrains.annotations.Nullable; * Property {@link #defaultAllowAll()} specifies whether to allow or deny * cache and task operations if they were not explicitly specified. */ -public interface SecurityPermissionSet extends Serializable, LessNamingBean { +public interface SecurityPermissionSet extends Serializable { /** * Flag indicating whether to allow or deny cache and task operations * if they were not explicitly specified. http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/plugin/security/SecuritySubject.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/security/SecuritySubject.java b/modules/core/src/main/java/org/apache/ignite/plugin/security/SecuritySubject.java index b4005ea..66e3c7c 100644 --- a/modules/core/src/main/java/org/apache/ignite/plugin/security/SecuritySubject.java +++ b/modules/core/src/main/java/org/apache/ignite/plugin/security/SecuritySubject.java @@ -20,12 +20,11 @@ package org.apache.ignite.plugin.security; import java.io.Serializable; import java.net.InetSocketAddress; import java.util.UUID; -import org.apache.ignite.internal.LessNamingBean; /** * Security subject representing authenticated node with a set of permissions. */ -public interface SecuritySubject extends Serializable, LessNamingBean { +public interface SecuritySubject extends Serializable { /** * Gets subject ID. * http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/SegmentationPolicy.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/SegmentationPolicy.java b/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/SegmentationPolicy.java index 69ec1ae..3c0f69e 100644 --- a/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/SegmentationPolicy.java +++ b/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/SegmentationPolicy.java @@ -18,6 +18,7 @@ package org.apache.ignite.plugin.segmentation; import org.apache.ignite.configuration.IgniteConfiguration; +import org.jetbrains.annotations.Nullable; /** * Policy that defines how node will react on topology segmentation. Note that default @@ -45,5 +46,18 @@ public enum SegmentationPolicy { * {@link org.apache.ignite.events.EventType#EVT_NODE_SEGMENTED} event and it is up to user to * implement logic to handle this event. */ - NOOP -} \ No newline at end of file + NOOP; + + /** Enumerated values. */ + private static final SegmentationPolicy[] VALS = values(); + + /** + * Efficiently gets enumerated value from its ordinal. + * + * @param ord Ordinal value. + * @return Enumerated value or {@code null} if ordinal out of range. + */ + @Nullable public static SegmentationPolicy fromOrdinal(int ord) { + return ord >= 0 && ord < VALS.length ? VALS[ord] : null; + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/resources/META-INF/classnames.properties ---------------------------------------------------------------------- diff --git a/modules/core/src/main/resources/META-INF/classnames.properties b/modules/core/src/main/resources/META-INF/classnames.properties index 53550ff..ebd28d8 100644 --- a/modules/core/src/main/resources/META-INF/classnames.properties +++ b/modules/core/src/main/resources/META-INF/classnames.properties @@ -37,13 +37,11 @@ org.apache.ignite.cache.CacheExistsException org.apache.ignite.cache.CacheInterceptor org.apache.ignite.cache.CacheInterceptorAdapter org.apache.ignite.cache.CacheKeyConfiguration -org.apache.ignite.cache.CacheMemoryMode org.apache.ignite.cache.CacheMode org.apache.ignite.cache.CachePartialUpdateException org.apache.ignite.cache.CachePeekMode org.apache.ignite.cache.CacheRebalanceMode org.apache.ignite.cache.CacheServerNotFoundException -org.apache.ignite.cache.CacheTypeFieldMetadata org.apache.ignite.cache.CacheWriteSynchronizationMode org.apache.ignite.cache.PartitionLossPolicy org.apache.ignite.cache.QueryEntity @@ -53,11 +51,6 @@ org.apache.ignite.cache.affinity.AffinityFunction org.apache.ignite.cache.affinity.AffinityKey org.apache.ignite.cache.affinity.AffinityKeyMapper org.apache.ignite.cache.affinity.AffinityUuid -org.apache.ignite.cache.affinity.fair.FairAffinityFunction -org.apache.ignite.cache.affinity.fair.FairAffinityFunction$1 -org.apache.ignite.cache.affinity.fair.FairAffinityFunction$FullAssignmentMap$1 -org.apache.ignite.cache.affinity.fair.FairAffinityFunction$FullAssignmentMap$2 -org.apache.ignite.cache.affinity.fair.FairAffinityFunction$PartitionSetComparator org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction$HashComparator org.apache.ignite.cache.eviction.AbstractEvictionPolicy @@ -140,6 +133,7 @@ org.apache.ignite.compute.gridify.aop.GridifyDefaultTask org.apache.ignite.configuration.CacheConfiguration org.apache.ignite.configuration.CacheConfiguration$IgniteAllNodesPredicate org.apache.ignite.configuration.CollectionConfiguration +org.apache.ignite.configuration.DataPageEvictionMode org.apache.ignite.configuration.DeploymentMode org.apache.ignite.configuration.IgniteReflectionFactory org.apache.ignite.configuration.MemoryConfiguration @@ -329,6 +323,7 @@ org.apache.ignite.internal.managers.eventstorage.GridEventStorageMessage org.apache.ignite.internal.managers.indexing.GridIndexingManager$1 org.apache.ignite.internal.managers.loadbalancer.GridLoadBalancerAdapter org.apache.ignite.internal.managers.loadbalancer.GridLoadBalancerManager$1 +org.apache.ignite.internal.marshaller.optimized.OptimizedFieldType org.apache.ignite.internal.mem.OutOfMemoryException org.apache.ignite.internal.pagemem.impl.PageMemoryNoStoreImpl$Segment org.apache.ignite.internal.pagemem.snapshot.SnapshotFinishedMessage @@ -461,19 +456,10 @@ org.apache.ignite.internal.processors.cache.GridCacheContext$4 org.apache.ignite.internal.processors.cache.GridCacheContext$5 org.apache.ignite.internal.processors.cache.GridCacheDefaultAffinityKeyMapper org.apache.ignite.internal.processors.cache.GridCacheDefaultAffinityKeyMapper$1 -org.apache.ignite.internal.processors.cache.GridCacheDefaultAffinityKeyMapper$2 org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager$3 org.apache.ignite.internal.processors.cache.GridCacheEntryInfo org.apache.ignite.internal.processors.cache.GridCacheEntryRedeployException org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException -org.apache.ignite.internal.processors.cache.GridCacheEvictionManager$2 -org.apache.ignite.internal.processors.cache.GridCacheEvictionManager$3 -org.apache.ignite.internal.processors.cache.GridCacheEvictionManager$5 -org.apache.ignite.internal.processors.cache.GridCacheEvictionManager$6 -org.apache.ignite.internal.processors.cache.GridCacheEvictionManager$7 -org.apache.ignite.internal.processors.cache.GridCacheEvictionManager$EvictionFuture$2 -org.apache.ignite.internal.processors.cache.GridCacheEvictionRequest -org.apache.ignite.internal.processors.cache.GridCacheEvictionResponse org.apache.ignite.internal.processors.cache.GridCacheExplicitLockSpan org.apache.ignite.internal.processors.cache.GridCacheExplicitLockSpan$1 org.apache.ignite.internal.processors.cache.GridCacheFilterFailedException @@ -491,9 +477,9 @@ org.apache.ignite.internal.processors.cache.GridCacheMessage org.apache.ignite.internal.processors.cache.GridCacheMultiTxFuture$1 org.apache.ignite.internal.processors.cache.GridCacheMvccCandidate org.apache.ignite.internal.processors.cache.GridCacheMvccCandidate$Mask -org.apache.ignite.internal.processors.cache.GridCacheMvccManager$4 org.apache.ignite.internal.processors.cache.GridCacheMvccManager$5 org.apache.ignite.internal.processors.cache.GridCacheMvccManager$6 +org.apache.ignite.internal.processors.cache.GridCacheMvccManager$7 org.apache.ignite.internal.processors.cache.GridCacheMvccManager$FinishLockFuture$1 org.apache.ignite.internal.processors.cache.GridCacheOperation org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$1$1 @@ -627,7 +613,6 @@ org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtGetSingleFutu org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtGetSingleFuture$2 org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtGetSingleFuture$3 org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtInvalidPartitionException -org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLocalPartition$1 org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture$1 org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture$2 org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture$3 @@ -701,6 +686,7 @@ org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomic org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$3 org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$30 org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$31 +org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$32 org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$4 org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$5 org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$6 @@ -889,15 +875,12 @@ org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$8 org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$9 org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$CacheSqlIndexMetadata org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$CacheSqlMetadata -org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$CachedResult org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$CachedResult$QueueIterator -org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$FieldsResult org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$MetadataJob org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$MetadataJob$1 org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$MetadataJob$2 org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$MetadataJob$3 org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$PeekValueExpiryAwareIterator -org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$QueryResult org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$RequestFutureMap org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$RequestFutureMap$1 org.apache.ignite.internal.processors.cache.query.GridCacheQueryMetricsAdapter @@ -939,7 +922,6 @@ org.apache.ignite.internal.processors.cache.store.GridCacheWriteBehindStore$Stor org.apache.ignite.internal.processors.cache.store.GridCacheWriteBehindStore$ValueStatus org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx$FinalizationStatus org.apache.ignite.internal.processors.cache.transactions.IgniteTxAdapter -org.apache.ignite.internal.processors.cache.transactions.IgniteTxAdapter$1 org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$1 org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$10 @@ -1107,7 +1089,6 @@ org.apache.ignite.internal.processors.datastructures.GridCacheLockImpl$Sync org.apache.ignite.internal.processors.datastructures.GridCacheLockState org.apache.ignite.internal.processors.datastructures.GridCacheQueueAdapter$AddProcessor org.apache.ignite.internal.processors.datastructures.GridCacheQueueAdapter$ClearProcessor -org.apache.ignite.internal.processors.datastructures.GridCacheQueueAdapter$CollocatedItemKey org.apache.ignite.internal.processors.datastructures.GridCacheQueueAdapter$PollProcessor org.apache.ignite.internal.processors.datastructures.GridCacheQueueAdapter$RemoveProcessor org.apache.ignite.internal.processors.datastructures.GridCacheQueueHeader @@ -1119,7 +1100,6 @@ org.apache.ignite.internal.processors.datastructures.GridCacheSemaphoreImpl$Sync org.apache.ignite.internal.processors.datastructures.GridCacheSemaphoreState org.apache.ignite.internal.processors.datastructures.GridCacheSetHeader org.apache.ignite.internal.processors.datastructures.GridCacheSetHeaderKey -org.apache.ignite.internal.processors.datastructures.GridCacheSetImpl$CollocatedItemKey org.apache.ignite.internal.processors.datastructures.GridCacheSetImpl$SumReducer org.apache.ignite.internal.processors.datastructures.GridCacheSetItemKey org.apache.ignite.internal.processors.datastructures.GridCacheSetProxy @@ -1307,7 +1287,6 @@ org.apache.ignite.internal.processors.query.GridQueryProcessor$6 org.apache.ignite.internal.processors.query.GridQueryProcessor$7 org.apache.ignite.internal.processors.query.GridQueryProcessor$8 org.apache.ignite.internal.processors.query.IgniteSQLException -org.apache.ignite.internal.processors.query.QueryUtils$IndexType org.apache.ignite.internal.processors.query.h2.twostep.messages.GridQueryCancelRequest org.apache.ignite.internal.processors.query.h2.twostep.messages.GridQueryFailResponse org.apache.ignite.internal.processors.query.h2.twostep.messages.GridQueryNextPageRequest @@ -1415,8 +1394,6 @@ org.apache.ignite.internal.transactions.IgniteTxOptimisticCheckedException org.apache.ignite.internal.transactions.IgniteTxRollbackCheckedException org.apache.ignite.internal.transactions.IgniteTxTimeoutCheckedException org.apache.ignite.internal.util.F0$1 -org.apache.ignite.internal.util.F0$10 -org.apache.ignite.internal.util.F0$11 org.apache.ignite.internal.util.F0$2 org.apache.ignite.internal.util.F0$3 org.apache.ignite.internal.util.F0$4 @@ -1515,7 +1492,6 @@ org.apache.ignite.internal.util.future.GridEmbeddedFuture$AL1 org.apache.ignite.internal.util.future.GridEmbeddedFuture$AL2 org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener1 org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener2 -org.apache.ignite.internal.util.future.GridFutureAdapter$ArrayListener org.apache.ignite.internal.util.future.GridFutureChainListener org.apache.ignite.internal.util.future.IgniteFutureImpl$1 org.apache.ignite.internal.util.future.IgniteFutureImpl$InternalFutureListener @@ -1537,78 +1513,6 @@ org.apache.ignite.internal.util.lang.GridAbsClosure org.apache.ignite.internal.util.lang.GridAbsClosureX org.apache.ignite.internal.util.lang.GridCloseableIterator org.apache.ignite.internal.util.lang.GridClosureException -org.apache.ignite.internal.util.lang.GridFunc$1 -org.apache.ignite.internal.util.lang.GridFunc$10 -org.apache.ignite.internal.util.lang.GridFunc$11 -org.apache.ignite.internal.util.lang.GridFunc$12 -org.apache.ignite.internal.util.lang.GridFunc$13 -org.apache.ignite.internal.util.lang.GridFunc$14 -org.apache.ignite.internal.util.lang.GridFunc$15 -org.apache.ignite.internal.util.lang.GridFunc$16 -org.apache.ignite.internal.util.lang.GridFunc$17 -org.apache.ignite.internal.util.lang.GridFunc$18 -org.apache.ignite.internal.util.lang.GridFunc$19 -org.apache.ignite.internal.util.lang.GridFunc$2 -org.apache.ignite.internal.util.lang.GridFunc$20 -org.apache.ignite.internal.util.lang.GridFunc$21 -org.apache.ignite.internal.util.lang.GridFunc$22 -org.apache.ignite.internal.util.lang.GridFunc$23 -org.apache.ignite.internal.util.lang.GridFunc$24 -org.apache.ignite.internal.util.lang.GridFunc$25 -org.apache.ignite.internal.util.lang.GridFunc$26 -org.apache.ignite.internal.util.lang.GridFunc$27 -org.apache.ignite.internal.util.lang.GridFunc$28 -org.apache.ignite.internal.util.lang.GridFunc$29 -org.apache.ignite.internal.util.lang.GridFunc$3 -org.apache.ignite.internal.util.lang.GridFunc$30 -org.apache.ignite.internal.util.lang.GridFunc$31 -org.apache.ignite.internal.util.lang.GridFunc$32 -org.apache.ignite.internal.util.lang.GridFunc$32$1 -org.apache.ignite.internal.util.lang.GridFunc$33 -org.apache.ignite.internal.util.lang.GridFunc$33$1 -org.apache.ignite.internal.util.lang.GridFunc$35 -org.apache.ignite.internal.util.lang.GridFunc$36 -org.apache.ignite.internal.util.lang.GridFunc$37 -org.apache.ignite.internal.util.lang.GridFunc$38 -org.apache.ignite.internal.util.lang.GridFunc$39 -org.apache.ignite.internal.util.lang.GridFunc$4 -org.apache.ignite.internal.util.lang.GridFunc$40 -org.apache.ignite.internal.util.lang.GridFunc$41 -org.apache.ignite.internal.util.lang.GridFunc$42 -org.apache.ignite.internal.util.lang.GridFunc$43 -org.apache.ignite.internal.util.lang.GridFunc$44 -org.apache.ignite.internal.util.lang.GridFunc$45 -org.apache.ignite.internal.util.lang.GridFunc$46 -org.apache.ignite.internal.util.lang.GridFunc$47 -org.apache.ignite.internal.util.lang.GridFunc$48 -org.apache.ignite.internal.util.lang.GridFunc$49 -org.apache.ignite.internal.util.lang.GridFunc$49$1 -org.apache.ignite.internal.util.lang.GridFunc$49$2 -org.apache.ignite.internal.util.lang.GridFunc$5 -org.apache.ignite.internal.util.lang.GridFunc$50 -org.apache.ignite.internal.util.lang.GridFunc$50$1 -org.apache.ignite.internal.util.lang.GridFunc$50$2 -org.apache.ignite.internal.util.lang.GridFunc$51 -org.apache.ignite.internal.util.lang.GridFunc$51$1 -org.apache.ignite.internal.util.lang.GridFunc$51$2 -org.apache.ignite.internal.util.lang.GridFunc$52 -org.apache.ignite.internal.util.lang.GridFunc$52$1 -org.apache.ignite.internal.util.lang.GridFunc$52$2 -org.apache.ignite.internal.util.lang.GridFunc$53 -org.apache.ignite.internal.util.lang.GridFunc$54 -org.apache.ignite.internal.util.lang.GridFunc$55 -org.apache.ignite.internal.util.lang.GridFunc$56 -org.apache.ignite.internal.util.lang.GridFunc$57 -org.apache.ignite.internal.util.lang.GridFunc$58 -org.apache.ignite.internal.util.lang.GridFunc$59 -org.apache.ignite.internal.util.lang.GridFunc$6 -org.apache.ignite.internal.util.lang.GridFunc$60 -org.apache.ignite.internal.util.lang.GridFunc$61 -org.apache.ignite.internal.util.lang.GridFunc$62 -org.apache.ignite.internal.util.lang.GridFunc$63 -org.apache.ignite.internal.util.lang.GridFunc$7 -org.apache.ignite.internal.util.lang.GridFunc$8 -org.apache.ignite.internal.util.lang.GridFunc$9 org.apache.ignite.internal.util.lang.GridIterable org.apache.ignite.internal.util.lang.GridIterableAdapter org.apache.ignite.internal.util.lang.GridIterableAdapter$IteratorWrapper @@ -1639,9 +1543,57 @@ org.apache.ignite.internal.util.lang.IgniteReducer3 org.apache.ignite.internal.util.lang.IgniteReducer3X org.apache.ignite.internal.util.lang.IgniteReducerX org.apache.ignite.internal.util.lang.IgniteSingletonIterator +org.apache.ignite.internal.util.lang.gridfunc.AlwaysFalsePredicate +org.apache.ignite.internal.util.lang.gridfunc.AlwaysTruePredicate +org.apache.ignite.internal.util.lang.gridfunc.AlwaysTrueReducer +org.apache.ignite.internal.util.lang.gridfunc.AtomicIntegerFactoryCallable +org.apache.ignite.internal.util.lang.gridfunc.CacheEntryGetValueClosure +org.apache.ignite.internal.util.lang.gridfunc.CacheEntryHasPeekPredicate +org.apache.ignite.internal.util.lang.gridfunc.ClusterNodeGetIdClosure +org.apache.ignite.internal.util.lang.gridfunc.ConcurrentDequeFactoryCallable +org.apache.ignite.internal.util.lang.gridfunc.ConcurrentHashSetFactoryCallable +org.apache.ignite.internal.util.lang.gridfunc.ConcurrentMapFactoryCallable +org.apache.ignite.internal.util.lang.gridfunc.ContainsNodeIdsPredicate +org.apache.ignite.internal.util.lang.gridfunc.ContainsPredicate +org.apache.ignite.internal.util.lang.gridfunc.EntryByKeyEvaluationPredicate +org.apache.ignite.internal.util.lang.gridfunc.EqualsClusterNodeIdPredicate +org.apache.ignite.internal.util.lang.gridfunc.EqualsUuidPredicate +org.apache.ignite.internal.util.lang.gridfunc.FlatCollectionWrapper +org.apache.ignite.internal.util.lang.gridfunc.FlatIterator +org.apache.ignite.internal.util.lang.gridfunc.HasEqualIdPredicate +org.apache.ignite.internal.util.lang.gridfunc.HasNotEqualIdPredicate +org.apache.ignite.internal.util.lang.gridfunc.IdentityClosure +org.apache.ignite.internal.util.lang.gridfunc.IntSumReducer +org.apache.ignite.internal.util.lang.gridfunc.IsAllPredicate +org.apache.ignite.internal.util.lang.gridfunc.IsNotAllPredicate +org.apache.ignite.internal.util.lang.gridfunc.IsNotNullPredicate +org.apache.ignite.internal.util.lang.gridfunc.LongSumReducer +org.apache.ignite.internal.util.lang.gridfunc.MapFactoryCallable +org.apache.ignite.internal.util.lang.gridfunc.MultipleIterator +org.apache.ignite.internal.util.lang.gridfunc.NoOpClosure +org.apache.ignite.internal.util.lang.gridfunc.NotContainsPredicate +org.apache.ignite.internal.util.lang.gridfunc.NotEqualPredicate +org.apache.ignite.internal.util.lang.gridfunc.PredicateCollectionView +org.apache.ignite.internal.util.lang.gridfunc.PredicateMapView +org.apache.ignite.internal.util.lang.gridfunc.PredicateMapView$1 +org.apache.ignite.internal.util.lang.gridfunc.PredicateSetView +org.apache.ignite.internal.util.lang.gridfunc.PredicateSetView$1 +org.apache.ignite.internal.util.lang.gridfunc.ReadOnlyCollectionView +org.apache.ignite.internal.util.lang.gridfunc.ReadOnlyCollectionView$1 +org.apache.ignite.internal.util.lang.gridfunc.ReadOnlyCollectionView2X +org.apache.ignite.internal.util.lang.gridfunc.ReadOnlyCollectionView2X$1 +org.apache.ignite.internal.util.lang.gridfunc.RunnableWrapperClosure +org.apache.ignite.internal.util.lang.gridfunc.SetFactoryCallable +org.apache.ignite.internal.util.lang.gridfunc.StringConcatReducer +org.apache.ignite.internal.util.lang.gridfunc.ToStringClosure +org.apache.ignite.internal.util.lang.gridfunc.TransformCollectionView +org.apache.ignite.internal.util.lang.gridfunc.TransformFilteringIterator +org.apache.ignite.internal.util.lang.gridfunc.TransformMapView +org.apache.ignite.internal.util.lang.gridfunc.TransformMapView$1 +org.apache.ignite.internal.util.lang.gridfunc.TransformMapView2 +org.apache.ignite.internal.util.lang.gridfunc.TransformMapView2$1 org.apache.ignite.internal.util.nio.GridNioEmbeddedFuture$1 org.apache.ignite.internal.util.nio.GridNioException -org.apache.ignite.internal.util.nio.GridNioFutureImpl org.apache.ignite.internal.util.nio.GridNioMessageTracker org.apache.ignite.internal.util.nio.GridNioServer$NioOperation org.apache.ignite.internal.util.nio.GridNioServer$RandomBalancer @@ -1698,32 +1650,42 @@ org.apache.ignite.internal.util.typedef.T4 org.apache.ignite.internal.util.typedef.T5 org.apache.ignite.internal.util.typedef.T6 org.apache.ignite.internal.util.typedef.internal.SB +org.apache.ignite.internal.visor.VisorDataTransferObject +org.apache.ignite.internal.visor.VisorEither org.apache.ignite.internal.visor.VisorJob org.apache.ignite.internal.visor.VisorMultiNodeTask org.apache.ignite.internal.visor.VisorOneNodeTask org.apache.ignite.internal.visor.VisorTaskArgument +org.apache.ignite.internal.visor.binary.VisorBinaryMetadata +org.apache.ignite.internal.visor.binary.VisorBinaryMetadataCollectorTask +org.apache.ignite.internal.visor.binary.VisorBinaryMetadataCollectorTask$VisorBinaryCollectMetadataJob +org.apache.ignite.internal.visor.binary.VisorBinaryMetadataCollectorTaskResult +org.apache.ignite.internal.visor.binary.VisorBinaryMetadataField org.apache.ignite.internal.visor.cache.VisorCache org.apache.ignite.internal.visor.cache.VisorCacheAffinityConfiguration org.apache.ignite.internal.visor.cache.VisorCacheAffinityNodeTask org.apache.ignite.internal.visor.cache.VisorCacheAffinityNodeTask$VisorCacheAffinityNodeJob +org.apache.ignite.internal.visor.cache.VisorCacheAffinityNodeTaskArg org.apache.ignite.internal.visor.cache.VisorCacheAggregatedMetrics org.apache.ignite.internal.visor.cache.VisorCacheClearTask -org.apache.ignite.internal.visor.cache.VisorCacheClearTask$VisorCacheClearCallable org.apache.ignite.internal.visor.cache.VisorCacheClearTask$VisorCacheClearJob org.apache.ignite.internal.visor.cache.VisorCacheClearTask$VisorCacheClearJob$1 -org.apache.ignite.internal.visor.cache.VisorCacheClearTask$VisorCacheSizeCallable +org.apache.ignite.internal.visor.cache.VisorCacheClearTaskResult org.apache.ignite.internal.visor.cache.VisorCacheConfiguration org.apache.ignite.internal.visor.cache.VisorCacheConfigurationCollectorJob org.apache.ignite.internal.visor.cache.VisorCacheConfigurationCollectorTask -org.apache.ignite.internal.visor.cache.VisorCacheDefaultConfiguration org.apache.ignite.internal.visor.cache.VisorCacheEvictionConfiguration +org.apache.ignite.internal.visor.cache.VisorCacheJdbcType +org.apache.ignite.internal.visor.cache.VisorCacheJdbcTypeField org.apache.ignite.internal.visor.cache.VisorCacheLoadTask org.apache.ignite.internal.visor.cache.VisorCacheLoadTask$VisorCachesLoadJob +org.apache.ignite.internal.visor.cache.VisorCacheLoadTaskArg org.apache.ignite.internal.visor.cache.VisorCacheMetadataTask org.apache.ignite.internal.visor.cache.VisorCacheMetadataTask$VisorCacheMetadataJob org.apache.ignite.internal.visor.cache.VisorCacheMetrics org.apache.ignite.internal.visor.cache.VisorCacheMetricsCollectorTask org.apache.ignite.internal.visor.cache.VisorCacheMetricsCollectorTask$VisorCacheMetricsCollectorJob +org.apache.ignite.internal.visor.cache.VisorCacheMetricsCollectorTaskArg org.apache.ignite.internal.visor.cache.VisorCacheNearConfiguration org.apache.ignite.internal.visor.cache.VisorCacheNodesTask org.apache.ignite.internal.visor.cache.VisorCacheNodesTask$VisorCacheNodesJob @@ -1731,39 +1693,33 @@ org.apache.ignite.internal.visor.cache.VisorCachePartition org.apache.ignite.internal.visor.cache.VisorCachePartitions org.apache.ignite.internal.visor.cache.VisorCachePartitionsTask org.apache.ignite.internal.visor.cache.VisorCachePartitionsTask$VisorCachePartitionsJob -org.apache.ignite.internal.visor.cache.VisorCacheQueryConfiguration -org.apache.ignite.internal.visor.cache.VisorCacheQueryDetailMetrics -org.apache.ignite.internal.visor.cache.VisorCacheQueryDetailMetricsCollectorTask -org.apache.ignite.internal.visor.cache.VisorCacheQueryDetailMetricsCollectorTask$VisorCacheQueryDetailMetricsCollectorJob -org.apache.ignite.internal.visor.cache.VisorCacheQueryMetrics org.apache.ignite.internal.visor.cache.VisorCacheRebalanceConfiguration org.apache.ignite.internal.visor.cache.VisorCacheRebalanceTask org.apache.ignite.internal.visor.cache.VisorCacheRebalanceTask$VisorCachesRebalanceJob org.apache.ignite.internal.visor.cache.VisorCacheResetMetricsTask org.apache.ignite.internal.visor.cache.VisorCacheResetMetricsTask$VisorCacheResetMetricsJob -org.apache.ignite.internal.visor.cache.VisorCacheResetQueryDetailMetricsTask -org.apache.ignite.internal.visor.cache.VisorCacheResetQueryDetailMetricsTask$VisorCacheResetQueryDetailMetricsJob -org.apache.ignite.internal.visor.cache.VisorCacheResetQueryMetricsTask -org.apache.ignite.internal.visor.cache.VisorCacheResetQueryMetricsTask$VisorCacheResetQueryMetricsJob +org.apache.ignite.internal.visor.cache.VisorCacheSqlIndexMetadata +org.apache.ignite.internal.visor.cache.VisorCacheSqlMetadata +org.apache.ignite.internal.visor.cache.VisorCacheStartArg org.apache.ignite.internal.visor.cache.VisorCacheStartTask -org.apache.ignite.internal.visor.cache.VisorCacheStartTask$VisorCacheStartArg org.apache.ignite.internal.visor.cache.VisorCacheStartTask$VisorCacheStartJob org.apache.ignite.internal.visor.cache.VisorCacheStopTask org.apache.ignite.internal.visor.cache.VisorCacheStopTask$VisorCacheStopJob org.apache.ignite.internal.visor.cache.VisorCacheStoreConfiguration -org.apache.ignite.internal.visor.cache.VisorCacheTypeFieldMetadata -org.apache.ignite.internal.visor.cache.VisorCacheTypeMetadata +org.apache.ignite.internal.visor.cache.VisorPartitionMap org.apache.ignite.internal.visor.compute.VisorComputeCancelSessionsTask org.apache.ignite.internal.visor.compute.VisorComputeCancelSessionsTask$VisorComputeCancelSessionsJob org.apache.ignite.internal.visor.compute.VisorComputeResetMetricsTask org.apache.ignite.internal.visor.compute.VisorComputeResetMetricsTask$VisorComputeResetMetricsJob org.apache.ignite.internal.visor.compute.VisorComputeToggleMonitoringTask org.apache.ignite.internal.visor.compute.VisorComputeToggleMonitoringTask$VisorComputeToggleMonitoringJob +org.apache.ignite.internal.visor.compute.VisorComputeToggleMonitoringTaskArg org.apache.ignite.internal.visor.compute.VisorGatewayTask org.apache.ignite.internal.visor.compute.VisorGatewayTask$VisorGatewayJob org.apache.ignite.internal.visor.compute.VisorGatewayTask$VisorGatewayJob$1 org.apache.ignite.internal.visor.debug.VisorThreadDumpTask org.apache.ignite.internal.visor.debug.VisorThreadDumpTask$VisorDumpThreadJob +org.apache.ignite.internal.visor.debug.VisorThreadDumpTaskResult org.apache.ignite.internal.visor.debug.VisorThreadInfo org.apache.ignite.internal.visor.debug.VisorThreadLockInfo org.apache.ignite.internal.visor.debug.VisorThreadMonitorInfo @@ -1774,11 +1730,12 @@ org.apache.ignite.internal.visor.event.VisorGridEventsLost org.apache.ignite.internal.visor.event.VisorGridJobEvent org.apache.ignite.internal.visor.event.VisorGridTaskEvent org.apache.ignite.internal.visor.file.VisorFileBlock +org.apache.ignite.internal.visor.file.VisorFileBlockArg org.apache.ignite.internal.visor.file.VisorFileBlockTask -org.apache.ignite.internal.visor.file.VisorFileBlockTask$VisorFileBlockArg org.apache.ignite.internal.visor.file.VisorFileBlockTask$VisorFileBlockJob org.apache.ignite.internal.visor.file.VisorLatestTextFilesTask org.apache.ignite.internal.visor.file.VisorLatestTextFilesTask$VisorLatestTextFilesJob +org.apache.ignite.internal.visor.file.VisorLatestTextFilesTaskArg org.apache.ignite.internal.visor.igfs.VisorIgfs org.apache.ignite.internal.visor.igfs.VisorIgfsEndpoint org.apache.ignite.internal.visor.igfs.VisorIgfsFormatTask @@ -1786,6 +1743,7 @@ org.apache.ignite.internal.visor.igfs.VisorIgfsFormatTask$VisorIgfsFormatJob org.apache.ignite.internal.visor.igfs.VisorIgfsMetrics org.apache.ignite.internal.visor.igfs.VisorIgfsProfilerClearTask org.apache.ignite.internal.visor.igfs.VisorIgfsProfilerClearTask$VisorIgfsProfilerClearJob +org.apache.ignite.internal.visor.igfs.VisorIgfsProfilerClearTaskResult org.apache.ignite.internal.visor.igfs.VisorIgfsProfilerEntry org.apache.ignite.internal.visor.igfs.VisorIgfsProfilerTask org.apache.ignite.internal.visor.igfs.VisorIgfsProfilerTask$VisorIgfsProfilerJob @@ -1794,11 +1752,13 @@ org.apache.ignite.internal.visor.igfs.VisorIgfsResetMetricsTask org.apache.ignite.internal.visor.igfs.VisorIgfsResetMetricsTask$VisorIgfsResetMetricsJob org.apache.ignite.internal.visor.igfs.VisorIgfsSamplingStateTask org.apache.ignite.internal.visor.igfs.VisorIgfsSamplingStateTask$VisorIgfsSamplingStateJob +org.apache.ignite.internal.visor.igfs.VisorIgfsSamplingStateTaskArg org.apache.ignite.internal.visor.log.VisorLogFile +org.apache.ignite.internal.visor.log.VisorLogSearchArg org.apache.ignite.internal.visor.log.VisorLogSearchResult org.apache.ignite.internal.visor.log.VisorLogSearchTask -org.apache.ignite.internal.visor.log.VisorLogSearchTask$VisorLogSearchArg org.apache.ignite.internal.visor.log.VisorLogSearchTask$VisorLogSearchJob +org.apache.ignite.internal.visor.log.VisorLogSearchTaskResult org.apache.ignite.internal.visor.misc.VisorAckTask org.apache.ignite.internal.visor.misc.VisorAckTask$VisorAckJob org.apache.ignite.internal.visor.misc.VisorChangeGridActiveStateTask @@ -1828,38 +1788,58 @@ org.apache.ignite.internal.visor.node.VisorNodeDataCollectorTaskResult org.apache.ignite.internal.visor.node.VisorNodeEventsCollectorTask org.apache.ignite.internal.visor.node.VisorNodeEventsCollectorTask$VisorNodeEventsCollectorJob org.apache.ignite.internal.visor.node.VisorNodeEventsCollectorTask$VisorNodeEventsCollectorJob$1 -org.apache.ignite.internal.visor.node.VisorNodeEventsCollectorTask$VisorNodeEventsCollectorTaskArg +org.apache.ignite.internal.visor.node.VisorNodeEventsCollectorTaskArg org.apache.ignite.internal.visor.node.VisorNodeGcTask org.apache.ignite.internal.visor.node.VisorNodeGcTask$VisorNodeGcJob +org.apache.ignite.internal.visor.node.VisorNodeGcTaskResult org.apache.ignite.internal.visor.node.VisorNodePingTask org.apache.ignite.internal.visor.node.VisorNodePingTask$VisorNodePingJob +org.apache.ignite.internal.visor.node.VisorNodePingTaskResult org.apache.ignite.internal.visor.node.VisorNodeRestartTask org.apache.ignite.internal.visor.node.VisorNodeRestartTask$VisorNodesRestartJob org.apache.ignite.internal.visor.node.VisorNodeStopTask org.apache.ignite.internal.visor.node.VisorNodeStopTask$VisorNodesStopJob +org.apache.ignite.internal.visor.node.VisorNodeSuppressedErrors org.apache.ignite.internal.visor.node.VisorNodeSuppressedErrorsTask org.apache.ignite.internal.visor.node.VisorNodeSuppressedErrorsTask$VisorNodeSuppressedErrorsJob org.apache.ignite.internal.visor.node.VisorPeerToPeerConfiguration org.apache.ignite.internal.visor.node.VisorRestConfiguration org.apache.ignite.internal.visor.node.VisorSegmentationConfiguration +org.apache.ignite.internal.visor.node.VisorSpiDescription org.apache.ignite.internal.visor.node.VisorSpisConfiguration +org.apache.ignite.internal.visor.node.VisorSuppressedError org.apache.ignite.internal.visor.node.VisorTransactionConfiguration -org.apache.ignite.internal.visor.query.VisorCancelQueriesTask -org.apache.ignite.internal.visor.query.VisorCancelQueriesTask$VisorCancelQueriesJob -org.apache.ignite.internal.visor.query.VisorCollectRunningQueriesTask -org.apache.ignite.internal.visor.query.VisorCollectRunningQueriesTask$VisorCollectRunningQueriesJob org.apache.ignite.internal.visor.query.VisorQueryArg +org.apache.ignite.internal.visor.query.VisorQueryCancelTask +org.apache.ignite.internal.visor.query.VisorQueryCancelTask$VisorCancelQueriesJob org.apache.ignite.internal.visor.query.VisorQueryCleanupTask org.apache.ignite.internal.visor.query.VisorQueryCleanupTask$VisorQueryCleanupJob +org.apache.ignite.internal.visor.query.VisorQueryConfiguration +org.apache.ignite.internal.visor.query.VisorQueryDetailMetrics +org.apache.ignite.internal.visor.query.VisorQueryDetailMetricsCollectorTask +org.apache.ignite.internal.visor.query.VisorQueryDetailMetricsCollectorTask$VisorCacheQueryDetailMetricsCollectorJob +org.apache.ignite.internal.visor.query.VisorQueryEntity org.apache.ignite.internal.visor.query.VisorQueryField -org.apache.ignite.internal.visor.query.VisorQueryJob +org.apache.ignite.internal.visor.query.VisorQueryIndex +org.apache.ignite.internal.visor.query.VisorQueryIndexField +org.apache.ignite.internal.visor.query.VisorQueryMetrics org.apache.ignite.internal.visor.query.VisorQueryNextPageTask org.apache.ignite.internal.visor.query.VisorQueryNextPageTask$VisorQueryNextPageJob +org.apache.ignite.internal.visor.query.VisorQueryNextPageTaskArg +org.apache.ignite.internal.visor.query.VisorQueryResetDetailMetricsTask +org.apache.ignite.internal.visor.query.VisorQueryResetDetailMetricsTask$VisorCacheResetQueryDetailMetricsJob +org.apache.ignite.internal.visor.query.VisorQueryResetMetricsTask +org.apache.ignite.internal.visor.query.VisorQueryResetMetricsTask$VisorQueryResetMetricsJob org.apache.ignite.internal.visor.query.VisorQueryResult -org.apache.ignite.internal.visor.query.VisorQueryResultEx -org.apache.ignite.internal.visor.query.VisorQueryScanSubstringFilter +org.apache.ignite.internal.visor.query.VisorQueryScanRegexFilter org.apache.ignite.internal.visor.query.VisorQueryTask +org.apache.ignite.internal.visor.query.VisorQueryTask$VisorQueryJob +org.apache.ignite.internal.visor.query.VisorRunningQueriesCollectorTask +org.apache.ignite.internal.visor.query.VisorRunningQueriesCollectorTask$VisorCollectRunningQueriesJob org.apache.ignite.internal.visor.query.VisorRunningQuery +org.apache.ignite.internal.visor.query.VisorScanQueryArg +org.apache.ignite.internal.visor.query.VisorScanQueryTask +org.apache.ignite.internal.visor.query.VisorScanQueryTask$VisorScanQueryJob org.apache.ignite.internal.visor.service.VisorCancelServiceTask org.apache.ignite.internal.visor.service.VisorCancelServiceTask$VisorCancelServiceJob org.apache.ignite.internal.visor.service.VisorServiceDescriptor @@ -1888,7 +1868,6 @@ org.apache.ignite.lang.IgniteRunnable org.apache.ignite.lang.IgniteUuid org.apache.ignite.lifecycle.LifecycleEventType org.apache.ignite.marshaller.jdk.JdkMarshallerDummySerializable -org.apache.ignite.internal.marshaller.optimized.OptimizedFieldType org.apache.ignite.messaging.MessagingListenActor org.apache.ignite.platform.dotnet.PlatformDotNetAffinityFunction org.apache.ignite.platform.dotnet.PlatformDotNetCacheStoreFactory @@ -1923,8 +1902,8 @@ org.apache.ignite.spi.checkpoint.sharedfs.SharedFsCheckpointData org.apache.ignite.spi.collision.jobstealing.JobStealingRequest org.apache.ignite.spi.collision.priorityqueue.PriorityQueueCollisionSpi$PriorityGridCollisionJobContextComparator org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$1 +org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$10 org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$11 -org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$12 org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$2$ConnectClosure org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$2$ConnectClosure$1 org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$2$ConnectClosureNew @@ -1983,6 +1962,7 @@ org.apache.ignite.stream.StreamVisitor org.apache.ignite.stream.StreamVisitor$1 org.apache.ignite.transactions.TransactionConcurrency org.apache.ignite.transactions.TransactionDeadlockException +org.apache.ignite.transactions.TransactionException org.apache.ignite.transactions.TransactionHeuristicException org.apache.ignite.transactions.TransactionIsolation org.apache.ignite.transactions.TransactionMetrics http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/hadoop/src/main/resources/META-INF/classnames.properties ---------------------------------------------------------------------- diff --git a/modules/hadoop/src/main/resources/META-INF/classnames.properties b/modules/hadoop/src/main/resources/META-INF/classnames.properties index d8848ac..051094d 100644 --- a/modules/hadoop/src/main/resources/META-INF/classnames.properties +++ b/modules/hadoop/src/main/resources/META-INF/classnames.properties @@ -27,14 +27,6 @@ org.apache.ignite.hadoop.util.KerberosUserNameMapper$State org.apache.ignite.hadoop.util.UserNameMapper org.apache.ignite.internal.processors.hadoop.HadoopAttributes org.apache.ignite.internal.processors.hadoop.HadoopExternalSplit -org.apache.ignite.internal.processors.hadoop.HadoopFileBlock -org.apache.ignite.hadoop.HadoopInputSplit -org.apache.ignite.internal.processors.hadoop.HadoopJobId -org.apache.ignite.internal.processors.hadoop.HadoopJobInfo -org.apache.ignite.internal.processors.hadoop.HadoopJobPhase -org.apache.ignite.internal.processors.hadoop.HadoopJobProperty -org.apache.ignite.internal.processors.hadoop.HadoopJobStatus -org.apache.ignite.hadoop.HadoopMapReducePlan org.apache.ignite.internal.processors.hadoop.HadoopSplitWrapper org.apache.ignite.internal.processors.hadoop.HadoopTaskCancelledException org.apache.ignite.internal.processors.hadoop.counter.HadoopCounterAdapter http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyObjectMapper.java ---------------------------------------------------------------------- diff --git a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyObjectMapper.java b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyObjectMapper.java index 6289bdb..44dd09c 100644 --- a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyObjectMapper.java +++ b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyObjectMapper.java @@ -29,19 +29,11 @@ import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.DefaultSerializerProvider; import com.fasterxml.jackson.databind.ser.SerializerFactory; import java.io.IOException; -import java.lang.reflect.Method; import java.sql.SQLException; import java.text.DateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashMap; import java.util.Locale; -import java.util.Map; -import java.util.concurrent.locks.ReadWriteLock; -import java.util.concurrent.locks.ReentrantReadWriteLock; -import org.apache.ignite.internal.LessNamingBean; -import org.apache.ignite.internal.visor.cache.VisorCache; +import org.apache.ignite.internal.processors.cache.query.GridCacheSqlIndexMetadata; +import org.apache.ignite.internal.processors.cache.query.GridCacheSqlMetadata; import org.apache.ignite.internal.visor.util.VisorExceptionWrapper; import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.lang.IgniteUuid; @@ -63,7 +55,8 @@ public class GridJettyObjectMapper extends ObjectMapper { module.addSerializer(Throwable.class, THROWABLE_SERIALIZER); module.addSerializer(IgniteBiTuple.class, IGNITE_TUPLE_SERIALIZER); module.addSerializer(IgniteUuid.class, IGNITE_UUID_SERIALIZER); - module.addSerializer(LessNamingBean.class, LESS_NAMING_SERIALIZER); + module.addSerializer(GridCacheSqlMetadata.class, IGNITE_SQL_METADATA_SERIALIZER); + module.addSerializer(GridCacheSqlIndexMetadata.class, IGNITE_SQL_INDEX_METADATA_SERIALIZER); registerModule(module); } @@ -186,89 +179,35 @@ public class GridJettyObjectMapper extends ObjectMapper { } }; - /** - * Custom serializer for Visor classes with non JavaBeans getters. - */ - private static final JsonSerializer<Object> LESS_NAMING_SERIALIZER = new JsonSerializer<Object>() { - /** Methods to exclude. */ - private final Collection<String> exclMtds = Arrays.asList("toString", "hashCode", "clone", "getClass"); + /** Custom serializer for {@link GridCacheSqlMetadata} */ + private static final JsonSerializer<GridCacheSqlMetadata> IGNITE_SQL_METADATA_SERIALIZER = new JsonSerializer<GridCacheSqlMetadata>() { + /** {@inheritDoc} */ + @Override public void serialize(GridCacheSqlMetadata m, JsonGenerator gen, SerializerProvider ser) throws IOException { + gen.writeStartObject(); - /** */ - private final Map<Class<?>, Collection<Method>> clsCache = new HashMap<>(); + gen.writeStringField("cacheName", m.cacheName()); + gen.writeObjectField("types", m.types()); + gen.writeObjectField("keyClasses", m.keyClasses()); + gen.writeObjectField("valClasses", m.valClasses()); + gen.writeObjectField("fields", m.fields()); + gen.writeObjectField("indexes", m.indexes()); - /** */ - private final ReadWriteLock rwLock = new ReentrantReadWriteLock(); + gen.writeEndObject(); + } + }; + /** Custom serializer for {@link GridCacheSqlIndexMetadata} */ + private static final JsonSerializer<GridCacheSqlIndexMetadata> IGNITE_SQL_INDEX_METADATA_SERIALIZER = new JsonSerializer<GridCacheSqlIndexMetadata>() { /** {@inheritDoc} */ - @Override public void serialize(Object bean, JsonGenerator gen, SerializerProvider ser) throws IOException { - if (bean != null) { - gen.writeStartObject(); - - Class<?> cls = bean.getClass(); - - Collection<Method> methods; - - // Get descriptor from cache. - rwLock.readLock().lock(); - - try { - methods = clsCache.get(cls); - } - finally { - rwLock.readLock().unlock(); - } - - // If missing in cache - build descriptor - if (methods == null) { - Method[] publicMtds = cls.getMethods(); - - methods = new ArrayList<>(publicMtds.length); - - for (Method mtd : publicMtds) { - Class retType = mtd.getReturnType(); - - String mtdName = mtd.getName(); - - if (mtd.getParameterTypes().length != 0 || - retType == void.class || retType == cls || - exclMtds.contains(mtdName) || - (VisorCache.class.isAssignableFrom(retType) && "history".equals(mtdName))) - continue; - - mtd.setAccessible(true); - - methods.add(mtd); - } - - // Allow multiple puts for the same class - they will simply override. - rwLock.writeLock().lock(); - - try { - clsCache.put(cls, methods); - } - finally { - rwLock.writeLock().unlock(); - } - } - - // Extract fields values using descriptor and build JSONObject. - for (Method mtd : methods) { - try { - Object prop = mtd.invoke(bean); - - if (prop != null) - gen.writeObjectField(mtd.getName(), prop); - } - catch (IOException ioe) { - throw ioe; - } - catch (Exception e) { - throw new IOException(e); - } - } - - gen.writeEndObject(); - } + @Override public void serialize(GridCacheSqlIndexMetadata idx, JsonGenerator gen, SerializerProvider ser) throws IOException { + gen.writeStartObject(); + + gen.writeStringField("name", idx.name()); + gen.writeObjectField("fields", idx.fields()); + gen.writeObjectField("descendings", idx.descendings()); + gen.writeBooleanField("unique", idx.unique()); + + gen.writeEndObject(); } }; } http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/cache/VisorCacheClearCommand.scala ---------------------------------------------------------------------- diff --git a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/cache/VisorCacheClearCommand.scala b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/cache/VisorCacheClearCommand.scala index 67aaa14..517028a 100644 --- a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/cache/VisorCacheClearCommand.scala +++ b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/cache/VisorCacheClearCommand.scala @@ -105,7 +105,7 @@ class VisorCacheClearCommand { val res = executeOne(nid, classOf[VisorCacheClearTask], cacheName) - t += (nodeId8(nid), res.get1(), res.get2()) + t += (nodeId8(nid), res.getSizeBefore, res.getSizeAfter) println("Cleared cache with name: " + escapeName(cacheName))
