[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-06-15 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-397652776
 
 
   rerun bookkeeper-server bookie tests


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-06-15 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-397637455
 
 
   rerun bookkeeper-server bookie tests


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-06-15 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-397612674
 
 
   rerun bookkeeper-server bookie tests


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-06-15 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-397552150
 
 
   rerun bookkeeper-server bookie tests


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-06-15 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-397527391
 
 
   @jvrao @sijie @jiazhai 
   Thank you !
   
   I have rebased to latest master, I will wait for CI to pass and then merge.
   This was the last important part of BP-14 !
   I will follow up with docs
   
   I think existing BC tests are enough to guarantee that we did not break 
compatibility.
   
   Now that BP-14 has got its final form I will start tests and benchmarks on 
downstream applications (once this change reaches Apache Snapshots Repository)


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-06-13 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-396881301
 
 
   @sijie  @jvrao FYI I have added a commit to drop 'error out pending adds" in 
case of failure in force operation.
   
   So we are *not* erroring out pending adds, they will fail naturally in case 
of bookie failure.
   a force() which fails simply does not advance LastAddConfirmed.
   
   Hopefully @sijie  and @jiazhai will be still okay with the patch
   
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-06-12 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-396571250
 
 
   I meant @jvrao suggested to error our pending adds.
   I think we do not need to do so.
   
   I will remove that from the patch, but before spending time I would like to 
have acknowledgement feom JV


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-06-12 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-396482039
 
 
   @sijie in the fsync / force metaphor I think it is better not to fail 
pending adds. 
   It was a comment/request from @jvrao.
   
   I am going to drop that op, but I need to ask to JV


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-06-11 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-396160571
 
 
   @sijie  @jvrao 
   waiting for your comments and hopefully approval.
   
   I have found an edge case, but I don't know if it is worth handling it:
   - we are erroring out pending adds in case of failure of a force
   - we are NOT erroring out pending "force" operations in case of write 
failures
   
   I this that anyway if any add fails, as we do not allow ensemble changes, 
the "force" will eventually fail


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-06-06 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-395124763
 
 
   @jvrao @sijie 
   All of your comments addressed. Now it looks really better ! Thank you
   
   Additional implementation to note:
   **Error out** all pending adds in case of failure of **force()** 


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-06-05 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-394740832
 
 
   retest this please


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-05-31 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-393634809
 
 
   @jvrao @jiazhai please take a new look as you have cycles.
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-05-30 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-393094971
 
 
   @sijie 
   In the limited scope of this PR I think that it is good that we are not 
breaking ExplicitLAC and it is working as expected (I have added a test case as 
proof).
   
   I think that in general, despite BP14, the fact that LAC is only piggybacked 
on writes (and written finally on close/recovery...) is very annoying for 
tailing readers.
   The best would be to enable ExplicitLAC by default but as far as I can see 
it is not fully integrated in the normal flow of a tailing reader (you have to 
explicitly read ExplicitLAC from the reader side).
   
   In my opinion it is better for us to keep ExplicitLAC RPC as it is now.
   We have choosen to keep force RPC away from ledger storage (no masterKey on 
wireprotocol), but in the future we can add an optional payload with masterKey 
and current client-side LAC.
   We could make force() to really write a meta entry which contains the LAC 
and integrate this in the story and so ExplicitLAC won't be necessary anymore 
if we perform force() in background, even for non-DEFERRED_SYNC writers.
   
   So a recap for this PR and my view of the story after BP14:
   - the story we are writing is healthy and it does not break existing 
assumptions
   - it opens the door to future enhancements, and maybe to the deprecation of 
ExplicitLAC, in favour of standard LAC (we are introducing a mechanism to let 
LAC advance on writer side without "writes")
   
   I will be happy to continue personally this work and make BK more like a 
storage system
   
   cc @jvrao 
   
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-05-30 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-393079231
 
 
   @sijie 
   I agree at 100% with your higher level description. I would like to have 
such "background flush" .
   
   I am looking deeply into ExplicitLAC, and my feeling is that it will need to 
be reworked a bit in order to make it usable for this purpose.
   It *seems* to me that ExplicitLAC is not integrated with the usual workflow: 
if you only configure SetExplicitLACInterval LAC is not advancing automagically.
   
   It would be lovely to have a new "background flush" mechanism which performs 
a background "force()" and then makes LAC advance without writes, like 
ExplicitLAC.
   
   Maybe the best approach would be to open a new followup task to enhance and 
rework ExplicitLAC.
   
   cc @jvrao 


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-05-29 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-392909847
 
 
   @sijie your point is very interesting.
   Let me think about it a bit more.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-05-29 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-392801953
 
 
   @sijie I have added a test case about using ExplicitLAC and DEFERRED_SYNC.
   
   I think that current behaviour is what I am expecting:
   1) LastAddConfirmed advances only in case of force()
   2) ExplicitLAC timer sends notifications only when LastAddConfirmed, in case 
of DEFERRED_SYNC this is possible only after force()
   3) without force() ExplicitLAC does nothing, as expected.
   
   It seems to me that this is consistent with the expectations of 
DEFERRED_SYNC writeflag.
   
   > is it better to extend the explicit lac request with a flag that force 
flushing the data? In that way the behavior would be better defined when people 
enable explicit lac on a deferred-sync ledger.
   
   I think that the client controls LAC using force() and ExplicitLAC is a 
background task which seems to me like an optimization.
   I don't see much benefit in having an "implicit" force with the ExplicitLAC 
notification.
   
   Maybe it is like the initial proposal of having a "piggybacked 
LastAddPersisted" on AddResponse which would have made LAC to advance even 
without an explicit "force()".
   
   We could add a flag which enables a timer to send explicit force() 
periodically, or that performs a force() during the execution of ExplicitLAC 
timer.
   I prefer to keep things separated at wire protocol, we can compose the two 
RPCs, they are lightweight and we are in a background task (the ExplicitLAC 
timer)
   
   cc @jvrao 
   
   
   
   
   
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-05-29 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-392798320
 
 
   @jiazhai @jvrao I have addressed all of your comments and provided answers.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-05-28 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-392650536
 
 
   @sijie explicitlac for deferred sync writers only sends the value of 
LastAddConfirmed and it is still a way to notify LAC changes without a real 
write. The difference is that LastAddConfirmed variable does not advance at 
every write.
   
   I think they are different operations, and need different semantics. Force() 
must be acknowledged by the full ensemble.
   You can use force() without sending explicitlac, in fact new LAC will be 
piggybacked at next write for instance.
   
   I think it is better to keep force and explicitlac separated.
   
   I will add test cases to cover the usage of explicit LAC with deferred sync 
flag.
   
   I will check the implementation today, in case I am missing something.
   
   Cc @jvrao


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-05-28 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-392555446
 
 
   retest this please


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-05-28 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-392429868
 
 
   retest this please


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-05-28 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-391756742
 
 
   This is still WIP but almost complete, missing items:
   - prevent v2 clients to use force() API
   - add test cases for corner cases
   - disable ensemble changes with DEFERRED_SYNC (this can be another patch)
   
   @jvrao @sijie if you have cycles you can start your review


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] eolivelli commented on issue #1436: BP-14 force() API - client side implementation

2018-05-27 Thread GitBox
eolivelli commented on issue #1436: BP-14 force() API - client side 
implementation
URL: https://github.com/apache/bookkeeper/pull/1436#issuecomment-392336831
 
 
   @jvrao  @sijie the patch is ready for review now


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services