[ISSUE] (TEPHRA-149) Do not preserve attributes for Tephra delete markers in TransactionProcessor

0 views
Skip to first unread message

James Taylor (JIRA)

unread,
Nov 4, 2015, 8:56:25 PM11/4/15
to tephr...@googlegroups.com
James Taylor created an issue
 
Tephra / Bug TEPHRA-149
Do not preserve attributes for Tephra delete markers in TransactionProcessor
Issue Type: Bug Bug
Assignee: Poorna Chandra
Attachments: TEPHRA-149.patch
Created: 04/Nov/15 5:54 PM
Labels: phoenix
Priority: Major Major
Reporter: James Taylor

Adjunct to

TEPHRA-135 which correctly transfers attributes in the client-side TransactionAwareHTable, but also transferred over attributes for Tephra delete markers generated in TransactionProcessor.preDelete() hook. We should not transfer these attributes in this case as the attributes are already there on the Delete marker. Other coprocessors (like the Phoenix coprocessors) get confused because they'll see the original Delete marker in one preBatchMutate() call and then see them again in the put that's done in the TransactionProcessor.preDelete() call. By not adding the attributes, we are able to distinguish the two cases and ignore the one for the Tephra delete marker.
Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v6.1.5#6160-sha1:a61a0fc)
Atlassian logo

James Taylor (JIRA)

unread,
Nov 4, 2015, 8:56:26 PM11/4/15
to tephr...@googlegroups.com
James Taylor updated an issue

Here's a patch/example for the 0.98 compat module.

Change By: James Taylor
Attachment: TEPHRA-149.patch

Poorna Chandra (JIRA)

unread,
Nov 5, 2015, 1:52:22 PM11/5/15
to tephr...@googlegroups.com
Poorna Chandra commented on an issue
 
Re: Do not preserve attributes for Tephra delete markers in TransactionProcessor

James Taylor I think Tephra can only safely remove Tephra attributes. Are Phoenix coprocessors getting confused by Tephra attributes or Pheonix attributes? If latter, I think it would be safe if Phoenix co-processor removes them after reading the attributes the first time. What do you say?

Adjunct to TEPHRA-135 which correctly transfers attributes in the client-side TransactionAwareHTable, but also transferred over attributes for Tephra delete markers generated in TransactionProcessor.preDelete() hook. We should not transfer these attributes in this case as the attributes are already there on the Delete marker. Other coprocessors (like the ...

James Taylor (JIRA)

unread,
Nov 5, 2015, 3:34:22 PM11/5/15
to tephr...@googlegroups.com
James Taylor commented on an issue

Have you had a chance to look at the patch? It's basically just undoing part of Thomas' prior patch.

Poorna Chandra (JIRA)

unread,
Nov 5, 2015, 5:30:22 PM11/5/15
to tephr...@googlegroups.com
Poorna Chandra commented on an issue

I'm trying to understand why it is okay for TransactionProcessor to not transfer attributes from Delete to Put operation. There could be some other co-processor that might be relying on some attributes to be present to function properly.

Instead, what if Tephra adds an additional attribute to say that this Put was generated from a Delete? When Phoenix co-processor sees this new attribute it can safely ignore the Put. Let me know what you think.

James Taylor (JIRA)

unread,
Nov 5, 2015, 5:50:21 PM11/5/15
to tephr...@googlegroups.com
James Taylor commented on an issue

Yes, your idea of adding an attribute would be ok too. The downside of that, though is that other coprocessors have to be aware of that attribute. In reality, the immediate mutation being done in the Tephra preDelete hook is problematic because it's changing the state prior to our coprocessor being called. So we've made a change at our end to avoid the translation in the first place (by our client using Tephra delete markers). Even with this, though, I think it'd be a good idea to solve.

Reply all
Reply to author
Forward
0 new messages