org.apache.accumulo.server.tabletserver
Class NativeMap

java.lang.Object
  extended by org.apache.accumulo.server.tabletserver.NativeMap
All Implemented Interfaces:
Iterable<Map.Entry<Key,Value>>

public class NativeMap
extends Object
implements Iterable<Map.Entry<Key,Value>>

This class stores data in a C++ map. Doing this allows us to store more in memory and avoid pauses caused by Java GC. The strategy for dealing with native memory allocated for the native map is that java code using the native map should call delete() as soon as it is finished using the native map. When the NativeMap object is garbage collected its native resources will be released if needed. However waiting for java GC would be a mistake for long lived NativeMaps. Long lived objects are not garbage collected quickly, therefore a process could easily use too much memory.


Constructor Summary
NativeMap()
           
 
Method Summary
 void delete()
           
protected  void finalize()
           
 Value get(Key key)
           
 long getMemoryUsed()
           
static String getNativeLibPath()
           
 Iterator<Map.Entry<Key,Value>> iterator()
           
 Iterator<Map.Entry<Key,Value>> iterator(Key startKey)
           
static boolean loadedNativeLibraries()
           
static void loadNativeLib(String nativeLib)
           
 void mutate(List<Mutation> mutations, int mutationCount)
           
 void mutate(Mutation mutation, int mutationCount)
           
 void put(Key key, Value value)
           
 int size()
           
 SortedKeyValueIterator<Key,Value> skvIterator()
           
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NativeMap

public NativeMap()
Method Detail

getNativeLibPath

public static String getNativeLibPath()

loadNativeLib

public static void loadNativeLib(String nativeLib)

loadedNativeLibraries

public static boolean loadedNativeLibraries()

finalize

protected void finalize()
                 throws Throwable
Overrides:
finalize in class Object
Throws:
Throwable

mutate

public void mutate(Mutation mutation,
                   int mutationCount)

mutate

public void mutate(List<Mutation> mutations,
                   int mutationCount)

put

public void put(Key key,
                Value value)

get

public Value get(Key key)

size

public int size()

getMemoryUsed

public long getMemoryUsed()

iterator

public Iterator<Map.Entry<Key,Value>> iterator()
Specified by:
iterator in interface Iterable<Map.Entry<Key,Value>>

iterator

public Iterator<Map.Entry<Key,Value>> iterator(Key startKey)

delete

public void delete()

skvIterator

public SortedKeyValueIterator<Key,Value> skvIterator()


Copyright © 2012 The Apache Software Foundation. All Rights Reserved.