Ivan D.,

> container of properties

What is a container of properties?
As a user, I want a simple way to start a client and perform operations.

I don't want anything confusing and complicated like Netty Bootstrap. There
might be a reason for Netty to be this way - it is a low-level library. But
Ignite is not.


> separate facades for sync, async

Strongly disagree with this idea. It hurts API discoverability.
As a user, in my IDE I type "igniteTable.get" and see a list of suggestions
like get, getAsync, getAndPut, getAndPutAsync.
I don't want to have a separate interface and a separate variable to deal
with sync and async methods.

Not sure what's the problem with documentation - can you elaborate please?

On Fri, Jul 9, 2021 at 12:51 PM Ivan Daschinsky <ivanda...@gmail.com> wrote:

> Pavel, actually I suggests to separate container of properties(client in
> lettuce) and actual connection or connections (stateful connection in
> lettuce). Actual connection initialization could be sync or async, it
> doesn't matter. It can be Ignition#startClient or
> Ignition#startClientAsync, but I'd prefer lettuce approach
>
>
> Also, it would be great to have separate facades for sync, async and
> reactive api. Mixing all of them in one interface is a documentation
> nightmare.
>
> пт, 9 июл. 2021 г., 11:55 Pavel Tupitsyn <ptupit...@apache.org>:
>
> > Ivan P., Ivan D.,
> >
> > I don't think it makes sense to separate IgniteConnection and
> IgniteClient
> > like Lettuce does,
> > because IgniteClient will maintain connections to multiple server nodes
> > automatically,
> > and the number of connections can grow and shrink dynamically.
> >
> > This is required to support dynamic clusters together with partition
> > awareness.
> >
> >
> > > Why not to make async variant of connection
> >
> > Ignite API will (eventually) have both sync and async variants of every
> > method, where applicable,
> > including the method that connects the client to the cluster.
> >
> > On Fri, Jul 9, 2021 at 9:55 AM Ivan Pavlukhin <vololo...@gmail.com>
> wrote:
> >
> > > Val,
> > >
> > > > Ignition IS the entry point to Ignite, so I'm not sure I got your
> point
> > > :)
> > > > Either way, please feel free to give your suggestions for an
> > alternative
> > > name if you have any.
> > >
> > > Well, it is not only about naming but it is also about code
> > > organization. Ivan D. already referenced to alternative API styles (I
> > > suppose [1] describes the idea).
> > >
> > > My main points are:
> > > 1. Ignite 3 is a great opportunity to make things better.
> > > 2. Using (or reusing) confusing names and entities should be avoided.
> > >
> > > Another rather straightforward startup/bootstrap approach is used in
> > > Netty [2]. For Ignite I would spell it like IgniteServer.Bootstrap and
> > > IgniteClient.Bootstrap.
> > >
> > > Also I suppose that thin client API is more important because much
> > > more users will use it. I hope that a lot of Community members will
> > > share their ideas.
> > >
> > > [1] https://www.baeldung.com/java-redis-lettuce
> > > [2] https://netty.io/4.0/api/io/netty/bootstrap/ServerBootstrap.html
> > >
> > > 2021-07-09 1:41 GMT+03:00, Valentin Kulichenko <
> > > valentin.kuliche...@gmail.com>:
> > > > Ivan,
> > > >
> > > > I've seen the link, but I still don't understand what exactly you
> > propose
> > > > to change in the current API, and what is your concern. Could you
> > please
> > > > clarify? How you think Ignite API should look like?
> > > >
> > > > -Val
> > > >
> > > > On Thu, Jul 8, 2021 at 2:18 PM Ivan Daschinsky <ivanda...@gmail.com>
> > > wrote:
> > > >
> > > >> Val, I have already gave examples -- lettuce, a very performant and
> > > >> modern
> > > >> redis java client
> > > >>
> > > >> I can duplicate links again
> > > >>
> https://lettuce.io/core/release/api/io/lettuce/core/RedisClient.html
> > > >>
> > > >>
> > >
> >
> https://lettuce.io/core/release/api/io/lettuce/core/api/StatefulRedisConnection.html
> > > >> https://www.baeldung.com/java-redis-lettuce
> > > >>
> > > >> чт, 8 июл. 2021 г., 23:47 Valentin Kulichenko <
> > > >> valentin.kuliche...@gmail.com
> > > >> >:
> > > >>
> > > >> > Ivan,
> > > >> >
> > > >> > Can you please clarify what you mean by "separate creation of
> client
> > > >> > and
> > > >> > connection"? Can you give an example?
> > > >> >
> > > >> > -Val
> > > >> >
> > > >> > On Thu, Jul 8, 2021 at 12:53 PM Ivan Daschinsky <
> > ivanda...@gmail.com>
> > > >> > wrote:
> > > >> >
> > > >> > > I'm sorry, but why we didn't consider to separate creation of
> > Client
> > > >> and
> > > >> > > connection? Why not to make async variant of connection? See for
> > > >> example
> > > >> > > [1]
> > > >> > > [1] --- https://lettuce.io/core/release/api/index.html
> > > >> > >
> > > >> > >
> > > >> > > чт, 8 июл. 2021 г., 09:50 Pavel Tupitsyn <ptupit...@apache.org
> >:
> > > >> > >
> > > >> > > > Val,
> > > >> > > >
> > > >> > > > So the plan is:
> > > >> > > >
> > > >> > > > - Remove Ignition#start from the public API
> > > >> > > > - Make Ignition a class, not an interface
> > > >> > > > - Add static Ignition#startClient
> > > >> > > >
> > > >> > > > Sounds good?
> > > >> > > >
> > > >> > > > On Thu, Jul 8, 2021 at 6:13 AM Valentin Kulichenko <
> > > >> > > > valentin.kuliche...@gmail.com> wrote:
> > > >> > > >
> > > >> > > > > Hi Ivan,
> > > >> > > > >
> > > >> > > > > Ignition IS the entry point to Ignite, so I'm not sure I got
> > > your
> > > >> > point
> > > >> > > > :)
> > > >> > > > > Where is the contradiction?
> > > >> > > > >
> > > >> > > > > Either way, please feel free to give your suggestions for an
> > > >> > > alternative
> > > >> > > > > name if you have any.
> > > >> > > > >
> > > >> > > > > -Val
> > > >> > > > >
> > > >> > > > > On Wed, Jul 7, 2021 at 7:56 PM Ivan Pavlukhina <
> > > >> vololo...@gmail.com>
> > > >> > > > > wrote:
> > > >> > > > >
> > > >> > > > > > A side note. Actually “Ignition” naming always confused
> me.
> > I
> > > >> think
> > > >> > > > about
> > > >> > > > > > it as some fancy named API entry point for Ignite. Perhaps
> > it
> > > >> > > > > > is
> > > >> a
> > > >> > > good
> > > >> > > > > > moment to revisit naming.
> > > >> > > > > >
> > > >> > > > > > > On 8 Jul 2021, at 07:09, Valentin Kulichenko <
> > > >> > > > > > valentin.kuliche...@gmail.com> wrote:
> > > >> > > > > > >
> > > >> > > > > > > Hi Pavel,
> > > >> > > > > > >
> > > >> > > > > > > I don't think we will need the pure embedded mode, but
> we
> > > >> > > > > > > still
> > > >> > > need
> > > >> > > > to
> > > >> > > > > > be
> > > >> > > > > > > able to access the API from compute and services. That
> > said,
> > > >> > there
> > > >> > > > are
> > > >> > > > > > two
> > > >> > > > > > > usages of the 'Ignite' API:
> > > >> > > > > > >
> > > >> > > > > > >   1. Remote, via the binary protocol.
> > > >> > > > > > >   2. Local - needed for compute and services. (This is
> how
> > > it
> > > >> > works
> > > >> > > > > now.)
> > > >> > > > > > >
> > > >> > > > > > > I believe that the API should be the same, and there
> > should
> > > >> > > > > > > be
> > > >> a
> > > >> > > > > unified
> > > >> > > > > > > access point. Ignition seems to be a good candidate for
> > > this.
> > > >> > > > > > >
> > > >> > > > > > > Ignition#start should eventually be removed from the
> > public
> > > >> API.
> > > >> > It
> > > >> > > > is
> > > >> > > > > > > currently there only because we don't have the thin
> client
> > > >> > > > > > > yet.
> > > >> > > > > > >
> > > >> > > > > > > -Val
> > > >> > > > > > >
> > > >> > > > > > >> On Wed, Jul 7, 2021 at 5:47 AM Pavel Tupitsyn <
> > > >> > > ptupit...@apache.org
> > > >> > > > >
> > > >> > > > > > wrote:
> > > >> > > > > > >>
> > > >> > > > > > >> Igniters,
> > > >> > > > > > >>
> > > >> > > > > > >> I have a few questions regarding server node startup
> and
> > > >> > > > > > >> thin
> > > >> > > > clients.
> > > >> > > > > > >>
> > > >> > > > > > >> State of things:
> > > >> > > > > > >> - Server nodes will be started with 'ignite run' from
> CLI
> > > >> > > > > > >> [1]
> > > >> > > > > > >> - ignite-api module represents our public API
> > > >> > > > > > >> - ignite-api has Ignition interface to start server
> nodes
> > > >> > > > > > >>
> > > >> > > > > > >> Questions:
> > > >> > > > > > >> - What's the idea behind Ignition interface in the
> public
> > > >> > > > > > >> API?
> > > >> > Are
> > > >> > > > we
> > > >> > > > > > going
> > > >> > > > > > >> to have an "embedded mode" where servers can be started
> > > from
> > > >> > > code? I
> > > >> > > > > > >> thought this was not planned.
> > > >> > > > > > >> - How are users supposed to retrieve an instance of the
> > > >> Ignition
> > > >> > > > > > interface?
> > > >> > > > > > >> - Are there any plans to start thin clients from
> Ignition
> > > >> > > interface,
> > > >> > > > > or
> > > >> > > > > > >> should we have a separate way of doing this?
> > > >> > > > > > >>
> > > >> > > > > > >>
> > > >> > > > > > >> [1]
> > > >> > > > > > >>
> > > >> > > > > >
> > > >> > > > >
> > > >> > > >
> > > >> > >
> > > >> >
> > > >>
> > >
> >
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=158873958
> > > >> > > > > > >>
> > > >> > > > > >
> > > >> > > > >
> > > >> > > >
> > > >> > >
> > > >> >
> > > >>
> > > >
> > >
> > >
> > > --
> > >
> > > Best regards,
> > > Ivan Pavlukhin
> > >
> >
>

Reply via email to