You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by dl...@apache.org on 2016/04/12 15:58:26 UTC

[09/39] accumulo git commit: Merge branch '1.6' into 1.7

Merge branch '1.6' into 1.7

Conflicts:
	server/tserver/src/main/java/org/apache/accumulo/tserver/InMemoryMap.java


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/f181cf6a
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/f181cf6a
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/f181cf6a

Branch: refs/heads/ACCUMULO-4173
Commit: f181cf6a90a913e5453352a56d3ab470f15b068c
Parents: 2b286ba 41e002d
Author: Josh Elser <el...@apache.org>
Authored: Fri Apr 1 09:56:17 2016 -0400
Committer: Josh Elser <el...@apache.org>
Committed: Fri Apr 1 09:56:17 2016 -0400

----------------------------------------------------------------------
 .../apache/accumulo/tserver/InMemoryMap.java    |  28 +-
 .../org/apache/accumulo/tserver/MemKey.java     |  10 +-
 .../accumulo/tserver/MemKeyComparator.java      |   2 +-
 .../org/apache/accumulo/tserver/NativeMap.java  |  27 +-
 .../PartialMutationSkippingIterator.java        |   2 +-
 .../org/apache/accumulo/test/InMemoryMapIT.java | 319 +++++++++++++++++++
 6 files changed, 362 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/f181cf6a/server/tserver/src/main/java/org/apache/accumulo/tserver/InMemoryMap.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/accumulo/blob/f181cf6a/server/tserver/src/main/java/org/apache/accumulo/tserver/MemKey.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/accumulo/blob/f181cf6a/server/tserver/src/main/java/org/apache/accumulo/tserver/MemKeyComparator.java
----------------------------------------------------------------------
diff --cc server/tserver/src/main/java/org/apache/accumulo/tserver/MemKeyComparator.java
index 739b923,0000000..a623cac
mode 100644,000000..100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/MemKeyComparator.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/MemKeyComparator.java
@@@ -1,44 -1,0 +1,44 @@@
 +/*
 + * 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.accumulo.tserver;
 +
 +import java.io.Serializable;
 +import java.util.Comparator;
 +
 +import org.apache.accumulo.core.data.Key;
 +
 +class MemKeyComparator implements Comparator<Key>, Serializable {
 +
 +  private static final long serialVersionUID = 1L;
 +
 +  @Override
 +  public int compare(Key k1, Key k2) {
 +    int cmp = k1.compareTo(k2);
 +
 +    if (cmp == 0) {
 +      if (k1 instanceof MemKey)
 +        if (k2 instanceof MemKey)
-           cmp = ((MemKey) k2).kvCount - ((MemKey) k1).kvCount;
++          cmp = ((MemKey) k2).getKVCount() - ((MemKey) k1).getKVCount();
 +        else
 +          cmp = 1;
 +      else if (k2 instanceof MemKey)
 +        cmp = -1;
 +    }
 +
 +    return cmp;
 +  }
 +}

http://git-wip-us.apache.org/repos/asf/accumulo/blob/f181cf6a/server/tserver/src/main/java/org/apache/accumulo/tserver/NativeMap.java
----------------------------------------------------------------------
diff --cc server/tserver/src/main/java/org/apache/accumulo/tserver/NativeMap.java
index 6eb8e4e,7e1435e..a6f7cf1
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/NativeMap.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/NativeMap.java
@@@ -502,29 -531,17 +503,18 @@@ public class NativeMap implements Itera
        long uid = startUpdate(nmPointer, mutation.getRow());
        for (ColumnUpdate update : updates) {
          update(nmPointer, uid, update.getColumnFamily(), update.getColumnQualifier(), update.getColumnVisibility(), update.getTimestamp(), update.isDeleted(),
-             update.getValue(), mutationCount);
+             update.getValue(), mutationCount++);
        }
- 
      }
+     return mutationCount;
    }
  
 +  @VisibleForTesting
    public void mutate(Mutation mutation, int mutationCount) {
-     wlock.lock();
-     try {
-       if (nmPointer == 0) {
-         throw new IllegalStateException("Native Map Deleted");
-       }
- 
-       modCount++;
- 
-       _mutate(mutation, mutationCount);
-     } finally {
-       wlock.unlock();
-     }
+     mutate(Collections.singletonList(mutation), mutationCount);
    }
  
 -  public void mutate(List<Mutation> mutations, int mutationCount) {
 +  void mutate(List<Mutation> mutations, int mutationCount) {
      Iterator<Mutation> iter = mutations.iterator();
  
      while (iter.hasNext()) {

http://git-wip-us.apache.org/repos/asf/accumulo/blob/f181cf6a/server/tserver/src/main/java/org/apache/accumulo/tserver/PartialMutationSkippingIterator.java
----------------------------------------------------------------------
diff --cc server/tserver/src/main/java/org/apache/accumulo/tserver/PartialMutationSkippingIterator.java
index 5d0733b,0000000..3373c88
mode 100644,000000..100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/PartialMutationSkippingIterator.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/PartialMutationSkippingIterator.java
@@@ -1,54 -1,0 +1,54 @@@
 +/*
 + * 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.accumulo.tserver;
 +
 +import java.io.IOException;
 +import java.util.concurrent.atomic.AtomicBoolean;
 +
 +import org.apache.accumulo.core.data.Key;
 +import org.apache.accumulo.core.data.Value;
 +import org.apache.accumulo.core.iterators.IteratorEnvironment;
 +import org.apache.accumulo.core.iterators.SkippingIterator;
 +import org.apache.accumulo.core.iterators.SortedKeyValueIterator;
 +import org.apache.accumulo.core.iterators.system.InterruptibleIterator;
 +
 +class PartialMutationSkippingIterator extends SkippingIterator implements InterruptibleIterator {
 +
 +  private int kvCount;
 +
 +  public PartialMutationSkippingIterator(SortedKeyValueIterator<Key,Value> source, int maxKVCount) {
 +    setSource(source);
 +    this.kvCount = maxKVCount;
 +  }
 +
 +  @Override
 +  protected void consume() throws IOException {
-     while (getSource().hasTop() && ((MemKey) getSource().getTopKey()).kvCount > kvCount)
++    while (getSource().hasTop() && ((MemKey) getSource().getTopKey()).getKVCount() > kvCount)
 +      getSource().next();
 +  }
 +
 +  @Override
 +  public SortedKeyValueIterator<Key,Value> deepCopy(IteratorEnvironment env) {
 +    return new PartialMutationSkippingIterator(getSource().deepCopy(env), kvCount);
 +  }
 +
 +  @Override
 +  public void setInterruptFlag(AtomicBoolean flag) {
 +    ((InterruptibleIterator) getSource()).setInterruptFlag(flag);
 +  }
 +
 +}