public abstract class LocalDatastoreService
extends java.lang.Object
This is a memory-based implementation which can persist itself to disk through a batch operation.
TODO(b/27737489) Improve this implementation such that it's backed by something like Derby (which is bundled with the JDK), perhaps in "iteration 2".
This class is no longer a com.google.appengine.tools.development.LocalRpcService
,
however it is still called a service for backwards compatibility.
Modifier and Type | Class and Description |
---|---|
static class |
LocalDatastoreService.AutoIdAllocationPolicy
The set of supported values for autoIdAllocationPolicy, which controls how auto IDs are
assigned by put().
|
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
AUTO_ID_ALLOCATION_POLICY_PROPERTY |
static java.lang.String |
BACKING_STORE_PROPERTY
Where to read/store the datastore from/to.
|
static java.lang.String |
EMULATE_VNEXT_FEATURES
True to emulate Datastore vnext features.
|
static java.lang.String |
FORCE_IS_HIGH_REP_PROPERTY
If this property exists we consider the datastore to be high replication independent of the
high rep job policy.
|
static java.lang.String |
HIGH_REP_JOB_POLICY_CLASS_PROPERTY
The fully-qualifed name of a class that implements
HighRepJobPolicy and has a no-arg
constructor. |
static java.lang.String |
INDEX_CONFIGURATION_FORMAT_PROPERTY |
static int |
MAX_EG_PER_TXN
The maximum number of entity groups in a transaction.
|
static java.lang.String |
MAX_QUERY_LIFETIME_PROPERTY
How long a query can stay "live" before we expire it.
|
static int |
MAX_QUERY_RESULTS |
static java.lang.String |
MAX_TRANSACTION_LIFETIME_PROPERTY
How long a transaction can stay "live" before we expire it.
|
static java.lang.String |
NO_INDEX_AUTO_GEN_PROP
True to prevent the datastore from writing
com.google.apphosting.utils.config.IndexesXmlReader#GENERATED_INDEX_FILENAME . |
static java.lang.String |
NO_STORAGE_PROPERTY
True to put the datastore into "memory-only" mode.
|
static java.lang.String |
PACKAGE
The package name for this service.
|
static java.lang.String |
STORE_DELAY_PROPERTY
How long to wait before updating the persistent store in milliseconds.
|
Constructor and Description |
---|
LocalDatastoreService() |
Modifier and Type | Method and Description |
---|---|
protected abstract void |
addActionImpl(TaskQueueAddRequest action)
Calls the add method on the taskqueue service.
|
VoidProto |
addActions(Status status,
TaskQueueBulkAddRequest request) |
AllocateIdsResponse |
allocateIds(Status status,
AllocateIdsRequest req) |
Transaction |
beginTransaction(Status status,
BeginTransactionRequest req) |
void |
clearProfiles()
Clear out the in-memory datastore.
|
void |
clearQueryHistory()
Clear out the query history that we use for generating indexes.
|
CommitResponse |
commit(Status status,
Transaction req) |
Integer64Proto |
createIndex(Status status,
CompositeIndex req) |
DeleteResponse |
delete(Status status,
DeleteRequest request) |
VoidProto |
deleteCursor(Status status,
Cursor request) |
DeleteResponse |
deleteImpl(Status status,
DeleteRequest request) |
VoidProto |
deleteIndex(Status status,
CompositeIndex req) |
void |
enableScatterProperty(boolean enable) |
GetResponse |
get(Status status,
GetRequest request) |
java.lang.Double |
getDefaultDeadline(boolean isOfflineRequest) |
CompositeIndices |
getIndices(Status status,
StringProto req) |
java.lang.Double |
getMaximumDeadline(boolean isOfflineRequest) |
java.lang.String |
getPackage() |
void |
init(java.io.File appDirectory,
Clock clock,
java.util.Map<java.lang.String,java.lang.String> properties) |
void |
init(LocalServiceContext context,
java.util.Map<java.lang.String,java.lang.String> properties) |
QueryResult |
next(Status status,
NextRequest request) |
PutResponse |
put(Status status,
PutRequest request) |
PutResponse |
putImpl(Status status,
PutRequest request) |
VoidProto |
rollback(Status status,
Transaction req) |
QueryResult |
runQuery(Status status,
Query query) |
void |
setBackingStore(java.lang.String backingStore) |
void |
setMaxQueryLifetime(int milliseconds) |
void |
setMaxTransactionLifetime(int milliseconds) |
void |
setNoStorage(boolean noStorage) |
void |
setStoreDelay(int delayMs) |
void |
start() |
void |
stop() |
VoidProto |
updateIndex(Status status,
CompositeIndex req) |
public static final int MAX_QUERY_RESULTS
public static final java.lang.String PACKAGE
public static final java.lang.String MAX_QUERY_LIFETIME_PROPERTY
public static final java.lang.String MAX_TRANSACTION_LIFETIME_PROPERTY
public static final java.lang.String STORE_DELAY_PROPERTY
public static final int MAX_EG_PER_TXN
public static final java.lang.String BACKING_STORE_PROPERTY
public static final java.lang.String EMULATE_VNEXT_FEATURES
HighRepJobPolicy
policies are disallowed while this flag is true.public static final java.lang.String NO_INDEX_AUTO_GEN_PROP
com.google.apphosting.utils.config.IndexesXmlReader#GENERATED_INDEX_FILENAME
.public static final java.lang.String NO_STORAGE_PROPERTY
public static final java.lang.String HIGH_REP_JOB_POLICY_CLASS_PROPERTY
HighRepJobPolicy
and has a no-arg
constructor. If not provided we use a DefaultHighRepJobPolicy
. See the javadoc for this
class for information on its configurable properties.public static final java.lang.String FORCE_IS_HIGH_REP_PROPERTY
public static final java.lang.String INDEX_CONFIGURATION_FORMAT_PROPERTY
public static final java.lang.String AUTO_ID_ALLOCATION_POLICY_PROPERTY
protected abstract void addActionImpl(TaskQueueAddRequest action)
Subclasses should override this to use the appropriate method of calling other services.
public void clearProfiles()
public void clearQueryHistory()
public void init(LocalServiceContext context, java.util.Map<java.lang.String,java.lang.String> properties)
public void init(java.io.File appDirectory, Clock clock, java.util.Map<java.lang.String,java.lang.String> properties)
public void start()
public void stop()
public void setMaxQueryLifetime(int milliseconds)
public void setMaxTransactionLifetime(int milliseconds)
public void setBackingStore(java.lang.String backingStore)
public void setStoreDelay(int delayMs)
public void setNoStorage(boolean noStorage)
public void enableScatterProperty(boolean enable)
public java.lang.String getPackage()
public GetResponse get(Status status, GetRequest request)
public PutResponse put(Status status, PutRequest request)
public PutResponse putImpl(Status status, PutRequest request)
public DeleteResponse delete(Status status, DeleteRequest request)
public VoidProto addActions(Status status, TaskQueueBulkAddRequest request)
public DeleteResponse deleteImpl(Status status, DeleteRequest request)
public QueryResult runQuery(Status status, Query query)
public QueryResult next(Status status, NextRequest request)
public VoidProto deleteCursor(Status status, Cursor request)
public Transaction beginTransaction(Status status, BeginTransactionRequest req)
public CommitResponse commit(Status status, Transaction req)
public VoidProto rollback(Status status, Transaction req)
public Integer64Proto createIndex(Status status, CompositeIndex req)
public VoidProto updateIndex(Status status, CompositeIndex req)
public CompositeIndices getIndices(Status status, StringProto req)
public VoidProto deleteIndex(Status status, CompositeIndex req)
public AllocateIdsResponse allocateIds(Status status, AllocateIdsRequest req)
public java.lang.Double getDefaultDeadline(boolean isOfflineRequest)
public java.lang.Double getMaximumDeadline(boolean isOfflineRequest)