voldemort.store.invalidmetadata
Class InvalidMetadataCheckingStore

java.lang.Object
  extended by voldemort.store.AbstractStore<K,V,T>
      extended by voldemort.store.DelegatingStore<ByteArray,byte[],byte[]>
          extended by voldemort.store.invalidmetadata.InvalidMetadataCheckingStore
All Implemented Interfaces:
Store<ByteArray,byte[],byte[]>

public class InvalidMetadataCheckingStore
extends DelegatingStore<ByteArray,byte[],byte[]>

An InvalidMetadataCheckingStore store is a store wrapper that delegates to an inner store, and throws InvalidMetadataException if a client requests a partition which is not or should not be available at this node.


Constructor Summary
InvalidMetadataCheckingStore(int nodeId, Store<ByteArray,byte[],byte[]> innerStore, MetadataStore metadata)
          Create a store which delegates its operations to its inner store and throws InvalidMetadataException if the partition for key requested should not lie with this node.
 
Method Summary
 boolean delete(ByteArray key, Version version)
          Delete all entries prior to the given version
 java.util.List<Versioned<byte[]>> get(ByteArray key, byte[] transforms)
          Get the value associated with the given key
 java.util.Map<ByteArray,java.util.List<Versioned<byte[]>>> getAll(java.lang.Iterable<ByteArray> keys, java.util.Map<ByteArray,byte[]> transforms)
          Get the values associated with the given keys and returns them in a Map of keys to a list of versioned values.
 void put(ByteArray key, Versioned<byte[]> value, byte[] transforms)
          Associate the value with the key and version in this store
 
Methods inherited from class voldemort.store.DelegatingStore
close, delete, get, getAll, getCapability, getInnerStore, getVersions, put, toString
 
Methods inherited from class voldemort.store.AbstractStore
getName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

InvalidMetadataCheckingStore

public InvalidMetadataCheckingStore(int nodeId,
                                    Store<ByteArray,byte[],byte[]> innerStore,
                                    MetadataStore metadata)
Create a store which delegates its operations to its inner store and throws InvalidMetadataException if the partition for key requested should not lie with this node.

Parameters:
nodeId - The id of the destination node
innerStore - The store which we delegate write operations to if everything is good
metadata - The metadata store
Method Detail

delete

public boolean delete(ByteArray key,
                      Version version)
               throws VoldemortException
Description copied from interface: Store
Delete all entries prior to the given version

Specified by:
delete in interface Store<ByteArray,byte[],byte[]>
Overrides:
delete in class DelegatingStore<ByteArray,byte[],byte[]>
Parameters:
key - The key to delete
version - The current value of the key
Returns:
True if anything was deleted
Throws:
VoldemortException

getAll

public java.util.Map<ByteArray,java.util.List<Versioned<byte[]>>> getAll(java.lang.Iterable<ByteArray> keys,
                                                                         java.util.Map<ByteArray,byte[]> transforms)
                                                                  throws VoldemortException
Description copied from interface: Store
Get the values associated with the given keys and returns them in a Map of keys to a list of versioned values. Note that the returned map will only contain entries for the keys which have a value associated with them.

Specified by:
getAll in interface Store<ByteArray,byte[],byte[]>
Overrides:
getAll in class DelegatingStore<ByteArray,byte[],byte[]>
Parameters:
keys - The keys to check for.
Returns:
A Map of keys to a list of versioned values.
Throws:
VoldemortException

put

public void put(ByteArray key,
                Versioned<byte[]> value,
                byte[] transforms)
         throws VoldemortException
Description copied from interface: Store
Associate the value with the key and version in this store

Specified by:
put in interface Store<ByteArray,byte[],byte[]>
Overrides:
put in class DelegatingStore<ByteArray,byte[],byte[]>
Parameters:
key - The key to use
value - The value to store and its version.
Throws:
VoldemortException

get

public java.util.List<Versioned<byte[]>> get(ByteArray key,
                                             byte[] transforms)
                                      throws VoldemortException
Description copied from interface: Store
Get the value associated with the given key

Specified by:
get in interface Store<ByteArray,byte[],byte[]>
Overrides:
get in class DelegatingStore<ByteArray,byte[],byte[]>
Parameters:
key - The key to check for
Returns:
The value associated with the key or an empty list if no values are found.
Throws:
VoldemortException


Jay Kreps, Roshan Sumbaly, Alex Feinberg, Bhupesh Bansal, Lei Gao, Chinmay Soman, Vinoth Chandar, Zhongjie Wu