Alexey,

Any updates?

On Mon, May 14, 2018 at 6:19 PM, Dmitriy Govorukhin <
dmitriy.govoruk...@gmail.com> wrote:

> Alexey,
>
> Could you please add more description information for this task? [1]
> Perhaps, base steps for implementation.
>
> [1] https://issues.apache.org/jira/browse/IGNITE-8475
>
> On Mon, May 14, 2018 at 4:58 PM, Alexey Goncharuk <
> alexey.goncha...@gmail.com> wrote:
>
>> Another +1 for the true asynchronous approach. I remember a while ago one
>> of the Ignite users raised a similar question regarding the *async method
>> being blocked on establishing a TCP connection.
>>
>> As far as deadlocks go, I have a counter-example. Currently, we check the
>> thread-local chain only for a single cache, so if I run the following
>> code:
>> cache1.getAsync(k1);
>> cache2.getAsync(k2);
>> then the deadlock is still possible, and I did not see a single user
>> complaining about unexpected deadlocks. Rather than implementing this
>> cross-cache chain (which would probably add another overhead), I would
>> make
>> it consistent and allow operations to be run in parallel.
>>
>> There are many use-cases when having true async operations dramatically
>> improve performance. Consider, for example, a streaming example when keys
>> are being pushed by a client to a cluster. Currently, to run effective
>> processing, the user will have to use a data streamer with custom keys
>> receiver which may be a huge usability downside. Async operations can
>> utilize the cluster resources very efficiently.
>>
>> Finally, if we want to be on the safe side, we can keep the operation
>> chain
>> inside a transaction. I see absolutely no point in maintaining this chain
>> outside of transactions.
>>
>> --AG
>>
>> 2018-05-14 16:01 GMT+03:00 Dmitriy Govorukhin <
>> dmitriy.govoruk...@gmail.com>
>> :
>>
>> > Andrey,
>> >
>> > Do you prefer change behavior at runtime?
>> > I guess will be better have different methods for getting cache instance
>> > with fair and not fair sync.
>> >
>> > On Mon, May 14, 2018 at 3:39 PM, Andrey Gura <ag...@apache.org> wrote:
>> >
>> > > +1 for fair async operations.
>> > >
>> > > But I don't like idea use withFairSync() method. We added xxxAsync()
>> > > methods recently and withAsync() is deprecated.
>> > >
>> > > I think we should just make methods are async in nature and provide
>> > > ability of switching to the old behaviour using flag or property.
>> > >
>> > > On Fri, May 11, 2018 at 11:00 PM, Dmitriy Setrakyan
>> > > <dsetrak...@apache.org> wrote:
>> > > > Vladimir,
>> > > >
>> > > > In general I agree, but I do get greatly *close-minded* (pun
>> intended)
>> > > > whenever users' code that worked for the past several years all of a
>> > > sudden
>> > > > gets deadlocked after an upgrade. Making this feature optional is
>> even
>> > > > worse and more confusing. In this case the best action is no action
>> at
>> > > all.
>> > > >
>> > > > BTW, would be interesting to find out how Oracle async driver
>> behaves
>> > in
>> > > > this case.
>> > > >
>> > > > D.
>> > > >
>> > > >
>> > > >
>> > > >
>> > > >
>> > > > On Fri, May 11, 2018 at 8:29 PM, Vladimir Ozerov <
>> voze...@gridgain.com
>> > >
>> > > > wrote:
>> > > >
>> > > >> Guys,
>> > > >>
>> > > >> To build a great product we should be open minded and look to the
>> > > future,
>> > > >> not to the past.
>> > > >>
>> > > >> Dima raised very valid point - why async is not async? Current
>> > > programming
>> > > >> culture and demanding performance requirements pushes users towards
>> > > >> reactive-style programming. I do not want my thread to ever be
>> > blocked.
>> > > >> Instead, I want to send a number of concurrent commands and
>> optionally
>> > > >> subscribe to final result. So trully async API makes total sense to
>> > me.
>> > > >>
>> > > >> But personally, my primary interest in this area is SQL. Oracle is
>> > > >> preparing new async driver. ADBA - async database access. It was
>> > > presented
>> > > >> on recent JavaOne [1]. It is under active development right now -
>> juse
>> > > >> weave through the mailing list [2]. Some prototypes are already
>> there
>> > > [3].
>> > > >> PostgreSQL community even started adopted it [4]!
>> > > >>
>> > > >> I am not pushing for immediate actions, but at least we should
>> > > understand
>> > > >> which way the wind is blowing. As a mid-term goals I would propose
>> to
>> > > >> finally remove thread ID from our PESSIMISTIC transactions to allow
>> > for
>> > > >> suspend/resume in different threads. And as a next step I would
>> think
>> > on
>> > > >> adopting async cache and SQL APIs.
>> > > >>
>> > > >> Vladimir.
>> > > >>
>> > > >> [1]
>> > > >> http://www.oracle.com/technetwork/database/
>> > > application-development/jdbc/
>> > > >> con1491-3961036.pdf
>> > > >> [2] http://mail.openjdk.java.net/pipermail/jdbc-spec-discuss/
>> > > >> [3] https://github.com/oracle/oracle-db-examples/tree/master/
>> java/AoJ
>> > > >> [4] https://github.com/pgjdbc/pgjdbc/issues/978
>> > > >>
>> > > >> On Fri, May 11, 2018 at 9:48 PM, Dmitriy Setrakyan <
>> > > dsetrak...@apache.org>
>> > > >> wrote:
>> > > >>
>> > > >> > On Fri, May 11, 2018 at 7:46 PM, Dmitriy Govorukhin <
>> > > >> > dmitriy.govoruk...@gmail.com> wrote:
>> > > >> >
>> > > >> > > I will edit IGNITE-8475, and remove all part that belong to the
>> > > public
>> > > >> > api.
>> > > >> > > Is it acceptable for you?
>> > > >> > >
>> > > >> >
>> > > >> > Everything is acceptable, as long as the public API is safe :)
>> > > >> >
>> > > >>
>> > >
>> >
>>
>
>

Reply via email to