ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vyacheslav Daradur <daradu...@gmail.com>
Subject Re: Service grid redesign
Date Fri, 14 Dec 2018 08:29:45 GMT
>*1. Testing of the cache-based implementation of the service grid.*
> I think, we should make a test suite, that will test the old implementation
> until we remove it from the project.

Agree. This is exactly what should be done as the first step once
phase 1 will be merged.
I think all tests in the package:
"org.apache.ignite.internal.processors.service" should be moved to
separate test-suite and new build-plan should be added on TC and
included in RunAll.

> *2. DynamicServiceChangeRequest.*
> I think, this class should be splat into two.

Personally, I agree, but I have faced opposition at the design step.
I changed to the following structure:

abstract class ServiceAbstractChange implements Serializable {
    protected final IgniteUuid srvcId;
}

class ServiceDeploymentChange extends ServiceAbstractChange {
    ServiceConfiguration cfg;
}

class ServiceUndeploymentChange extends ServiceAbstractChange { }

I hope that further reviewers will agree with us.

> *3. Naming.*

About "Services" -> "Service" and "Deployments" -> "Deployment"
Personally, I agree with Nikolay, because it's more descriptive since
manages several services, not single.
But, I understand Denis's point of view, we have a lot of classes with
"Service" prefix in naming and "Services" looks a bit alien.

> *DynamicServicesChangeRequestBatchMessage -> DynamicServiceChangeRequest*
Prefix "Dynamic" has no sense anymore since we reworked message
structure as in p.2. so "ServiceChangeBatchRequest" will be better
name.

> *ServicesSingleDeploymentsMessage -> ServiceDeploymentResponse*
It's not a response and is not sent to the sender. This message is
sent to the coordinator and contains *single node* deployments.

> *ServicesFullDeploymentsMessage -> ServiceDeploymentFinishMessage*
This should be named similar way as the previous one, but the message
contains deployments of *full set of nodes*.


On Fri, Dec 14, 2018 at 10:58 AM Nikolay Izhikov <nizhikov@apache.org> wrote:
>
> Hello, Denis.
>
> Great news.
>
> > *1. Testing of the cache-based implementation of the service grid.*
> > I think, we should make a test suite, that will test the old implementation>
until we> remove it from the project.
>
> Aggree. Let's do it.
>
> > *2. DynamicServiceChangeRequest.*
> > I think, this class should be splat into two.
>
> Agree. Lets's do it.
>
> > *ServicesDeploymentManager*, *ServicesDeploymentTask *and all other classes>
with Services word in them.
> > I think, they would look better if we use a singular word *Service *instead.
> > Same for *Deployments*.
>
> Personally, I want that names as clearly as possible reflects class content for reader.
> If we deploy *several* services then it has to be Service*S*.
>
> Same for deployment - if this message will initiate single deployment process then it
should use deployment.
> otherwise - deployments.
>
> So my opinion - it's better to keep current naming.
>
> В Чт, 13/12/2018 в 19:36 +0300, Denis Mekhanikov пишет:
> > Guys,
> >
> > I've been looking through the PR by Vyacheslav for past few weeks.
> > Slava, great job! You've done an impressive amount of work.
> >
> > I posted my comments to the PR and had a few calls with Slava.
> > I am close to finishing my review.
> > There are some points, that I'd like to settle in this discussion to avoid
> > controversy.
> >
> > *1. Testing of the cache-based implementation of the service grid.*
> > I think, we should make a test suite, that will test the old implementation
> > until we
> > remove it from the project.
> >
> > *2. DynamicServiceChangeRequest.*
> > I think, this class should be splat into two.
> > I don't see any point in having a single class with "*flags"* field, that
> > shows, what action it actually represents.
> > Usage of *deploy(), markDeploy(...), undeploy(), markUndeploy(...)* looks
> > wrong.
> > Why not have a separate message type for each action instead?
> >
> > *3. Naming.*
> > I suggest renaming the following classes:
> > *ServicesDeploymentManager*, *ServicesDeploymentTask *and all other classes
> > with Services word in them.
> > I think, they would look better if we use a singular word *Service *instead.
> > Same for *Deployments*.
> > I propose the following class names:
> >
> > *ServicesDeploymentManager -> ServiceDeploymentManager*
> > *ServicesDeploymentActions -> ServiceDeploymentActions*
> > *ServicesDeploymentTask -> ServiceDeploymentTask*
> > *ServicesCommonDiscoveryData -> ServiceCommonDiscoveryData*
> > *ServicesJoinNodeDiscoveryData -> ServiceJoiningNodeDiscoveryData*
> >
> > *DynamicServicesChangeRequestBatchMessage -> DynamicServiceChangeRequest*
> > *ServicesSingleDeploymentsMessage -> ServiceDeploymentResponse*
> > *ServicesFullDeploymentsMessage -> ServiceDeploymentFinishMessage*
> >
> > *ServiceSingleDeploymentsResults -> ServiceSingleDeploymentResult*
> > *ServiceFullDeploymentsResults -> ServiceFullDeploymentResult*
> >
> > Let's do this as the final step of the code review to avoid repeated
> > renaming.
> >
> > Denis
> >
> > чт, 6 дек. 2018 г. в 15:21, Denis Mekhanikov <dmekhanikov@gmail.com>:
> >
> > > Alexey,
> > >
> > > I don't see any problem in letting services work on a deactivated cluster.
> > > All services need is discovery messages and compute tasks.
> > > Both of these features are available at all times.
> > >
> > > But it should be configurable. Services may need caches for their work,
> > > so it's better to undeploy such services on cluster deactivation.
> > > We may introduce a new property in ServiceConfiguration.
> > >
> > > I think, this topic deserves a separate discussion.
> > > Could you start another thread?
> > >
> > > Denis
> > >
> > > чт, 6 дек. 2018 г. в 13:27, Alexey Kuznetsov <akuznetsov@apache.org>:
> > >
> > > > Hi,   Vyacheslav!
> > > >
> > > > I'm thinking about to use Services API to implement Web Agent as a cluster
> > > > singleton service.
> > > > It will improve Web Console UX, because it will not needed to start
> > > > separate java program.
> > > > Just start cluster with Web agent enabled on cluster configuration.
> > > >
> > > > But in order to do this, I need that services should:
> > > >   1) Work when cluster NOT ACTIVE.
> > > >   2) Auto restart with cluster (when cluster was restarted).
> > > >
> > > > Could we support mentioned features on "Service Grid redesign - phase
2" ?
> > > >
> > > > Please let me know.
> > > >
> > > > --
> > > > Alexey Kuznetsov
> > > >



--
Best Regards, Vyacheslav D.

Mime
View raw message