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