I have a few questions regarding the properties of co-processors. I have an 
application with a workload in which clients may issue put requests of the form:

1. put an entire value (most common, basic put() op)
2. put a subset of a value (not common, attribute holds meta data)
3. multiple puts to a value (very rare, either of the form (1) or (2))

In the vast majority of cases clients interact with entire value blobs. 
Occasionally cases (2) and (3) are encountered, but are very difficult to 
handle client-side. So, co-processors seem to offer a building block for 
optimizing these uncommon cases.

To handle (2) it looks like a RegionServer can use a prePut trigger to do 
read-copy-update of the entire value, and for (3) as long as the operations are 
serialized, the type of data we are using are easily combined.

My main question is, what serialization properties exist with respect to 
triggers to the same row? Further optimizations would also be possible if any 
put operations to the same row could be handled concurrently be a single 
trigger instantiation, but I'd settle for serialized access.

Thanks,
Noah

Reply via email to