veyron/services/store: Streaming put mutation api.
Previously, PutMutations took an array of mutations and applied them
within a transaction. Unfortunately, this api was memory-bound.
PutMutations now takes a stream of mutations, and applies them within a
transaction.
Specifics:
- Forbids duplicate mutations on the same id.
- Supports cancellation. If the request is cancelled in a timely
fashion, any mutations received will not be committed.
Additionally, the estore api which extends veyron2/services/store.Store
has been replaced with a raw access api.
Specifics:
- veyron/services/store/raw.Store supports Watch and PutMutations.
- The raw store is mounted at extension (".store.raw"). This prevents
non-sync clients from inadvertently discovering the raw api.
Change-Id: I6575a0ca43c220239ea90c84e6c10329c625dfbe
diff --git a/runtimes/google/vsync/vsync.idl.go b/runtimes/google/vsync/vsync.idl.go
index e01c0e9..a1958a5 100644
--- a/runtimes/google/vsync/vsync.idl.go
+++ b/runtimes/google/vsync/vsync.idl.go
@@ -4,7 +4,7 @@
package vsync
import (
- "veyron/services/store/estore"
+ "veyron/services/store/raw"
"veyron2/storage"
@@ -32,7 +32,7 @@
// LogValue represents an object mutation within a transaction.
type LogValue struct {
// Mutation is the store mutation representing the change in the object.
- Mutation estore.Mutation
+ Mutation raw.Mutation
// Delete indicates whether the mutation resulted in the object being
// deleted from the store.
Delete bool
@@ -266,7 +266,7 @@
_gen_wiretype.FieldType{Type: 0x4e, Name: "Tags"},
_gen_wiretype.FieldType{Type: 0x50, Name: "Dir"},
},
- "estore.Mutation", []string(nil)},
+ "raw.Mutation", []string(nil)},
_gen_wiretype.StructType{
[]_gen_wiretype.FieldType{
_gen_wiretype.FieldType{Type: 0x51, Name: "Mutation"},