Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 288AF200AC8 for ; Tue, 7 Jun 2016 21:06:41 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 270B4160A57; Tue, 7 Jun 2016 19:06:41 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 9D00D160968 for ; Tue, 7 Jun 2016 21:06:38 +0200 (CEST) Received: (qmail 27746 invoked by uid 500); 7 Jun 2016 19:06:37 -0000 Mailing-List: contact commits-help@geode.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@geode.incubator.apache.org Delivered-To: mailing list commits@geode.incubator.apache.org Received: (qmail 27737 invoked by uid 99); 7 Jun 2016 19:06:37 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 07 Jun 2016 19:06:37 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 3E1E6C05F8 for ; Tue, 7 Jun 2016 19:06:37 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.646 X-Spam-Level: X-Spam-Status: No, score=-4.646 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.426] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id zaQyeIKkWFhG for ; Tue, 7 Jun 2016 19:06:29 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with SMTP id 4099B60D53 for ; Tue, 7 Jun 2016 19:06:23 +0000 (UTC) Received: (qmail 21854 invoked by uid 99); 7 Jun 2016 19:06:21 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 07 Jun 2016 19:06:21 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 4A8B9E0571; Tue, 7 Jun 2016 19:06:21 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: hiteshkhamesra@apache.org To: commits@geode.incubator.apache.org Date: Tue, 07 Jun 2016 19:07:10 -0000 Message-Id: <939975247daf42a98244c8c014bea29a@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [51/55] [abbrv] incubator-geode git commit: GEODE-1464: remove sqlf code archived-at: Tue, 07 Jun 2016 19:06:41 -0000 http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/InitialImageOperation.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/InitialImageOperation.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/InitialImageOperation.java index f0836d4..55bdde4 100644 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/InitialImageOperation.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/InitialImageOperation.java @@ -23,7 +23,6 @@ import com.gemstone.gemfire.cache.Operation; import com.gemstone.gemfire.cache.RegionDestroyedException; import com.gemstone.gemfire.cache.query.internal.CqStateImpl; import com.gemstone.gemfire.cache.query.internal.DefaultQueryService; -import com.gemstone.gemfire.cache.query.internal.IndexUpdater; import com.gemstone.gemfire.cache.query.internal.cq.CqService; import com.gemstone.gemfire.cache.query.internal.cq.ServerCQ; import com.gemstone.gemfire.distributed.DistributedMember; @@ -764,10 +763,6 @@ public class InitialImageOperation { if (entryCount <= 1000 && isDebugEnabled) { keys = new HashSet(); } - final boolean keyRequiresRegionContext = this.region - .keyRequiresRegionContext(); - // get SQLF index manager for the case of recovery from disk - final IndexUpdater indexUpdater = this.region.getIndexUpdater(); final ByteArrayDataInput in = new ByteArrayDataInput(); for (int i = 0; i < entryCount; i++) { // stream is null-terminated @@ -816,33 +811,7 @@ public class InitialImageOperation { Object tmpValue = entry.value; byte[] tmpBytes = null; - if (keyRequiresRegionContext) { - final KeyWithRegionContext key = (KeyWithRegionContext)entry.key; - Object keyObject = tmpValue; - if (tmpValue != null) { - if (entry.isEagerDeserialize()) { - tmpValue = CachedDeserializableFactory.create(tmpValue, - CachedDeserializableFactory.getArrayOfBytesSize( - (byte[][])tmpValue, true)); - entry.setSerialized(false); - } - else if (entry.isSerialized()) { - tmpBytes = (byte[])tmpValue; - // force deserialization for passing to key - keyObject = EntryEventImpl.deserialize(tmpBytes, - remoteVersion, in); - tmpValue = CachedDeserializableFactory.create(keyObject, - CachedDeserializableFactory.getByteSize(tmpBytes)); - entry.setSerialized(false); - } - else { - tmpBytes = (byte[])tmpValue; - } - } - key.setRegionContext(this.region); - entry.key = key.afterDeserializationWithValue(keyObject); - } - else { + { if (tmpValue instanceof byte[]) { tmpBytes = (byte[])tmpValue; } @@ -879,32 +848,6 @@ public class InitialImageOperation { //actually are equal, keep don't put the received //entry into the cache (this avoids writing a record to disk) if(entriesEqual) { - // explicit SQLF index maintenance here since - // it was not done during recovery from disk - if (indexUpdater != null && !Token.isInvalidOrRemoved(tmpValue)) { - boolean success = false; - if (entry.isSerialized()) { - tmpValue = CachedDeserializableFactory - .create((byte[])tmpValue); - } - // dummy EntryEvent to pass for SQLF index maintenance - @Released final EntryEventImpl ev = EntryEventImpl.create(this.region, - Operation.CREATE, null, null, null, true, null, false, false); - try { - ev.setKeyInfo(this.region.getKeyInfo(entry.key, - tmpValue, null)); - ev.setNewValue(tmpValue); - try { - indexUpdater.onEvent(this.region, ev, re); - success = true; - } finally { - indexUpdater.postEvent(this.region, ev, re, - success); - } - } finally { - ev.release(); - } - } continue; } if (entry.isSerialized() && !Token.isInvalidOrRemoved(tmpValue)) { @@ -1864,7 +1807,6 @@ public class InitialImageOperation { List chunkEntries = null; chunkEntries = new InitialImageVersionedEntryList(rgn.concurrencyChecksEnabled, MAX_ENTRIES_PER_CHUNK); - final boolean keyRequiresRegionContext = rgn.keyRequiresRegionContext(); DiskRegion dr = rgn.getDiskRegion(); if( dr!=null ){ dr.setClearCountReference(); @@ -1926,9 +1868,6 @@ public class InitialImageOperation { entry = new InitialImageOperation.Entry(); entry.key = key; entry.setVersionTag(stamp.asVersionTag()); - if (keyRequiresRegionContext) { - entry.setEagerDeserialize(); - } fillRes = mapEntry.fillInValue(rgn, entry, in, rgn.getDistributionManager()); if (versionVector != null) { if (logger.isTraceEnabled(LogMarker.GII)) { @@ -1939,9 +1878,6 @@ public class InitialImageOperation { } else { entry = new InitialImageOperation.Entry(); entry.key = key; - if (keyRequiresRegionContext) { - entry.setEagerDeserialize(); - } fillRes = mapEntry.fillInValue(rgn, entry, in, rgn.getDistributionManager()); } } @@ -1961,11 +1897,6 @@ public class InitialImageOperation { entry.setLastModified(rgn.getDistributionManager(), mapEntry .getLastModified()); } - if (keyRequiresRegionContext) { - entry.key = ((KeyWithRegionContext)key) - .beforeSerializationWithValue(entry.isInvalid() - || entry.isLocalInvalid()); - } chunkEntries.add(entry); currentChunkSize += entry.calcSerializedSize(); @@ -2952,18 +2883,6 @@ public class InitialImageOperation { this.entryBits = EntryBits.setSerialized(this.entryBits, isSerialized); } - public boolean isEagerDeserialize() { - return EntryBits.isEagerDeserialize(this.entryBits); - } - - void setEagerDeserialize() { - this.entryBits = EntryBits.setEagerDeserialize(this.entryBits); - } - - void clearEagerDeserialize() { - this.entryBits = EntryBits.clearEagerDeserialize(this.entryBits); - } - public boolean isInvalid() { return (this.value == null) && !EntryBits.isLocalInvalid(this.entryBits); } @@ -3005,12 +2924,7 @@ public class InitialImageOperation { out.writeByte(flags); DataSerializer.writeObject(this.key, out); if (!EntryBits.isTombstone(this.entryBits)) { - if (!isEagerDeserialize()) { - DataSerializer.writeObjectAsByteArray(this.value, out); - } - else { - DataSerializer.writeArrayOfByteArrays((byte[][])this.value, out); - } + DataSerializer.writeObjectAsByteArray(this.value, out); } out.writeLong(this.lastModified); if (this.versionTag != null) { @@ -3030,11 +2944,7 @@ public class InitialImageOperation { if (EntryBits.isTombstone(this.entryBits)) { this.value = Token.TOMBSTONE; } else { - if (!isEagerDeserialize()) { - this.value = DataSerializer.readByteArray(in); - } else { - this.value = DataSerializer.readArrayOfByteArrays(in); - } + this.value = DataSerializer.readByteArray(in); } this.lastModified = in.readLong(); if ((flags & HAS_VERSION) != 0) { http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/InternalRegionArguments.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/InternalRegionArguments.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/InternalRegionArguments.java index 3a254d5..c403231 100644 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/InternalRegionArguments.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/InternalRegionArguments.java @@ -22,7 +22,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import com.gemstone.gemfire.cache.query.internal.IndexUpdater; import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember; import com.gemstone.gemfire.internal.cache.LocalRegion.TestCallable; import com.gemstone.gemfire.internal.cache.partitioned.RegionAdvisor; @@ -58,8 +57,6 @@ public final class InternalRegionArguments private DiskRegion diskRegion; private PartitionedRegion partitionedRegion; private TestCallable testCallable; - private IndexUpdater indexUpdater; - private boolean keyRequiresRegionContext; private AbstractGatewaySender parallelGatewaySender; private AbstractGatewaySender serialGatewaySender; @@ -233,25 +230,6 @@ public final class InternalRegionArguments return this.testCallable; } - // SQLFabric index manager - public IndexUpdater getIndexUpdater() { - return this.indexUpdater; - } - - public InternalRegionArguments setIndexUpdater(IndexUpdater indexUpdater) { - this.indexUpdater = indexUpdater; - return this; - } - - public boolean keyRequiresRegionContext() { - return this.keyRequiresRegionContext; - } - - public InternalRegionArguments setKeyRequiresRegionContext(boolean v) { - this.keyRequiresRegionContext = v; - return this; - } - public InternalRegionArguments setUserAttribute(Object userAttr) { this.userAttribute = userAttr; return this; http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/InvalidateOperation.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/InvalidateOperation.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/InvalidateOperation.java index 6e1d91e..1742ad3 100644 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/InvalidateOperation.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/InvalidateOperation.java @@ -112,9 +112,6 @@ public class InvalidateOperation extends DistributedCacheOperation @Retained protected InternalCacheEvent createEvent(DistributedRegion rgn) throws EntryNotFoundException { - if (rgn.keyRequiresRegionContext()) { - ((KeyWithRegionContext)this.key).setRegionContext(rgn); - } @Retained EntryEventImpl ev = EntryEventImpl.create( rgn, getOperation(), this.key, null, this.callbackArg, true, getSender()); http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/KeyInfo.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/KeyInfo.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/KeyInfo.java index 30f30fc..3065b47 100644 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/KeyInfo.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/KeyInfo.java @@ -40,9 +40,8 @@ public class KeyInfo { private Object callbackArg; private int bucketId; - // Rahul: The value field is add since Sqlf Partition resolver also relies on the value - // part to calculate the routing object if the table is not partitioned on - // primary key. + // The value field is added since a Partition resolver could also rely on the value + // part to calculate the routing object @Retained(ENTRY_EVENT_NEW_VALUE) private final Object value; http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/KeyWithRegionContext.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/KeyWithRegionContext.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/KeyWithRegionContext.java deleted file mode 100644 index b28a551..0000000 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/KeyWithRegionContext.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * 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 com.gemstone.gemfire.internal.cache; - -import com.gemstone.gemfire.internal.DataSerializableFixedID; - -/** - * Interface that can be implemented by region keys to allow passing the region - * after deserialization for any region specific initialization. Note that the - * {@link LocalRegion#setKeyRequiresRegionContext(boolean)} should also be set - * for {@link #setRegionContext(LocalRegion)} to be invoked by the GemFire - * layer. It is required that either all keys of the region implement this - * interface (and the flag - * {@link LocalRegion#setKeyRequiresRegionContext(boolean)} is set) or none do. - * - * Currently used by SQLFabric for the optimized - * CompactCompositeRegionKey key implementations that keeps the key - * as a reference to the raw row bytes and requires a handle of the table schema - * to interpret those in hashCode/equals/compareTo methods that have no region - * context information. - * - */ -public interface KeyWithRegionContext extends DataSerializableFixedID { - - /** - * Pass the region of the key for setting up of any region specific context - * for the key. In case of recovery from disk the region may not have been - * fully initialized yet, so the implementation needs to take that into - * consideration. - * - * @param region - * the region of this key - */ - public void setRegionContext(LocalRegion region); - - /** - * Changes required to be done to the key, if any, to optimize serialization - * for sending across when value is also available. - * - * SQLFabric will make the value bytes as null in the key so as to avoid - * serializing the row twice. - */ - public KeyWithRegionContext beforeSerializationWithValue(boolean valueIsToken); - - /** - * Changes required to be done to the key, if any, to after deserializing the - * key in reply with value available. The value is required to be provided in - * deserialized format (e.g. for {@link CachedDeserializable}s the - * deserialized value being wrapped must be passed). - * - * SQLFabric will restore the value bytes that were set as null in - * {@link #beforeSerializationWithValue}. - */ - public KeyWithRegionContext afterDeserializationWithValue(Object val); -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/ListOfDeltas.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/ListOfDeltas.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/ListOfDeltas.java deleted file mode 100644 index 6592863..0000000 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/ListOfDeltas.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * 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 com.gemstone.gemfire.internal.cache; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import com.gemstone.gemfire.InternalGemFireException; -import com.gemstone.gemfire.cache.EntryEvent; -import com.gemstone.gemfire.internal.cache.delta.Delta; - - -/** - * - * - */ -public final class ListOfDeltas implements Delta { - - private List listOfDeltas; - transient private int deltaAppliedIndex = 0; - public ListOfDeltas(final int size) { - this.listOfDeltas = new ArrayList(size); - } - - public ListOfDeltas(Delta deltaObj) { - this.listOfDeltas = new ArrayList(); - this.listOfDeltas.add(deltaObj); - } - - public ListOfDeltas() { - } - - - - public Object apply(EntryEvent ev) { - if (ev != null && ev instanceof EntryEventImpl) { - EntryEventImpl putEvent = (EntryEventImpl)ev; - int last = this.listOfDeltas.size() -1; - for (int i = this.deltaAppliedIndex; i < listOfDeltas.size(); i++) { - Object o = listOfDeltas.get(i).apply(putEvent); - if(i < last) { - putEvent.setOldValue(o); - }else { - putEvent.setNewValue(o); - } - } - return putEvent.getNewValue(); - } - else { - throw new InternalGemFireException( - "ListOfDeltas.apply: putEvent is either null " - + "or is not of type EntryEventImpl"); - } - } - - - public Object merge(Object toMerge, boolean isCreate) - { - throw new UnsupportedOperationException("Invocation not expected"); - } - - public Object merge(Object toMerge) - { - this.listOfDeltas.add((Delta)toMerge); - return this; - } - - public Object getResultantValue() - { - return this; - } - - public int getNumDeltas() { - return this.listOfDeltas.size(); - } - - public void setDeltaAppliedIndex(int deltaApplied) { - this.deltaAppliedIndex = deltaApplied; - } - - public List getListOfDeltas() { - return Collections.unmodifiableList(this.listOfDeltas); - } -} -//SqlFabric changes END http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/LocalRegion.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/LocalRegion.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/LocalRegion.java index 6b664fe..8b9664f 100644 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/LocalRegion.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/LocalRegion.java @@ -36,7 +36,6 @@ import com.gemstone.gemfire.cache.query.*; import com.gemstone.gemfire.cache.query.internal.DefaultQuery; import com.gemstone.gemfire.cache.query.internal.DefaultQueryService; import com.gemstone.gemfire.cache.query.internal.ExecutionContext; -import com.gemstone.gemfire.cache.query.internal.IndexUpdater; import com.gemstone.gemfire.cache.query.internal.cq.CqService; import com.gemstone.gemfire.cache.query.internal.index.IndexCreationData; import com.gemstone.gemfire.cache.query.internal.index.IndexManager; @@ -428,26 +427,6 @@ public class LocalRegion extends AbstractRegion return initializingRegion.get(); } - /** - * Return true if the keys of this region implement - * {@link KeyWithRegionContext} that require region specific context - * initialization after deserialization or recovery from disk. - * - * Currently used by SQLFabric for the optimized - * CompactCompositeRegionKey that points to the raw row bytes and - * so requires a handle to table schema for interpretation of those bytes. - */ - public boolean keyRequiresRegionContext() { - return this.keyRequiresRegionContext; - } - - /** - * Set the {@link #keyRequiresRegionContext} flag to given value. - */ - public final void setKeyRequiresRegionContext(boolean v) { - this.keyRequiresRegionContext = v; - } - public CancelCriterion getCancelCriterion() { return this.stopper; } @@ -502,11 +481,9 @@ public class LocalRegion extends AbstractRegion this.initializationLatchAfterGetInitialImage = new StoppableCountDownLatch(this.stopper, 1); this.afterRegionCreateEventLatch = new StoppableCountDownLatch(this.stopper, 1); - // set the user-attribute object upfront for SQLFabric if (internalRegionArgs.getUserAttribute() != null) { setUserAttribute(internalRegionArgs.getUserAttribute()); } - setKeyRequiresRegionContext(internalRegionArgs.keyRequiresRegionContext()); initializingRegion.set(this); if (internalRegionArgs.getCachePerfStatsHolder() != null) { @@ -674,10 +651,6 @@ public class LocalRegion extends AbstractRegion } } - public IndexUpdater getIndexUpdater() { - return this.entries.getIndexUpdater(); - } - boolean isCacheClosing() { return this.cache.isClosed(); @@ -854,10 +827,7 @@ public class LocalRegion extends AbstractRegion && internalRegionArgs.isUsedForPartitionedRegionBucket()) { final PartitionedRegion pr = internalRegionArgs .getPartitionedRegion(); - internalRegionArgs.setIndexUpdater(pr.getIndexUpdater()); internalRegionArgs.setUserAttribute(pr.getUserAttribute()); - internalRegionArgs.setKeyRequiresRegionContext(pr - .keyRequiresRegionContext()); if (pr.isShadowPR()) { newRegion = new BucketRegionQueue(subregionName, regionAttributes, this, this.cache, internalRegionArgs); @@ -1016,8 +986,6 @@ public class LocalRegion extends AbstractRegion } } - // split into a separate newCreateEntryEvent since SQLFabric may need to - // manipulate event before doing the put (e.g. posDup flag) @Retained public final EntryEventImpl newCreateEntryEvent(Object key, Object value, Object aCallbackArgument) { @@ -1076,8 +1044,6 @@ public class LocalRegion extends AbstractRegion } } - // split into a separate newDestroyEntryEvent since SQLFabric may need to - // manipulate event before doing the put (e.g. posDup flag) @Retained public final EntryEventImpl newDestroyEntryEvent(Object key, Object aCallbackArgument) { @@ -1588,15 +1554,8 @@ public class LocalRegion extends AbstractRegion event.setNewEventId(cache.getDistributedSystem()); } Object oldValue = null; - // Sqlf changes begin - // see #40294. - - // Rahul: this has to be an update. - // so executing it as an update. - boolean forceUpdateForDelta = event.hasDelta(); - // Sqlf Changes end. if (basicPut(event, false, // ifNew - forceUpdateForDelta, // ifOld + false, // ifOld null, // expectedOldValue false // requireOldValue )) { @@ -1612,8 +1571,6 @@ public class LocalRegion extends AbstractRegion return handleNotAvailable(oldValue); } - // split into a separate newUpdateEntryEvent since SQLFabric may need to - // manipulate event before doing the put (e.g. posDup flag) @Retained public final EntryEventImpl newUpdateEntryEvent(Object key, Object value, Object aCallbackArgument) { @@ -1643,17 +1600,6 @@ public class LocalRegion extends AbstractRegion if (!eventReturned) event.release(); } } - /** - * Creates an EntryEventImpl that is optimized to not fetch data from HDFS. - * This is meant to be used by PUT dml from GemFireXD. - */ - @Retained - public final EntryEventImpl newPutEntryEvent(Object key, Object value, - Object aCallbackArgument) { - EntryEventImpl ev = newUpdateEntryEvent(key, value, aCallbackArgument); - ev.setPutDML(true); - return ev; - } private void extractDeltaIntoEvent(Object value, EntryEventImpl event) { // 1. Check for DS-level delta property. // 2. Default value for operation type is UPDATE, so no need to check that here. @@ -3579,8 +3525,6 @@ public class LocalRegion extends AbstractRegion * Returns the value of the entry with the given key as it is stored on disk. * While the value may be read from disk, it is not stored into the * entry in the VM. This method is intended for testing purposes only. - * DO NOT use in product code else it will break SQLFabric that has cases - * where routing object is not part of only the key. * * @throws EntryNotFoundException * No entry with key exists @@ -3619,8 +3563,7 @@ public class LocalRegion extends AbstractRegion /** * Get the serialized bytes from disk. This method only looks for the value on * the disk, ignoring heap data. This method is intended for testing purposes - * only. DO NOT use in product code else it will break SQLFabric that has - * cases where routing object is not part of only the key. + * only. * * @param key the object whose hashCode is used to find the value * @return either a byte array, a CacheDeserializable with the serialized value, @@ -3675,9 +3618,6 @@ public class LocalRegion extends AbstractRegion /** * Does a get that attempts to not fault values in from disk or make the entry * the most recent in the LRU. - * - * Originally implemented in WAN gateway code and moved here in the sqlfire - * "cheetah" branch. * @param adamant fault in and affect LRU as a last resort * @param allowTombstone also return Token.TOMBSTONE if the entry is deleted * @param serializedFormOkay if the serialized form can be returned @@ -5069,9 +5009,6 @@ public class LocalRegion extends AbstractRegion /** * Get the best iterator for the region entries. - * - * TODO there has been some work on this on the sqlfire branch that should - * be picked up here. */ public Iterator getBestIterator(boolean includeValues) { if(this instanceof DistributedRegion) { @@ -5395,12 +5332,6 @@ public class LocalRegion extends AbstractRegion callbackArg = new GatewaySenderEventCallbackArgument(callbackArg); } } - //Asif: Modified the call to this constructor by passing the new value obtained from remote site - //instead of null . - //The need for this arose, because creation of EntryEvent, makes call to PartitionResolver, - //to get Hash. If the partitioning column is different from primary key, - //the resolver for Sqlfabric is not able to obtain the hash object used for creation of KeyInfo - @Released final EntryEventImpl event = EntryEventImpl.create(this, Operation.CREATE, key, value, callbackArg, false /* origin remote */, client.getDistributedMember(), true /* generateCallbacks */, @@ -5420,9 +5351,6 @@ public class LocalRegion extends AbstractRegion } // Set the new value to the input byte[] if it isn't null - /// For SqlFabric, if the new value happens to be an serialized object, then - //it needs to be converted into VMCachedDeserializable , or serializable delta - // as the case may be if (value != null) { // If the byte[] represents an object, then store it serialized // in a CachedDeserializable; otherwise store it directly as a byte[] @@ -6064,12 +5992,6 @@ public class LocalRegion extends AbstractRegion long lastModifiedTime = event.getEventTime(lastModified); updateStatsForPut(entry, lastModifiedTime, lruRecentUse); if (!isProxy()) { - //if (this.isUsedForPartitionedRegionBucket) { - // if (this.sqlfIndexManager != null) { - // this.sqlfIndexManager.onEvent(this, event, entry); - // } - //} - if (!clearConflict && this.indexManager != null) { try { if (!entry.isInvalid()) { @@ -6340,7 +6262,6 @@ public class LocalRegion extends AbstractRegion } } isDup = this.eventTracker.hasSeenEvent(event); - // don't clobber existing posDup flag e.g. set from SQLFabric client if (isDup) { event.setPossibleDuplicate(true); if (this.concurrencyChecksEnabled && event.getVersionTag() == null) { @@ -7844,25 +7765,9 @@ public class LocalRegion extends AbstractRegion } } } - void cleanUpOnIncompleteOp(EntryEventImpl event, RegionEntry re, - boolean eventRecorded, boolean updateStats, boolean isReplace) { - //TODO:Asif: This is incorrect implementation for replicated region in case of - //sql fabric, as sqlf index would already be updated, if eventRecorded - //flag is true.So if entry is being removed , - //then the sqlfindex also needs to be corrected - IndexUpdater iu = this.getIndexUpdater(); // sqlf system - if(!eventRecorded || iu ==null || isReplace) { - //Ok to remove entry whether sqlfabric or gfe as index has not been modified yet by the operation - this.entries.removeEntry(event.getKey(), re, updateStats) ; - }else { - // a sqlf system, with event recorded as true. we need to update index. - //Use the current event to indicate destroy.should be ok - Operation oldOp = event.getOperation(); - event.setOperation(Operation.DESTROY); - this.entries.removeEntry(event.getKey(), re, updateStats, event, this, iu); - event.setOperation(oldOp); - } - + void cleanUpOnIncompleteOp(EntryEventImpl event, RegionEntry re) { + //Ok to remove entry as index has not been modified yet by the operation + this.entries.removeEntry(event.getKey(), re, false) ; } static void validateRegionName(String name) @@ -10531,8 +10436,6 @@ public class LocalRegion extends AbstractRegion } - // split into a separate newPutAllOperation since SQLFabric may need to - // manipulate event before doing the put (e.g. posDup flag) public final DistributedPutAllOperation newPutAllOperation(Map map, Object callbackArg) { if (map == null) { throw new NullPointerException(LocalizedStrings @@ -10556,12 +10459,6 @@ public class LocalRegion extends AbstractRegion DistributedPutAllOperation dpao = new DistributedPutAllOperation(event, map.size(), false); return dpao; } - public final DistributedPutAllOperation newPutAllForPUTDmlOperation(Map map, Object callbackArg) { - DistributedPutAllOperation dpao = newPutAllOperation(map, callbackArg); - dpao.getEvent().setPutDML(true); - return dpao; - } - public final DistributedRemoveAllOperation newRemoveAllOperation(Collection keys, Object callbackArg) { if (keys == null) { @@ -10613,8 +10510,6 @@ public class LocalRegion extends AbstractRegion putallOp, this, Operation.PUTALL_CREATE, key, value); try { - event.setPutDML(putallOp.getEvent().isPutDML()); - if (tagHolder != null) { event.setVersionTag(tagHolder.getVersionTag()); event.setFromServer(tagHolder.isFromServer()); @@ -11015,8 +10910,7 @@ public class LocalRegion extends AbstractRegion final CacheProfile prof = (CacheProfile)profile; // if region in cache is not yet initialized, exclude - if (prof.regionInitialized // fix for bug 41102 - && !prof.memberUnInitialized) { + if (prof.regionInitialized) { // fix for bug 41102 // cut the visit short if we find a CacheLoader return !prof.hasCacheLoader; } @@ -11033,8 +10927,8 @@ public class LocalRegion extends AbstractRegion assert profile instanceof CacheProfile; final CacheProfile prof = (CacheProfile)profile; - // if region in cache is in recovery, or member not initialized exclude - if (!prof.inRecovery && !prof.memberUnInitialized) { + // if region in cache is in recovery + if (!prof.inRecovery) { // cut the visit short if we find a CacheWriter return !prof.hasCacheWriter; } @@ -11486,15 +11380,6 @@ public class LocalRegion extends AbstractRegion distributeUpdatedProfileOnSenderCreation(); } - /** - * @since GemFire SqlFabric - * - */ - void distributeUpdatedProfileOnHubCreation() - { - // No op - } - void distributeUpdatedProfileOnSenderCreation() { // No op http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/Oplog.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/Oplog.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/Oplog.java index 4c04054..59b0893 100755 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/Oplog.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/Oplog.java @@ -1867,7 +1867,6 @@ public final class Oplog implements CompactableOplog, Flushable { CountingDataInputStream dis = null; try { final LocalRegion currentRegion = LocalRegion.getInitializingRegion(); - final boolean keyRequiresRegionContext = currentRegion != null ? currentRegion.keyRequiresRegionContext() : false; final Version version = getProductVersionIfOld(); final ByteArrayDataInput in = new ByteArrayDataInput(); final HeapDataOutputStream hdos = new HeapDataOutputStream(Version.CURRENT); @@ -1909,7 +1908,7 @@ public final class Oplog implements CompactableOplog, Flushable { } break; case OPLOG_NEW_ENTRY_0ID: - readNewEntry(dis, opCode, deletedIds, recoverValues, currentRegion, keyRequiresRegionContext, version, in, hdos); + readNewEntry(dis, opCode, deletedIds, recoverValues, currentRegion, version, in, hdos); recordCount++; break; case OPLOG_MOD_ENTRY_1ID: @@ -1920,7 +1919,7 @@ public final class Oplog implements CompactableOplog, Flushable { case OPLOG_MOD_ENTRY_6ID: case OPLOG_MOD_ENTRY_7ID: case OPLOG_MOD_ENTRY_8ID: - readModifyEntry(dis, opCode, deletedIds, recoverValues, currentRegion, keyRequiresRegionContext, version, in, hdos); + readModifyEntry(dis, opCode, deletedIds, recoverValues, currentRegion, version, in, hdos); recordCount++; break; case OPLOG_MOD_ENTRY_WITH_KEY_1ID: @@ -1931,7 +1930,7 @@ public final class Oplog implements CompactableOplog, Flushable { case OPLOG_MOD_ENTRY_WITH_KEY_6ID: case OPLOG_MOD_ENTRY_WITH_KEY_7ID: case OPLOG_MOD_ENTRY_WITH_KEY_8ID: - readModifyEntryWithKey(dis, opCode, deletedIds, recoverValues, currentRegion, keyRequiresRegionContext, version, in, + readModifyEntryWithKey(dis, opCode, deletedIds, recoverValues, currentRegion, version, in, hdos); recordCount++; break; @@ -2414,7 +2413,7 @@ public final class Oplog implements CompactableOplog, Flushable { * @throws IOException */ private void readNewEntry(CountingDataInputStream dis, byte opcode, OplogEntryIdSet deletedIds, boolean recoverValue, - final LocalRegion currentRegion, boolean keyRequiresRegionContext, Version version, ByteArrayDataInput in, + final LocalRegion currentRegion, Version version, ByteArrayDataInput in, HeapDataOutputStream hdos) throws IOException { final boolean isPersistRecoveryDebugEnabled = logger.isTraceEnabled(LogMarker.PERSIST_RECOVERY); @@ -2553,9 +2552,6 @@ public final class Oplog implements CompactableOplog, Flushable { } } else { Object key = deserializeKey(keyBytes, version, in); - if (keyRequiresRegionContext) { - ((KeyWithRegionContext) key).setRegionContext(currentRegion); - } { Object oldValue = getRecoveryMap().put(oplogKeyId, key); if (oldValue != null) { @@ -2605,7 +2601,7 @@ public final class Oplog implements CompactableOplog, Flushable { * @throws IOException */ private void readModifyEntry(CountingDataInputStream dis, byte opcode, OplogEntryIdSet deletedIds, boolean recoverValue, - LocalRegion currentRegion, boolean keyRequiresRegionContext, Version version, ByteArrayDataInput in, HeapDataOutputStream hdos) + LocalRegion currentRegion, Version version, ByteArrayDataInput in, HeapDataOutputStream hdos) throws IOException { final boolean isPersistRecoveryDebugEnabled = logger.isTraceEnabled(LogMarker.PERSIST_RECOVERY); @@ -2711,9 +2707,6 @@ public final class Oplog implements CompactableOplog, Flushable { byte[] keyBytes = (byte[]) skippedKeyBytes.get(oplogKeyId); if (keyBytes != null) { key = deserializeKey(keyBytes, version, in); - if (keyRequiresRegionContext) { - ((KeyWithRegionContext) key).setRegionContext(currentRegion); - } } } if (isPersistRecoveryDebugEnabled) { @@ -2829,7 +2822,7 @@ public final class Oplog implements CompactableOplog, Flushable { * @throws IOException */ private void readModifyEntryWithKey(CountingDataInputStream dis, byte opcode, OplogEntryIdSet deletedIds, boolean recoverValue, - final LocalRegion currentRegion, final boolean keyRequiresRegionContext, Version version, ByteArrayDataInput in, + final LocalRegion currentRegion, Version version, ByteArrayDataInput in, HeapDataOutputStream hdos) throws IOException { long oplogOffset = -1; @@ -2966,9 +2959,6 @@ public final class Oplog implements CompactableOplog, Flushable { } } else { Object key = deserializeKey(keyBytes, version, in); - if (keyRequiresRegionContext) { - ((KeyWithRegionContext) key).setRegionContext(currentRegion); - } Object oldValue = getRecoveryMap().put(oplogKeyId, key); if (oldValue != null) { throw new AssertionError(LocalizedStrings.Oplog_DUPLICATE_CREATE.toLocalizedString(oplogKeyId)); @@ -7039,8 +7029,6 @@ public final class Oplog implements CompactableOplog, Flushable { public void handleValueOverflow(RegionEntryContext context) {throw new IllegalStateException();} @Override - public void afterValueOverflow(RegionEntryContext context) {throw new IllegalStateException();} - @Override public Object prepareValueForCache(RegionEntryContext r, Object val, boolean isEntryUpdate) { throw new IllegalStateException("Should never be called"); } @Override http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PRHARedundancyProvider.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PRHARedundancyProvider.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PRHARedundancyProvider.java index f933024..c33efb7 100644 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PRHARedundancyProvider.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PRHARedundancyProvider.java @@ -432,8 +432,6 @@ public class PRHARedundancyProvider this.prRegion.checkReadiness(); Set available = this.prRegion .getRegionAdvisor().adviseInitializedDataStore(); - // remove uninitialized members for bucket creation - this.prRegion.getCache().removeUnInitializedMembers(available); InternalDistributedMember target = null; available.removeAll(attempted); for (InternalDistributedMember member : available) { @@ -575,8 +573,6 @@ public class PRHARedundancyProvider // Always go back to the advisor, see if any fresh data stores are // present. Set allStores = getAllStores(partitionName); - // remove nodes that are not fully initialized - this.prRegion.getCache().removeUnInitializedMembers(allStores); loggedInsufficentStores = checkSufficientStores(allStores, loggedInsufficentStores); @@ -776,7 +772,6 @@ public class PRHARedundancyProvider // the parent's in case of colocation) so it is now passed //InternalDistributedMember targetPrimary = getPreferredDataStore( // acceptedMembers, Collections. emptySet()); - this.prRegion.getCache().removeUnInitializedMembers(acceptedMembers); targetPrimary = getPreferredDataStore(acceptedMembers, Collections . emptySet()); } @@ -1580,9 +1575,6 @@ public class PRHARedundancyProvider if (!PRHARedundancyProvider.this.prRegion.isDataStore()) { return; } - if (cache.isUnInitializedMember(cache.getMyId())) { - return; - } Runnable task = new RecoveryRunnable(this) { @Override public void run2() http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PartitionAttributesImpl.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PartitionAttributesImpl.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PartitionAttributesImpl.java index 47548f3..dd90a62 100644 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PartitionAttributesImpl.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PartitionAttributesImpl.java @@ -384,16 +384,6 @@ public class PartitionAttributesImpl implements PartitionAttributes, .append("]") .toString(); } - public String getStringForSQLF() { - final StringBuilder sb = new StringBuilder(); - return sb.append("redundantCopies=").append(getRedundantCopies()).append( - ",totalMaxMemory=").append(this.totalMaxMemory).append( - ",totalNumBuckets=").append(this.totalNumBuckets).append( - ",colocatedWith=").append(this.colocatedRegionName).append( - ",recoveryDelay=").append(this.recoveryDelay).append( - ",startupRecoveryDelay=").append(this.startupRecoveryDelay).toString(); - } - /** * @throws IllegalStateException if off-heap and the actual value is not yet known (because the DistributedSystem has not yet been created) */ http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PartitionedRegion.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PartitionedRegion.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PartitionedRegion.java index 9375d04..26c91e0 100755 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PartitionedRegion.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PartitionedRegion.java @@ -1035,16 +1035,6 @@ public class PartitionedRegion extends LocalRegion implements } @Override - void distributeUpdatedProfileOnHubCreation() - { - if (!(this.isClosed || this.isLocallyDestroyed)) { - // tell others of the change in status - this.requiresNotification = true; - new UpdateAttributesProcessor(this).distribute(false); - } - } - - @Override void distributeUpdatedProfileOnSenderCreation() { if (!(this.isClosed || this.isLocallyDestroyed)) { @@ -1376,11 +1366,7 @@ public class PartitionedRegion extends LocalRegion implements boolean colocatedLockAcquired = false; try { boolean colocationComplete = false; - if (colocatedRegion != null && !prConfig.isColocationComplete() && - // if the current node is marked uninitialized (SQLF DDL replay in - // progress) then colocation will definitely not be marked complete so - // avoid taking the expensive region lock - !getCache().isUnInitializedMember(getDistributionManager().getId())) { + if (colocatedRegion != null && !prConfig.isColocationComplete()) { colocatedLock = colocatedRegion.getRegionLock(); colocatedLock.lock(); colocatedLockAcquired = true; @@ -1389,16 +1375,7 @@ public class PartitionedRegion extends LocalRegion implements if (parentConf.isColocationComplete() && parentConf.hasSameDataStoreMembers(prConfig)) { colocationComplete = true; - // check if all the nodes have been initialized (SQLF bug #42089) - for (Node node : nodes) { - if (getCache().isUnInitializedMember(node.getMemberId())) { - colocationComplete = false; - break; - } - } - if (colocationComplete) { - prConfig.setColocationComplete(); - } + prConfig.setColocationComplete(); } } @@ -1935,13 +1912,6 @@ public class PartitionedRegion extends LocalRegion implements if (targetNode == null) { try { bucketStorageAssigned=false; - // if this is a Delta update, then throw exception since the key doesn't - // exist if there is no bucket for it yet - if (event.hasDelta()) { - throw new EntryNotFoundException(LocalizedStrings. - PartitionedRegion_CANNOT_APPLY_A_DELTA_WITHOUT_EXISTING_ENTRY - .toLocalizedString()); - } targetNode = createBucket(bucketId.intValue(), event.getNewValSizeForPR(), null); } @@ -3462,10 +3432,8 @@ public class PartitionedRegion extends LocalRegion implements boolean isBucketSetAsFilter) { final Set routingKeys = execution.getFilter(); final boolean primaryMembersNeeded = function.optimizeForWrite(); - final boolean hasRoutingObjects = execution.hasRoutingObjects(); HashMap bucketToKeysMap = FunctionExecutionNodePruner - .groupByBucket(this, routingKeys, primaryMembersNeeded, - hasRoutingObjects, isBucketSetAsFilter); + .groupByBucket(this, routingKeys, primaryMembersNeeded, false, isBucketSetAsFilter); HashMap memberToKeysMap = new HashMap(); HashMap> memberToBuckets = FunctionExecutionNodePruner .groupByMemberToBuckets(this, bucketToKeysMap.keySet(), primaryMembersNeeded); @@ -3555,7 +3523,7 @@ public class PartitionedRegion extends LocalRegion implements else { localBucketSet = FunctionExecutionNodePruner .getBucketSet(PartitionedRegion.this, localKeys, - hasRoutingObjects, isBucketSetAsFilter); + false, isBucketSetAsFilter); remoteOnly = false; } @@ -3591,7 +3559,7 @@ public class PartitionedRegion extends LocalRegion implements FunctionRemoteContext context = new FunctionRemoteContext(function, execution.getArgumentsForMember(recip.getId()), memKeys, FunctionExecutionNodePruner.getBucketSet(this, memKeys, - hasRoutingObjects, isBucketSetAsFilter), execution.isReExecute(), + false, isBucketSetAsFilter), execution.isReExecute(), execution.isFnSerializationReqd()); recipMap.put(recip, context); } @@ -3621,15 +3589,8 @@ public class PartitionedRegion extends LocalRegion implements if (isBucketSetAsFilter) { bucketId = ((Integer) key).intValue(); } else { - if (execution.hasRoutingObjects()) { - bucketId = Integer.valueOf(PartitionedRegionHelper - .getHashKey(this, key)); - } else { - // bucketId = Integer.valueOf(PartitionedRegionHelper.getHashKey(this, - // Operation.FUNCTION_EXECUTION, key, null)); - bucketId = Integer.valueOf(PartitionedRegionHelper.getHashKey(this, + bucketId = Integer.valueOf(PartitionedRegionHelper.getHashKey(this, Operation.FUNCTION_EXECUTION, key, null, null)); - } } InternalDistributedMember targetNode = null; if (function.optimizeForWrite()) { @@ -5066,21 +5027,6 @@ public class PartitionedRegion extends LocalRegion implements /** * generates new partitioned region ID globally. */ - // !!!:ezoerner:20080321 made this function public and static. - // @todo should be moved to the Distributed System level as a general service - // for getting a unique id, with different "domains" for different - // contexts - // :soubhik:pr_func merge20914:21056: overloaded static and non-static version of generatePRId. - // static version is used mainly with sqlf & non-static in gfe. - public static int generatePRId(InternalDistributedSystem sys, Cache cache) { - - GemFireCacheImpl gfcache = (GemFireCacheImpl) cache; - - if(gfcache == null) return 0; - - return _generatePRId(sys, gfcache.getPartitionedRegionLockService()); - } - public int generatePRId(InternalDistributedSystem sys) { final DistributedLockService lockService = getPartitionedRegionLockService(); return _generatePRId(sys, lockService); @@ -6257,15 +6203,6 @@ public class PartitionedRegion extends LocalRegion implements } /** - * Currently used by SQLFabric to get a non-wrapped iterator for all entries - * for index consistency check. - */ - public Set allEntries() { - return new PREntriesSet(); - } - - - /** * Set view of entries. This currently extends the keySet iterator and * performs individual getEntry() operations using the keys * @@ -7678,20 +7615,7 @@ public class PartitionedRegion extends LocalRegion implements } @Override - public void localDestroyRegion(Object aCallbackArgument) { - localDestroyRegion(aCallbackArgument, false); - } - - /** - * Locally destroy a region. - * - * SQLFabric change: The parameter "ignoreParent" has been added to allow - * skipping the check for parent colocated region. This is because SQLFabric - * DDLs are distributed in any case and are guaranteed to be atomic (i.e. no - * concurrent DMLs on that table). Without this it is quite ugly to implement - * "TRUNCATE TABLE" which first drops the table and recreates it. - */ - public void localDestroyRegion(Object aCallbackArgument, boolean ignoreParent) + public void localDestroyRegion(Object aCallbackArgument) { getDataView().checkSupportsRegionDestroy(); String prName = this.getColocatedWith(); @@ -7707,7 +7631,7 @@ public class PartitionedRegion extends LocalRegion implements } } - if ((!ignoreParent && prName != null) + if ((prName != null) || (!childRegionsWithoutSendersList.isEmpty())) { throw new UnsupportedOperationException( "Any Region in colocation chain cannot be destroyed locally."); @@ -9430,8 +9354,6 @@ public class PartitionedRegion extends LocalRegion implements /** * This method is intended for testing purposes only. - * DO NOT use in product code else it will break SQLFabric that has cases - * where routing object is not part of only the key. */ @Override public Object getValueOnDisk(Object key) throws EntryNotFoundException { @@ -9444,8 +9366,6 @@ public class PartitionedRegion extends LocalRegion implements /** * This method is intended for testing purposes only. - * DO NOT use in product code else it will break SQLFabric that has cases - * where routing object is not part of only the key. */ @Override public Object getValueOnDiskOrBuffer(Object key) throws EntryNotFoundException { @@ -9565,33 +9485,13 @@ public class PartitionedRegion extends LocalRegion implements } public PartitionResolver getPartitionResolver() { - // [SQLFabric] use PartitionAttributes to get the the resolver - // since it may change after ALTER TABLE return this.partitionAttributes.getPartitionResolver(); } public String getColocatedWith() { - // [SQLFabric] use PartitionAttributes to get colocated region - // since it may change after ALTER TABLE return this.partitionAttributes.getColocatedWith(); } - // For SQLFabric ALTER TABLE. Need to set the colocated region using - // PartitionAttributesImpl and also reset the parentAdvisor for - // BucketAdvisors. - /** - * Set the colocated with region path and adjust the BucketAdvisor's. This - * should *only* be invoked when region is just newly created and has no data - * or existing buckets else will have undefined behaviour. - * - * @since GemFire 6.5 - */ - public void setColocatedWith(String colocatedRegionFullPath) { - ((PartitionAttributesImpl)this.partitionAttributes) - .setColocatedWith(colocatedRegionFullPath); - this.getRegionAdvisor().resetBucketAdvisorParents(); - } - /** * Used to get membership events from our advisor to implement * RegionMembershipListener invocations. This is copied almost in whole from @@ -9649,98 +9549,6 @@ public class PartitionedRegion extends LocalRegion implements } } - /* - * This is an internal API for sqlFabric only
- * This is usefull to execute a function on set of nodes irrelevant of the - * routinKeys
- * notes : This API uses DefaultResultCollector. If you want your Custome - * Result collector, let me know - * - * @param functionName - * @param args - * @param nodes - * Set of DistributedMembers on which this function will be - * executed - * @throws Exception - *//* - public ResultCollector executeFunctionOnNodes(String functionName, - Serializable args, Set nodes) throws Exception { - Assert.assertTrue(functionName != null, "Error: functionName is null"); - Assert.assertTrue(nodes != null, "Error: nodes set is null"); - Assert.assertTrue(nodes.size() != 0, "Error: empty nodes Set"); - ResultCollector rc = new DefaultResultCollector(); - boolean isSelf = nodes.remove(getMyId()); - PartitionedRegionFunctionResponse response = null; - //TODO Yogesh: this API is broken after Resultsender implementation - //response = new PartitionedRegionFunctionResponse(this.getSystem(), nodes, - // rc); - Iterator i = nodes.iterator(); - while (i.hasNext()) { - InternalDistributedMember recip = (InternalDistributedMember)i.next(); - PartitionedRegionFunctionMessage.send(recip, this, functionName, args, - null routingKeys , response, null); - } - if (isSelf) { - // execute locally and collect the result - if (this.dataStore != null) { - this.dataStore.executeOnDataStore( - null routingKeys , functionName, args, 0,null,rc,null); - } - } - return response; - }*/ - - - /* - * This is an internal API for sqlFabric only
- * API for invoking a function using primitive ints as the routing objects - * (i.e. passing the hashcodes of the routing objects directly).
- * notes : This API uses DefaultResultCollector. If you want to pass your - * Custom Result collector, let me know - * - * @param functionName - * @param args - * @param hashcodes - * hashcodes of the routing objects - * @throws Exception - *//* - public ResultCollector executeFunctionUsingHashCodes(String functionName, - Serializable args, int hashcodes[]) throws Exception { - Assert.assertTrue(functionName != null, "Error: functionName is null"); - Assert.assertTrue(hashcodes != null, "Error: hashcodes array is null"); - Assert.assertTrue(hashcodes.length != 0, "Error: empty hashcodes array"); - Set nodes = new HashSet(); - for (int i = 0; i < hashcodes.length; i++) { - int bucketId = hashcodes[i] % getTotalNumberOfBuckets(); - InternalDistributedMember n = getNodeForBucketRead(bucketId); - nodes.add(n); - } - return executeFunctionOnNodes(functionName, args, nodes); - }*/ - - /** - * This is an internal API for sqlFabric only
- * Given a array of routing objects, returns a set of members on which the (owner of each - * buckets) - * - * @param routingObjects array of routing objects passed - * @return Set of InternalDistributedMembers - */ - public Set getMembersFromRoutingObjects(Object[] routingObjects) { - Assert.assertTrue(routingObjects != null, "Error: null routingObjects "); - Assert.assertTrue(routingObjects.length != 0, "Error: empty routingObjects "); - Set nodeSet = new HashSet(); - int bucketId; - for (int i = 0; i < routingObjects.length; i++) { - bucketId = PartitionedRegionHelper.getHashKey(routingObjects[i], - getTotalNumberOfBuckets()); - InternalDistributedMember lnode = getOrCreateNodeForBucketRead(bucketId); - if (lnode != null) { - nodeSet.add(lnode); - } - } - return nodeSet; - } @Override protected RegionEntry basicGetTXEntry(KeyInfo keyInfo) { int bucketId = keyInfo.getBucketId(); @@ -10525,9 +10333,7 @@ public class PartitionedRegion extends LocalRegion implements } /** - * Returns the local BucketRegion given the key and value. Particularly useful - * for SQLFabric where the routing object may be part of value and determining - * from key alone will require an expensive global index lookup. + * Returns the local BucketRegion given the key and value. * Returns null if no BucketRegion exists. */ public BucketRegion getBucketRegion(Object key, Object value) { @@ -10754,74 +10560,6 @@ public class PartitionedRegion extends LocalRegion implements } } - /** - * Clear local primary buckets. - * This is currently only used by gemfirexd truncate table - * to clear the partitioned region. - */ - public void clearLocalPrimaries() { - // rest of it should be done only if this is a store while RecoveryLock - // above still required even if this is an accessor - if (getLocalMaxMemory() > 0) { - // acquire the primary bucket locks - // do this in a loop to handle the corner cases where a primary - // bucket region ceases to be so when we actually take the lock - // (probably not required to do this in loop after the recovery lock) - // [sumedh] do we need both recovery lock and bucket locks? - boolean done = false; - Set lockedRegions = null; - while (!done) { - lockedRegions = getDataStore().getAllLocalPrimaryBucketRegions(); - done = true; - for (BucketRegion br : lockedRegions) { - try { - br.doLockForPrimary(false); - } catch (RegionDestroyedException rde) { - done = false; - break; - } catch (PrimaryBucketException pbe) { - done = false; - break; - } catch (Exception e) { - // ignore any other exception - logger.debug( - "GemFireContainer#clear: ignoring exception " - + "in bucket lock acquire", e); - } - } - } - - try { - // now clear the bucket regions; we go through the primary bucket - // regions so there is distribution for every bucket but that - // should be performant enough - for (BucketRegion br : lockedRegions) { - try { - br.clear(); - } catch (Exception e) { - // ignore any other exception - logger.debug( - "GemFireContainer#clear: ignoring exception " - + "in bucket clear", e); - } - } - } finally { - // release the bucket locks - for (BucketRegion br : lockedRegions) { - try { - br.doUnlockForPrimary(); - } catch (Exception e) { - // ignore all exceptions at this stage - logger.debug( - "GemFireContainer#clear: ignoring exception " - + "in bucket lock release", e); - } - } - } - } - - } - public void shadowPRWaitForBucketRecovery() { assert this.isShadowPR(); PartitionedRegion userPR = ColocationHelper.getLeaderRegion(this); http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PartitionedRegionDataStore.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PartitionedRegionDataStore.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PartitionedRegionDataStore.java index 3855adc..494c288 100644 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PartitionedRegionDataStore.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/PartitionedRegionDataStore.java @@ -24,7 +24,6 @@ import com.gemstone.gemfire.cache.execute.Function; import com.gemstone.gemfire.cache.execute.FunctionException; import com.gemstone.gemfire.cache.execute.ResultSender; import com.gemstone.gemfire.cache.query.QueryInvalidException; -import com.gemstone.gemfire.cache.query.internal.IndexUpdater; import com.gemstone.gemfire.cache.query.internal.QCompiler; import com.gemstone.gemfire.cache.query.internal.index.IndexCreationData; import com.gemstone.gemfire.cache.query.internal.index.PartitionedIndex; @@ -431,19 +430,7 @@ public class PartitionedRegionDataStore implements HasCachePerfStats Object redundancyLock = lockRedundancyLock(moveSource, possiblyFreeBucketId, replaceOffineData); //DAN - I hope this is ok to do without that bucket admin lock - // Take SQLF lock to wait for any ongoing index initializations. - // The lock is taken here in addition to that in - // DistributedRegion#initialize() so as to release only after - // assignBucketRegion() has been invoked (see bug #41877). - // Assumes that the IndexUpdater#lockForGII() lock is re-entrant. - final IndexUpdater indexUpdater = this.partitionedRegion - .getIndexUpdater(); - boolean sqlfIndexLocked = false; try { - if (indexUpdater != null) { - indexUpdater.lockForGII(); - sqlfIndexLocked = true; - } buk.initializePrimaryElector(creationRequestor); if (getPartitionedRegion().getColocatedWith() == null) { buk.getBucketAdvisor().setShadowBucketDestroyed(false); @@ -476,9 +463,6 @@ public class PartitionedRegionDataStore implements HasCachePerfStats } } } finally { - if (sqlfIndexLocked) { - indexUpdater.unlockForGII(); - } releaseRedundancyLock(redundancyLock); if(bukReg == null) { buk.clearPrimaryElector(); http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/ProxyRegionMap.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/ProxyRegionMap.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/ProxyRegionMap.java index ee8e0c8..55d11fc 100644 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/ProxyRegionMap.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/ProxyRegionMap.java @@ -30,7 +30,6 @@ import com.gemstone.gemfire.cache.EntryNotFoundException; import com.gemstone.gemfire.cache.Operation; import com.gemstone.gemfire.cache.TimeoutException; import com.gemstone.gemfire.cache.TransactionId; -import com.gemstone.gemfire.cache.query.internal.IndexUpdater; import com.gemstone.gemfire.distributed.internal.DM; import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember; import com.gemstone.gemfire.internal.ByteArrayDataInput; @@ -56,23 +55,10 @@ import com.gemstone.gemfire.internal.offheap.annotations.Released; */ final class ProxyRegionMap implements RegionMap { - /** An internal Listener for index maintenance for SQLFabric. */ - private final IndexUpdater indexUpdater; - protected ProxyRegionMap(LocalRegion owner, Attributes attr, InternalRegionArguments internalRegionArgs) { this.owner = owner; this.attr = attr; - if (internalRegionArgs != null) { - this.indexUpdater = internalRegionArgs.getIndexUpdater(); - } - else { - this.indexUpdater = null; - } - } - - public final IndexUpdater getIndexUpdater() { - return this.indexUpdater; } /** @@ -249,13 +235,6 @@ final class ProxyRegionMap implements RegionMap { lastModified = // fix for bug 40129 this.owner.basicPutPart2(event, markerEntry, true, lastModified, false /*Clear conflict occurred */); - // invoke SQLFabric index manager if present - final IndexUpdater indexUpdater = getIndexUpdater(); - if (indexUpdater != null) { - // postEvent not required to be invoked since this is currently used - // only for FK checks - indexUpdater.onEvent(this.owner, event, markerEntry); - } this.owner.basicPutPart3(event, markerEntry, true, lastModified, true, ifNew, ifOld, expectedOldValue, requireOldValue); return markerEntry; @@ -399,7 +378,7 @@ final class ProxyRegionMap implements RegionMap { } public void removeEntry(Object key, RegionEntry re, boolean updateStat, - EntryEventImpl event, LocalRegion owner, IndexUpdater indexUpdater) { + EntryEventImpl event, LocalRegion owner) { // nothing to do } http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/QueuedOperation.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/QueuedOperation.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/QueuedOperation.java index 22f9903..7be2bb9 100644 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/QueuedOperation.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/QueuedOperation.java @@ -161,13 +161,7 @@ public class QueuedOperation key = DataSerializer.readObject(in); if (op.isUpdate() || op.isCreate()) { deserializationPolicy = in.readByte(); - if (deserializationPolicy == - DistributedCacheOperation.DESERIALIZATION_POLICY_EAGER) { - valueObj = DataSerializer.readObject(in); - } - else { - value = DataSerializer.readByteArray(in); - } + value = DataSerializer.readByteArray(in); } } return new QueuedOperation(op, key, value, valueObj, deserializationPolicy, @@ -183,13 +177,7 @@ public class QueuedOperation DataSerializer.writeObject(this.key, out); if (this.op.isUpdate() || this.op.isCreate()) { out.writeByte(this.deserializationPolicy); - if (this.deserializationPolicy != - DistributedCacheOperation.DESERIALIZATION_POLICY_EAGER) { - DataSerializer.writeByteArray(this.value, out); - } - else { - DataSerializer.writeObject(this.valueObj, out); - } + DataSerializer.writeByteArray(this.value, out); } } } http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RegionEntry.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RegionEntry.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RegionEntry.java index b35eaa3..48ed5db 100644 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RegionEntry.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RegionEntry.java @@ -379,16 +379,14 @@ public interface RegionEntry { /** * Gets the value for this entry. For DiskRegions, unlike * {@link #getValue(RegionEntryContext)} this will not fault in the value rather - * return a temporary copy. For SQLFabric this is used during table scans in - * queries when faulting in every value will be only an unnecessary overhead. + * return a temporary copy. */ public Object getValueInVMOrDiskWithoutFaultIn(LocalRegion owner); /** * Gets the value for this entry. For DiskRegions, unlike * {@link #getValue(RegionEntryContext)} this will not fault in the value rather - * return a temporary copy. For SQLFabric this is used during table scans in - * queries when faulting in every value will be only an unnecessary overhead. + * return a temporary copy. * The value returned will be kept off heap (and compressed) if possible. */ @Retained http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RegionMap.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RegionMap.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RegionMap.java index a16f1ec..57f8853 100644 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RegionMap.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RegionMap.java @@ -27,7 +27,6 @@ import com.gemstone.gemfire.cache.EntryNotFoundException; import com.gemstone.gemfire.cache.Operation; import com.gemstone.gemfire.cache.TimeoutException; import com.gemstone.gemfire.cache.TransactionId; -import com.gemstone.gemfire.cache.query.internal.IndexUpdater; import com.gemstone.gemfire.internal.cache.lru.LRUMapCallbacks; import com.gemstone.gemfire.internal.cache.tier.sockets.ClientProxyMembershipID; import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember; @@ -355,16 +354,13 @@ public interface RegionMap extends LRUMapCallbacks { /** * Removes the given key if the enclosing RegionEntry is still in this map for - * the given EntryEvent and updating the given {@link IndexUpdater} of the - * region ({@link #getIndexUpdater()}) for the event. + * the given EntryEvent */ public void removeEntry(Object key, RegionEntry re, boolean updateStat, - EntryEventImpl event, LocalRegion owner, IndexUpdater indexUpdater); + EntryEventImpl event, LocalRegion owner); public void copyRecoveredEntries(RegionMap rm); - public IndexUpdater getIndexUpdater(); - /** * Removes an entry that was previously destroyed and made into a tombstone. * http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteContainsKeyValueMessage.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteContainsKeyValueMessage.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteContainsKeyValueMessage.java index a1b5d0c..d5a52d4 100755 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteContainsKeyValueMessage.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteContainsKeyValueMessage.java @@ -123,9 +123,6 @@ public final class RemoteContainsKeyValueMessage extends RemoteOperationMessageW r.waitOnInitialization(); // bug #43371 - accessing a region before it's initialized } - if (r.keyRequiresRegionContext()) { - ((KeyWithRegionContext)this.key).setRegionContext(r); - } final boolean replyVal; if (this.valueCheck) { replyVal = r.containsValueForKey(this.key); http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteDestroyMessage.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteDestroyMessage.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteDestroyMessage.java index 822b317..2bec70f 100755 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteDestroyMessage.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteDestroyMessage.java @@ -357,9 +357,6 @@ public class RemoteDestroyMessage extends RemoteOperationMessageWithDirectReply if (eventSender == null) { eventSender = getSender(); } - if (r.keyRequiresRegionContext()) { - ((KeyWithRegionContext)this.key).setRegionContext(r); - } @Released EntryEventImpl event = null; try { if (this.bridgeContext != null) { @@ -468,8 +465,6 @@ public class RemoteDestroyMessage extends RemoteOperationMessageWithDirectReply if (this.hasOldValue){ //out.writeBoolean(this.hasOldValue); // below boolean is not strictly required, but this is for compatibility - // with SQLFire code which writes as byte here to indicate whether - // oldValue is an object, serialized object or byte[] in.readByte(); setOldValBytes(DataSerializer.readByteArray(in)); } @@ -595,12 +590,8 @@ public class RemoteDestroyMessage extends RemoteOperationMessageWithDirectReply private void setOldValueIsSerialized(boolean isSerialized) { if (isSerialized) { - if (CachedDeserializableFactory.preferObject()) { - this.oldValueIsSerialized = true; //VALUE_IS_OBJECT; - } else { - // Defer serialization until toData is called. - this.oldValueIsSerialized = true; //VALUE_IS_SERIALIZED_OBJECT; - } + // Defer serialization until toData is called. + this.oldValueIsSerialized = true; //VALUE_IS_SERIALIZED_OBJECT; } else { this.oldValueIsSerialized = false; //VALUE_IS_BYTES; } http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteFetchEntryMessage.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteFetchEntryMessage.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteFetchEntryMessage.java index b7cc393..b7a4a81 100755 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteFetchEntryMessage.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteFetchEntryMessage.java @@ -128,9 +128,6 @@ public final class RemoteFetchEntryMessage extends RemoteOperationMessage } EntrySnapshot val; try { - if (r.keyRequiresRegionContext()) { - ((KeyWithRegionContext)this.key).setRegionContext(r); - } final KeyInfo keyInfo = r.getKeyInfo(key); Region.Entry re = r.getDataView().getEntry(keyInfo, r, true); if(re==null) { http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteFetchVersionMessage.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteFetchVersionMessage.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteFetchVersionMessage.java index 21590f6..124c9b5 100644 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteFetchVersionMessage.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteFetchVersionMessage.java @@ -122,9 +122,6 @@ public final class RemoteFetchVersionMessage extends RemoteOperationMessage { } VersionTag tag; try { - if (r.keyRequiresRegionContext()) { - ((KeyWithRegionContext) this.key).setRegionContext(r); - } RegionEntry re = r.getRegionEntry(key); if (re == null) { if (logger.isTraceEnabled(LogMarker.DM)) { http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteGetMessage.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteGetMessage.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteGetMessage.java index 7e2be1f..05d62d4 100755 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteGetMessage.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteGetMessage.java @@ -118,9 +118,6 @@ public final class RemoteGetMessage extends RemoteOperationMessageWithDirectRepl RawValue valueBytes; Object val = null; try { - if (r.keyRequiresRegionContext()) { - ((KeyWithRegionContext)this.key).setRegionContext(r); - } KeyInfo keyInfo = r.getKeyInfo(key, cbArg); val = r.getDataView().getSerializedValue(r, keyInfo, false, this.context, null, false /*for replicate regions*/); valueBytes = val instanceof RawValue ? (RawValue)val : new RawValue(val); http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteInvalidateMessage.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteInvalidateMessage.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteInvalidateMessage.java index f975f6f..a4e020e 100755 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteInvalidateMessage.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemoteInvalidateMessage.java @@ -188,9 +188,6 @@ public final class RemoteInvalidateMessage extends RemoteDestroyMessage { eventSender = getSender(); } final Object key = getKey(); - if (r.keyRequiresRegionContext()) { - ((KeyWithRegionContext)key).setRegionContext(r); - } @Released final EntryEventImpl event = EntryEventImpl.create( r, getOperation(), http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemotePutAllMessage.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemotePutAllMessage.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemotePutAllMessage.java index 045e51c..c0c56c9 100644 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemotePutAllMessage.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemotePutAllMessage.java @@ -82,7 +82,6 @@ public final class RemotePutAllMessage extends RemoteOperationMessageWithDirectR protected static final short HAS_BRIDGE_CONTEXT = UNRESERVED_FLAGS_START; protected static final short SKIP_CALLBACKS = (HAS_BRIDGE_CONTEXT << 1); - protected static final short IS_PUT_DML = (SKIP_CALLBACKS << 1); private EventID eventId; @@ -92,8 +91,6 @@ public final class RemotePutAllMessage extends RemoteOperationMessageWithDirectR // private boolean useOriginRemote; - private boolean isPutDML; - public void addEntry(PutAllEntryData entry) { this.putAllData[this.putAllDataCount++] = entry; } @@ -190,7 +187,6 @@ public final class RemotePutAllMessage extends RemoteOperationMessageWithDirectR this.eventId = event.getEventId(); this.skipCallbacks = skipCallbacks; this.callbackArg = event.getCallbackArgument(); - this.isPutDML = event.isPutDML(); } public RemotePutAllMessage() { @@ -241,7 +237,6 @@ public final class RemotePutAllMessage extends RemoteOperationMessageWithDirectR this.bridgeContext = DataSerializer.readObject(in); } this.skipCallbacks = (flags & SKIP_CALLBACKS) != 0; - this.isPutDML = (flags & IS_PUT_DML) != 0; this.putAllDataCount = (int)InternalDataSerializer.readUnsignedVL(in); this.putAllData = new PutAllEntryData[putAllDataCount]; if (this.putAllDataCount > 0) { @@ -279,10 +274,6 @@ public final class RemotePutAllMessage extends RemoteOperationMessageWithDirectR EntryVersionsList versionTags = new EntryVersionsList(putAllDataCount); boolean hasTags = false; - // get the "keyRequiresRegionContext" flag from first element assuming - // all key objects to be uniform - final boolean requiresRegionContext = - (this.putAllData[0].key instanceof KeyWithRegionContext); for (int i = 0; i < this.putAllDataCount; i++) { if (!hasTags && putAllData[i].versionTag != null) { hasTags = true; @@ -290,7 +281,7 @@ public final class RemotePutAllMessage extends RemoteOperationMessageWithDirectR VersionTag tag = putAllData[i].versionTag; versionTags.add(tag); putAllData[i].versionTag = null; - this.putAllData[i].toData(out, requiresRegionContext); + this.putAllData[i].toData(out); this.putAllData[i].versionTag = tag; } @@ -307,7 +298,6 @@ public final class RemotePutAllMessage extends RemoteOperationMessageWithDirectR if (this.posDup) flags |= POS_DUP; if (this.bridgeContext != null) flags |= HAS_BRIDGE_CONTEXT; if (this.skipCallbacks) flags |= SKIP_CALLBACKS; - if (this.isPutDML) flags |= IS_PUT_DML; return flags; } @@ -370,7 +360,6 @@ public final class RemotePutAllMessage extends RemoteOperationMessageWithDirectR baseEvent.setContext(this.bridgeContext); } baseEvent.setPossibleDuplicate(this.posDup); - baseEvent.setPutDML(this.isPutDML); if (logger.isDebugEnabled()) { logger.debug("RemotePutAllMessage.doLocalPutAll: eventSender is {}, baseEvent is {}, msg is {}", eventSender, baseEvent, this); @@ -384,7 +373,7 @@ public final class RemotePutAllMessage extends RemoteOperationMessageWithDirectR // final boolean requiresRegionContext = dr.keyRequiresRegionContext(); InternalDistributedMember myId = r.getDistributionManager().getDistributionManagerId(); for (int i = 0; i < putAllDataCount; ++i) { - @Released EntryEventImpl ev = PutAllPRMessage.getEventFromEntry(r, myId, eventSender, i, putAllData, false, bridgeContext, posDup, !skipCallbacks, isPutDML); + @Released EntryEventImpl ev = PutAllPRMessage.getEventFromEntry(r, myId, eventSender, i, putAllData, false, bridgeContext, posDup, !skipCallbacks); try { ev.setPutAllOperation(dpao); if (logger.isDebugEnabled()) { http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/880f8648/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemotePutMessage.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemotePutMessage.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemotePutMessage.java index 678927d..34d3585 100755 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemotePutMessage.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/RemotePutMessage.java @@ -135,8 +135,7 @@ public final class RemotePutMessage extends RemoteOperationMessageWithDirectRepl /** * Indicates if and when the new value should be deserialized on the - * the receiver. Distinguishes between Deltas which need to be eagerly - * deserialized (DESERIALIZATION_POLICY_EAGER), a non-byte[] value that was + * the receiver. Distinguishes between a non-byte[] value that was * serialized (DESERIALIZATION_POLICY_LAZY) and a * byte[] array value that didn't need to be serialized * (DESERIALIZATION_POLICY_NONE). While this seems like an extra data, it @@ -252,11 +251,7 @@ public final class RemotePutMessage extends RemoteOperationMessageWithDirectRepl event.setOriginRemote(useOriginRemote); if (event.hasNewValue()) { - if (CachedDeserializableFactory.preferObject() || event.hasDelta()) { - this.deserializationPolicy = DistributedCacheOperation.DESERIALIZATION_POLICY_EAGER; - } else { - this.deserializationPolicy = DistributedCacheOperation.DESERIALIZATION_POLICY_LAZY; - } + this.deserializationPolicy = DistributedCacheOperation.DESERIALIZATION_POLICY_LAZY; event.exportNewValue(this); } else { @@ -568,13 +563,7 @@ public final class RemotePutMessage extends RemoteOperationMessageWithDirectRepl this.oldValueIsSerialized = (in.readByte() == 1); setOldValBytes(DataSerializer.readByteArray(in)); } - if (this.deserializationPolicy == - DistributedCacheOperation.DESERIALIZATION_POLICY_EAGER) { - setValObj(DataSerializer.readObject(in)); - } - else { - setValBytes(DataSerializer.readByteArray(in)); - } + setValBytes(DataSerializer.readByteArray(in)); if ((flags & HAS_DELTA_BYTES) != 0) { this.applyDeltaBytes = true; this.deltaBytes = DataSerializer.readByteArray(in); @@ -681,9 +670,6 @@ public final class RemotePutMessage extends RemoteOperationMessageWithDirectRepl if (eventSender == null) { eventSender = getSender(); } - if (r.keyRequiresRegionContext()) { - ((KeyWithRegionContext)this.key).setRegionContext(r); - } @Released EntryEventImpl eei = EntryEventImpl.create( r, getOperation(), @@ -732,10 +718,6 @@ public final class RemotePutMessage extends RemoteOperationMessageWithDirectRepl case DistributedCacheOperation.DESERIALIZATION_POLICY_NONE: event.setNewValue(getValBytes()); break; - case DistributedCacheOperation.DESERIALIZATION_POLICY_EAGER: - // new value is a Delta - event.setNewValue(this.valObj); // sets the delta field - break; default: throw new AssertionError("unknown deserialization policy: " + deserializationPolicy); @@ -1212,12 +1194,8 @@ public final class RemotePutMessage extends RemoteOperationMessageWithDirectRepl private void setOldValueIsSerialized(boolean isSerialized) { if (isSerialized) { - if (CachedDeserializableFactory.preferObject()) { - this.oldValueIsSerialized = true; //VALUE_IS_OBJECT; - } else { - // Defer serialization until toData is called. - this.oldValueIsSerialized = true; //VALUE_IS_SERIALIZED_OBJECT; - } + // Defer serialization until toData is called. + this.oldValueIsSerialized = true; //VALUE_IS_SERIALIZED_OBJECT; } else { this.oldValueIsSerialized = false; //VALUE_IS_BYTES; }