public class DynamoDBDelegate
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static int |
BASE_LOGICAL_SIZE_OF_NESTED_TYPES |
static java.lang.String |
BATCH_WRITE_ITEM |
static java.lang.String |
CONNECTION_RESET |
static java.lang.String |
CREATE_TABLE |
static java.lang.String |
DELETE_ITEM |
static java.lang.String |
DELETE_TABLE |
static java.lang.String |
DESCRIBE_TABLE |
static java.lang.String |
GET_ITEM |
static java.lang.String |
HASH_RANGE_KEY_SIZE_LIMIT |
protected static int |
LOGICAL_SIZE_OF_EMPTY_DOCUMENT |
static int |
MAX_NUMBER_OF_BYTES_FOR_NUMBER |
static java.lang.String |
MUTATE_ITEM |
static int |
ONE_KILOBYTE |
static int |
ONE_KILOBYTE_MINUS_ONE |
static java.lang.String |
PAGES |
static java.lang.String |
PUT_ITEM |
static java.lang.String |
QUERY |
static java.lang.String |
SCAN |
static java.lang.String |
SUBSCRIBER_THROUGHPUT_LIMIT |
static java.lang.String |
TITAN_USER_AGENT |
static java.lang.String |
UPDATE_ITEM |
static java.lang.String |
UPDATE_ITEM_SIZE_LIMIT |
static java.lang.String |
USER_AGENT |
static java.lang.String |
VALIDATION_EXCEPTION |
| Constructor and Description |
|---|
DynamoDBDelegate(java.lang.String endpoint,
AWSCredentialsProvider provider,
ClientConfiguration clientConfig,
com.thinkaurelius.titan.diskstorage.configuration.Configuration titanConfig,
java.util.Map<java.lang.String,com.google.common.util.concurrent.RateLimiter> readRateLimit,
java.util.Map<java.lang.String,com.google.common.util.concurrent.RateLimiter> writeRateLimit,
long maxRetries,
long retryMillis,
java.lang.String prefix,
java.lang.String metricsPrefix,
com.google.common.util.concurrent.RateLimiter controlPlaneRateLimiter) |
| Modifier and Type | Method and Description |
|---|---|
static boolean |
areGSIsSameConfiguration(GlobalSecondaryIndexDescription g1,
GlobalSecondaryIndexDescription g2) |
static boolean |
areGSIsSameConfiguration(java.util.List<GlobalSecondaryIndexDescription> g1,
java.util.List<GlobalSecondaryIndexDescription> g2) |
BatchWriteItemResult |
batchWriteItem(BatchWriteItemRequest batchRequest) |
static int |
calculateItemSizeInBytes(java.util.Map<java.lang.String,AttributeValue> item) |
static int |
calculateItemUpdateSizeInBytes(java.util.Map<java.lang.String,AttributeValueUpdate> item) |
static AttributeValue |
clone(AttributeValue val,
java.util.IdentityHashMap<AttributeValue,AttributeValue> sourceDestinationMap)
Helper method that can clone an Attribute Value
|
static java.util.Map<java.lang.String,AttributeValue> |
cloneItem(java.util.Map<java.lang.String,AttributeValue> item)
Helper method that clones an item
|
static int |
computeWcu(int bytes) |
static ScanRequest |
copyScanRequest(ScanRequest request) |
CreateTableResult |
createTable(CreateTableRequest request) |
void |
createTableAndWaitForActive(CreateTableRequest request) |
DeleteItemResult |
deleteItem(DeleteItemRequest request) |
DeleteTableResult |
deleteTable(DeleteTableRequest request) |
DeleteTableResult |
deleteTable(java.lang.String tableName) |
DescribeTableResult |
describeTable(DescribeTableRequest request) |
TableDescription |
describeTable(java.lang.String tableName) |
boolean |
ensureTableDeleted(java.lang.String tableName) |
int |
estimateCapacityUnits(java.lang.String apiName,
java.lang.String tableName) |
com.codahale.metrics.Histogram |
getBytesHistogram(java.lang.String apiName,
java.lang.String tableName) |
com.codahale.metrics.Meter |
getConsumedCapacityMeter(java.lang.String apiName,
java.lang.String tableName) |
com.codahale.metrics.Histogram |
getHistogram(java.lang.String apiName,
java.lang.String tableName,
java.lang.String quantity) |
GetItemResult |
getItem(GetItemRequest request) |
java.lang.String |
getItemCountMeterName(java.lang.String apiName,
java.lang.String tableName) |
java.lang.String |
getListTablesApiName() |
int |
getMaxConcurrentUsers() |
long |
getMaxRetries() |
com.codahale.metrics.Meter |
getMeter(java.lang.String meterName) |
java.lang.String |
getMeterName(java.lang.String apiName,
java.lang.String tableName) |
com.codahale.metrics.Histogram |
getPagesHistogram(java.lang.String apiName,
java.lang.String tableName) |
ParallelScanner |
getParallelScanCompletionService(ScanRequest initialRequest) |
com.codahale.metrics.Meter |
getQuantityMeter(java.lang.String apiName,
java.lang.String tableName,
java.lang.String quantity) |
java.lang.String |
getQuantityName(java.lang.String apiName,
java.lang.String tableName,
java.lang.String quantity) |
long |
getRetryMillis() |
com.codahale.metrics.Timer |
getTimer(java.lang.String apiName,
java.lang.String tableName) |
com.codahale.metrics.Timer.Context |
getTimerContext(java.lang.String apiName,
java.lang.String tableName) |
void |
interruptibleSleep(long millis) |
boolean |
isEmbedded() |
ListTablesResult |
listAllTables() |
ListTablesResult |
listTables(ListTablesRequest request) |
void |
measureItemCount(java.lang.String apiName,
java.lang.String tableName,
long itemCount) |
void |
meterConsumedCapacity(java.lang.String apiName,
ConsumedCapacity ccu) |
java.util.Map<com.thinkaurelius.titan.diskstorage.StaticBuffer,GetItemResult> |
parallelGetItem(java.util.List<GetItemWorker> workers) |
void |
parallelMutate(java.util.List<MutateWorker> workers) |
java.util.List<QueryResultWrapper> |
parallelQuery(java.util.List<QueryWorker> queryWorkers) |
com.thinkaurelius.titan.diskstorage.BackendException |
processDynamoDBAPIException(java.lang.Throwable e,
java.lang.String apiName,
java.lang.String tableName) |
PutItemResult |
putItem(PutItemRequest request) |
QueryResult |
query(QueryRequest request,
int permitsToConsume) |
com.google.common.util.concurrent.RateLimiter |
readRateLimit(java.lang.String tableName) |
ScanResult |
scan(ScanRequest request,
int permitsToConsume) |
java.util.concurrent.Future<ScanResult> |
scanAsync(ScanRequest request,
int permitsToConsume) |
void |
shutdown() |
com.thinkaurelius.titan.diskstorage.BackendException |
unwrapExecutionException(java.util.concurrent.ExecutionException e,
java.lang.String apiName) |
UpdateItemResult |
updateItem(UpdateItemRequest request) |
void |
updatePagesHistogram(java.lang.String apiName,
java.lang.String tableName,
int pagesProcessed) |
boolean |
waitForTableCreation(java.lang.String tableName,
boolean verifyIndexesList,
java.util.List<LocalSecondaryIndexDescription> expectedLsiList,
java.util.List<GlobalSecondaryIndexDescription> expectedGsiList) |
com.google.common.util.concurrent.RateLimiter |
writeRateLimit(java.lang.String tableName) |
public static final java.lang.String PAGES
public static final java.lang.String CREATE_TABLE
public static final java.lang.String DELETE_TABLE
public static final java.lang.String CONNECTION_RESET
public static final java.lang.String MUTATE_ITEM
public static final java.lang.String SUBSCRIBER_THROUGHPUT_LIMIT
public static final java.lang.String HASH_RANGE_KEY_SIZE_LIMIT
public static final java.lang.String UPDATE_ITEM_SIZE_LIMIT
public static final java.lang.String VALIDATION_EXCEPTION
public static final java.lang.String USER_AGENT
public static final java.lang.String TITAN_USER_AGENT
public static final java.lang.String PUT_ITEM
public static final java.lang.String UPDATE_ITEM
public static final java.lang.String DELETE_ITEM
public static final java.lang.String QUERY
public static final java.lang.String BATCH_WRITE_ITEM
public static final java.lang.String GET_ITEM
public static final java.lang.String DESCRIBE_TABLE
public static final java.lang.String SCAN
public static final int ONE_KILOBYTE
public static final int ONE_KILOBYTE_MINUS_ONE
public static final int BASE_LOGICAL_SIZE_OF_NESTED_TYPES
protected static int LOGICAL_SIZE_OF_EMPTY_DOCUMENT
public static final int MAX_NUMBER_OF_BYTES_FOR_NUMBER
public DynamoDBDelegate(java.lang.String endpoint,
AWSCredentialsProvider provider,
ClientConfiguration clientConfig,
com.thinkaurelius.titan.diskstorage.configuration.Configuration titanConfig,
java.util.Map<java.lang.String,com.google.common.util.concurrent.RateLimiter> readRateLimit,
java.util.Map<java.lang.String,com.google.common.util.concurrent.RateLimiter> writeRateLimit,
long maxRetries,
long retryMillis,
java.lang.String prefix,
java.lang.String metricsPrefix,
com.google.common.util.concurrent.RateLimiter controlPlaneRateLimiter)
public com.thinkaurelius.titan.diskstorage.BackendException processDynamoDBAPIException(java.lang.Throwable e,
java.lang.String apiName,
java.lang.String tableName)
public ScanResult scan(ScanRequest request, int permitsToConsume) throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic ParallelScanner getParallelScanCompletionService(ScanRequest initialRequest) throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic java.util.concurrent.Future<ScanResult> scanAsync(ScanRequest request, int permitsToConsume)
public static ScanRequest copyScanRequest(ScanRequest request)
public void parallelMutate(java.util.List<MutateWorker> workers) throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic java.util.List<QueryResultWrapper> parallelQuery(java.util.List<QueryWorker> queryWorkers) throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic java.util.Map<com.thinkaurelius.titan.diskstorage.StaticBuffer,GetItemResult> parallelGetItem(java.util.List<GetItemWorker> workers) throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic com.thinkaurelius.titan.diskstorage.BackendException unwrapExecutionException(java.util.concurrent.ExecutionException e,
java.lang.String apiName)
public GetItemResult getItem(GetItemRequest request) throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic BatchWriteItemResult batchWriteItem(BatchWriteItemRequest batchRequest) throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic QueryResult query(QueryRequest request, int permitsToConsume) throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic PutItemResult putItem(PutItemRequest request) throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic UpdateItemResult updateItem(UpdateItemRequest request) throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic DeleteItemResult deleteItem(DeleteItemRequest request) throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic int estimateCapacityUnits(java.lang.String apiName,
java.lang.String tableName)
public com.google.common.util.concurrent.RateLimiter readRateLimit(java.lang.String tableName)
public com.google.common.util.concurrent.RateLimiter writeRateLimit(java.lang.String tableName)
public ListTablesResult listTables(ListTablesRequest request) throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic ListTablesResult listAllTables() throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic TableDescription describeTable(java.lang.String tableName) throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic DescribeTableResult describeTable(DescribeTableRequest request) throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic DeleteTableResult deleteTable(DeleteTableRequest request) throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic void interruptibleSleep(long millis)
public boolean ensureTableDeleted(java.lang.String tableName)
throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic DeleteTableResult deleteTable(java.lang.String tableName) throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic CreateTableResult createTable(CreateTableRequest request) throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic boolean waitForTableCreation(java.lang.String tableName,
boolean verifyIndexesList,
java.util.List<LocalSecondaryIndexDescription> expectedLsiList,
java.util.List<GlobalSecondaryIndexDescription> expectedGsiList)
throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic static boolean areGSIsSameConfiguration(java.util.List<GlobalSecondaryIndexDescription> g1, java.util.List<GlobalSecondaryIndexDescription> g2)
public static boolean areGSIsSameConfiguration(GlobalSecondaryIndexDescription g1, GlobalSecondaryIndexDescription g2)
public void createTableAndWaitForActive(CreateTableRequest request) throws com.thinkaurelius.titan.diskstorage.BackendException
com.thinkaurelius.titan.diskstorage.BackendExceptionpublic void shutdown()
public final com.codahale.metrics.Timer getTimer(java.lang.String apiName,
java.lang.String tableName)
public final com.codahale.metrics.Timer.Context getTimerContext(java.lang.String apiName,
java.lang.String tableName)
public final com.codahale.metrics.Meter getMeter(java.lang.String meterName)
public final java.lang.String getItemCountMeterName(java.lang.String apiName,
java.lang.String tableName)
public final void measureItemCount(java.lang.String apiName,
java.lang.String tableName,
long itemCount)
public final void meterConsumedCapacity(java.lang.String apiName,
ConsumedCapacity ccu)
public final java.lang.String getQuantityName(java.lang.String apiName,
java.lang.String tableName,
java.lang.String quantity)
public final com.codahale.metrics.Meter getQuantityMeter(java.lang.String apiName,
java.lang.String tableName,
java.lang.String quantity)
public final com.codahale.metrics.Meter getConsumedCapacityMeter(java.lang.String apiName,
java.lang.String tableName)
public final com.codahale.metrics.Histogram getBytesHistogram(java.lang.String apiName,
java.lang.String tableName)
public final com.codahale.metrics.Histogram getHistogram(java.lang.String apiName,
java.lang.String tableName,
java.lang.String quantity)
public final com.codahale.metrics.Histogram getPagesHistogram(java.lang.String apiName,
java.lang.String tableName)
public final void updatePagesHistogram(java.lang.String apiName,
java.lang.String tableName,
int pagesProcessed)
public final java.lang.String getMeterName(java.lang.String apiName,
java.lang.String tableName)
public final int getMaxConcurrentUsers()
public static java.util.Map<java.lang.String,AttributeValue> cloneItem(java.util.Map<java.lang.String,AttributeValue> item)
item - the item to clonepublic static AttributeValue clone(AttributeValue val, java.util.IdentityHashMap<AttributeValue,AttributeValue> sourceDestinationMap)
val - the AttributeValue to copysourceDestinationMap - used to avoid loops by keeping track of referencespublic static final int computeWcu(int bytes)
public static int calculateItemUpdateSizeInBytes(java.util.Map<java.lang.String,AttributeValueUpdate> item)
public static int calculateItemSizeInBytes(java.util.Map<java.lang.String,AttributeValue> item)
public long getMaxRetries()
public long getRetryMillis()
public boolean isEmbedded()
public java.lang.String getListTablesApiName()