MonetDB: mosaic - Get rid of MCstartMaintenance and MCexitMainte...

Martin Kersten martin.kersten at cwi.nl
Wed Sep 18 17:13:33 CEST 2019


I suggest to keep these functions available in the code base.

They may be needed soon and are easier to control then
using monetdb stop <db>



On 17/09/2019 17:41, Aris Koning wrote:
> Changeset: b9c74a8bec29 for MonetDB
> URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b9c74a8bec29
> Modified Files:
> 	clients/Tests/exports.stable.out
> 	monetdb5/mal/mal_client.c
> 	monetdb5/mal/mal_client.h
> Branch: mosaic
> Log Message:
> 
> Get rid of MCstartMaintenance and MCexitMaintenance.
> 
> 
> diffs (99 lines):
> 
> diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
> --- a/clients/Tests/exports.stable.out
> +++ b/clients/Tests/exports.stable.out
> @@ -1449,7 +1449,6 @@ str MBMuniform(bat *ret, oid *base, lng
>   int MCactiveClients(void);
>   str MCawakeClient(int id);
>   void MCcloseClient(Client c);
> -str MCexitMaintenance(Client cntxt);
>   Client MCforkClient(Client father);
>   Client MCgetClient(int id);
>   bool MCinit(void);
> @@ -1457,7 +1456,6 @@ Client MCinitClient(oid user, bstream *f
>   int MCinitClientThread(Client c);
>   int MCpushClientInput(Client c, bstream *new_input, int listing, char *prompt);
>   int MCshutdowninprogress(void);
> -str MCstartMaintenance(Client cntxt, lng timeout, int abort);
>   void MCstopClients(Client c);
>   str MCsuspendClient(int id);
>   int MCvalid(Client c);
> diff --git a/monetdb5/mal/mal_client.c b/monetdb5/mal/mal_client.c
> --- a/monetdb5/mal/mal_client.c
> +++ b/monetdb5/mal/mal_client.c
> @@ -518,64 +518,6 @@ MCawakeClient(int id)
>   }
>   
>   /*
> - * Server maintenance modes without stopping it completery calls for care.
> - * Any new client connection should be temporily be refused
> - * and all clients should stop at a MAL instruction.
> - * In rare cases, all running queries should be aborted.
> - */
> -str
> -MCstartMaintenance(Client cntxt, lng timeout, int abort)
> -{
> -	int active=1;
> -	Client c = mal_clients;
> -	(void) abort;
> -
> -	MT_lock_set(&mal_contextLock);
> -	for(c= mal_clients +1;  c < mal_clients+MAL_MAXCLIENTS; c++)
> -	if( cntxt != c)
> -		c-> itrace = 'S';
> -	// wait for all running users to stop
> -	while (active && timeout > 0){
> -		active = 0;
> -		for(c= mal_clients +1;  c < mal_clients+MAL_MAXCLIENTS; c++)
> -		if( cntxt!= c && c->mode == RUNCLIENT){
> -			if (abort ){
> -				c->mode = FINISHCLIENT;
> -				active++;
> -			} else
> -			if( cntxt != c)
> -				active += c->itrace == 'S';
> -		} else
> -		if (cntxt!= c &&  c->mode == FINISHCLIENT)
> -			active++;
> -		if( active == 0)
> -			break;
> -		MT_sleep_ms(1000);
> -		timeout--;
> -	}
> -	if( timeout == 0 && active){
> -		for(c= mal_clients +1;  c < mal_clients+MAL_MAXCLIENTS; c++)
> -		if( c->itrace == 'W' || c->itrace == 'S')
> -			c->itrace = 0;
> -		throw(MAL,"clients.startmaintenance","timeout");
> -	}
> -	return MAL_SUCCEED;
> -}
> -
> -str
> -MCexitMaintenance(Client cntxt)
> -{
> -	Client c = mal_clients;
> -	(void) cntxt;
> -
> -	for(c= mal_clients +1;  c < mal_clients+MAL_MAXCLIENTS; c++)
> -	if( c->itrace == 'W' || c->itrace == 'S')
> -		c->itrace = 0;
> -	MT_lock_unset(&mal_contextLock);
> -	return MAL_SUCCEED;
> -}
> -
> -/*
>    * Input to be processed is collected in a Client specific buffer.  It
>    * is filled by reading information from a stream, a terminal, or by
>    * scheduling strings constructed internally.  The latter involves
> diff --git a/monetdb5/mal/mal_client.h b/monetdb5/mal/mal_client.h
> --- a/monetdb5/mal/mal_client.h
> +++ b/monetdb5/mal/mal_client.h
> @@ -201,8 +201,6 @@ mal_export str     MCsuspendClient(int i
>   mal_export str     MCawakeClient(int id);
>   mal_export int     MCpushClientInput(Client c, bstream *new_input, int listing, char *prompt);
>   mal_export int	   MCvalid(Client c);
> -mal_export str MCstartMaintenance(Client cntxt, lng timeout, int abort);
> -mal_export str MCexitMaintenance(Client cntxt);
>   
>   mal_export str PROFinitClient(Client c);
>   mal_export str PROFexitClient(Client c);
> _______________________________________________
> checkin-list mailing list
> checkin-list at monetdb.org
> https://www.monetdb.org/mailman/listinfo/checkin-list
> 


More information about the developers-list mailing list