Thanks for your participation. Close this vote with 2 (+1) bindings and 3 (+1) non-bindings, 0 (-1).
On Wed, 30 Mar 2022 at 07:27, ZhangJian He <shoot...@gmail.com> wrote: > +1 > > Thanks > ZhangJian He > > Zike Yang <z...@apache.org> 于2022年3月29日周二 18:48写道: > > > +1, > > > > Zike Yang > > > > On 2022/03/29 09:22:16 guo jiwei wrote: > > > +1 > > > > > > Regards > > > Jiwei Guo (Tboy) > > > > > > > > > On Tue, Mar 29, 2022 at 4:16 PM Enrico Olivelli <eolive...@gmail.com> > > wrote: > > > > > > > +1 (binding) > > > > > > > > Enrico > > > > > > > > Il giorno mar 29 mar 2022 alle ore 09:55 PengHui Li > > > > <peng...@apache.org> ha scritto: > > > > > > > > > > +1, > > > > > > > > > > Penghui > > > > > > > > > > On Fri, Mar 25, 2022 at 10:13 AM mattison chao < > > mattisonc...@gmail.com> > > > > > wrote: > > > > > > > > > > > This is the voting thread for PIP-149. It will stay open for at > > least > > > > 48 > > > > > > hours. > > > > > > > > > > > > https://github.com/apache/pulsar/issues/14365 > > > > > > > > > > > > Pasted below for quoting convenience. > > > > > > > > > > > > ----- > > > > > > > > > > > > Motivation > > > > > > > > > > > > The Rest API was originally designed to be implemented > > asynchronously, > > > > but > > > > > > with the iteration of functions, some synchronous implementations > > were > > > > > > added, resulting in many asynchronous methods called synchronous > > > > > > implementations. Also, many synchronous calls do not add > timeouts. > > This > > > > > > greatly reduces concurrency, user operations, and experience. > > > > > > In order to prevent more problems, and improve code readability > and > > > > > > maintainability, we intend to refactor these synchronous calls > and > > > > > > standardize the implementation of the API. > > > > > > > > > > > > Related discussion: > > > > > > https://lists.apache.org/thread/pkkz2jgwtzpksp6d4rdm1pyxzb3z6vmg > > > > > > > > > > > > Goals > > > > > > > > > > > > Try to avoid synchronous method calls in asynchronous methods. > > > > > > Async variable (AsyncResponse) is placed in the first parameter > > > > position. > > > > > > Async variable (AsyncResponse) cannot be substituted into method > > > > > > implementations. > > > > > > Add more tests and increase the coverage. > > > > > > Modification > > > > > > Avoid synchronous method calls in asynchronous methods. > > > > > > > > > > > > protected void internalDeleteNamespace(boolean authoritative) { > > > > > > validateTenantOperation(namespaceName.getTenant(), > > > > > > TenantOperation.DELETE_NAMESPACE); > > > > > > validatePoliciesReadOnlyAccess(); > > > > > > } > > > > > > Suggest to do like this: > > > > > > > > > > > > protected CompletableFuture<Void> internalDeleteNamespace(boolean > > > > > > authoritative) { > > > > > > return > validateTenantOperationAsync(namespaceName.getTenant(), > > > > > > TenantOperation.DELETE_NAMESPACE) > > > > > > .thenCompose(__ -> validatePoliciesReadOnlyAccessAsync()); > > > > > > } > > > > > > Async variable (AsyncResponse) is placed in the first parameter > > > > position > > > > > > > > > > > > public void deleteNamespace(@Suspended final AsyncResponse > > > > asyncResponse, > > > > > > @PathParam("tenant") String tenant, > > > > > > @PathParam("namespace") String namespace, > > > > > > @QueryParam("force") @DefaultValue("false") boolean > force, > > > > > > @QueryParam("authoritative") @DefaultValue("false") > > boolean > > > > > > authoritative) { > > > > > > > > > > > > Async variable (AsyncResponse) cannot be substituted into method > > > > > > implementations > > > > > > > > > > > > internalCreateNonPartitionedTopicAsync(asyncResponse, > > authoritative, > > > > > > properties); > > > > > > Suggest to do like this: > > > > > > > > > > > > internalCreateNonPartitionedTopicAsync(authoritative, properties) > > > > > > .thenAccept(__ -> > > > > > > asyncResponse.resume(Response.noContent().build())) > > > > > > .exceptionally(ex -> { > > > > > > resumeAsyncResponseExceptionally(asyncResponse, > > > > ex.getCause()); > > > > > > return null; > > > > > > }); > > > > > > > > > > > > Task tracking > > > > > > In order to unify the modification and track the modified part, > > it's > > > > better > > > > > > to open an issue to track, like #14353, #14013, #13854. > > > > > > > > > > > > --- > > > > > > Best, > > > > > > Mattison > > > > > > > > > > > > > > > >