public VALUE remove(KEY key) { Preconditions.checkNotNull(key); Long timeStamp = keyToTimeStamp.get(key); if (timeStamp != null) { keyToTimeStamp.remove(key); Set<KEY> keys = timeStampToKey.get(timeStamp); keys.remove(key); } changed.remove(key); return keyToValue.remove(key); }
public VALUE put(long timeStamp, KEY key, VALUE value) { Preconditions.checkNotNull(key); Preconditions.checkNotNull(value); changed.add(key); Long oldTimeStamp = keyToTimeStamp.put(key, timeStamp); if (oldTimeStamp == null || oldTimeStamp != timeStamp) { Set<KEY> keys = timeStampToKey.get(timeStamp); if (keys == null) { keys = Sets.newHashSet(); timeStampToKey.put(timeStamp, keys); } keys.add(key); } if (oldTimeStamp != null) { timeStampToKey.get(oldTimeStamp).remove(key); } return keyToValue.put(key, value); }
public void removeExcess() { int currentSize = keyToValue.size(); while (currentSize > flushedSize) { long firstKey = timeStampToKey.firstLongKey(); Set<KEY> keys = timeStampToKey.get(firstKey); Iterator<KEY> keyIterator = keys.iterator(); while (keyIterator.hasNext() && currentSize > flushedSize) { KEY key = keyIterator.next(); VALUE value = keyToValue.remove(key); if (value == null) { continue; } currentSize--; changed.remove(key); keyToTimeStamp.remove(key); flushListener.flush(key, value); } if (keys.isEmpty()) { timeStampToKey.remove(firstKey); } } }
seenIntTerms.add(term); IntArrayList docList = myIntTerms.get(term); if (docList == null) { myIntTerms.put(term, docList = new IntArrayList());
if ( ( o = replicae.get( point ) ) != null ) { if ( o != bucket ) { // o == bucket should happen with very low probability. if ( o instanceof ObjectAVLTreeSet ) ( (ObjectAVLTreeSet<T>)o ).add( bucket );