[jira] [Commented] (ZOOKEEPER-3566) Send event zxid to watches

2019-10-02 Thread Samuel Nelson (Jira)


[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-3566?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16943220#comment-16943220
 ] 

Samuel Nelson commented on ZOOKEEPER-3566:
--

I understand that watches aren't designed to receive all events. I think it's 
still important for watches to know which `zxid` triggered them so events that 
_are_ received can at least be ordered.

 

 

> Send event zxid to watches
> --
>
> Key: ZOOKEEPER-3566
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3566
> Project: ZooKeeper
>  Issue Type: Improvement
>  Components: server
>Reporter: Samuel Nelson
>Priority: Major
>
> The zxid that triggered a watch should be sent to the watch because it's 
> useful for ordering events.
>  
> Use case:
> I'm watching a znode and syncing its contents (and whether it has been 
> deleted) to a third system. Without zxid attached to events it makes it very 
> difficult to maintain the order of events as they happened in ZK.
>  
> For example if I modify node `/a/b/c` and then delete it soon after, we have 
> two watch events, but no reliable way to communicate to our third system that 
> the modification happened before the deletion. If we are given the zxid we 
> can use that to order events.
>  
> Suggested implementation:
> Change `IWatchManager#triggerWatch` to take another parameter `Long zxid`. 
> Callers pass the zxid of the event.
> Add member `Long zxid` to `WatchedEvent`
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (ZOOKEEPER-3566) Send event zxid to watches

2019-10-01 Thread Samuel Nelson (Jira)
Samuel Nelson created ZOOKEEPER-3566:


 Summary: Send event zxid to watches
 Key: ZOOKEEPER-3566
 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3566
 Project: ZooKeeper
  Issue Type: Improvement
  Components: server
Reporter: Samuel Nelson


The zxid that triggered a watch should be sent to the watch because it's useful 
for ordering events.

 

Use case:

I'm watching a znode and syncing its contents (and whether it has been deleted) 
to a third system. Without zxid attached to events it makes it very difficult 
to maintain the order of events as they happened in ZK.

 

For example if I modify node `/a/b/c` and then delete it soon after, we have 
two watch events, but no reliable way to communicate to our third system that 
the modification happened before the deletion. If we are given the zxid we can 
use that to order events.

 

Suggested implementation:

Change `IWatchManager#triggerWatch` to take another parameter `Long zxid`. 
Callers pass the zxid of the event.

Add member `Long zxid` to `WatchedEvent`

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)