Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
sds
mobject-store
Commits
e759a95d
Commit
e759a95d
authored
Oct 25, 2017
by
Shane Snyder
Browse files
write server cluster info to file
parent
b08c700d
Changes
3
Hide whitespace changes
Inline
Side-by-side
include/mobject-server.h
View file @
e759a95d
...
...
@@ -13,7 +13,7 @@
#define MOBJECT_SERVER_GROUP_NAME "mobject-store-servers"
int
mobject_server_init
(
margo_instance_id
mid
);
int
mobject_server_init
(
margo_instance_id
mid
,
const
char
*
cluster_file
);
/**
* Start a mobject server instance
...
...
src/mobject-server-daemon.c
View file @
e759a95d
...
...
@@ -12,16 +12,16 @@
void
usage
(
void
)
{
fprintf
(
stderr
,
"Usage: mobject-server-daemon <listen_addr> <
gid
_file>
\n
"
);
fprintf
(
stderr
,
"Usage: mobject-server-daemon <listen_addr> <
cluster
_file>
\n
"
);
fprintf
(
stderr
,
" <listen_addr> the Mercury address to listen on
\n
"
);
fprintf
(
stderr
,
" <
gid
_file>
the file to write
the server SSG group ID
to
\n
"
);
fprintf
(
stderr
,
" <
cluster
_file> the file to write
mobject cluster connect info
to
\n
"
);
exit
(
-
1
);
}
int
main
(
int
argc
,
char
*
argv
[])
{
char
*
listen_addr
;
char
*
gid
_file
;
char
*
cluster
_file
;
margo_instance_id
mid
;
int
ret
;
...
...
@@ -29,7 +29,7 @@ int main(int argc, char *argv[])
if
(
argc
!=
3
)
usage
();
listen_addr
=
argv
[
1
];
gid
_file
=
argv
[
2
];
cluster
_file
=
argv
[
2
];
/* XXX: MPI required for SSG bootstrapping */
MPI_Init
(
&
argc
,
&
argv
);
...
...
@@ -41,7 +41,7 @@ int main(int argc, char *argv[])
return
-
1
;
}
ret
=
mobject_server_init
(
mid
);
ret
=
mobject_server_init
(
mid
,
cluster_file
);
if
(
ret
!=
0
)
{
fprintf
(
stderr
,
"Error: Unable to initialize mobject server
\n
"
);
...
...
@@ -49,12 +49,10 @@ int main(int argc, char *argv[])
return
-
1
;
}
/* XXX write GID to file... where does gid come from? */
/* shutdown */
//margo_wait_for_finalize(mid); /* XXX: probably need a conditional here, so we can cleanup after blocking */
mobject_server_shutdown
(
mid
);
margo_finalize
(
mid
);
//margo_wait_for_finalize(mid);
MPI_Finalize
();
return
0
;
...
...
src/mobject-server.c
View file @
e759a95d
...
...
@@ -14,16 +14,19 @@
#include
"mobject-server.h"
typedef
struct
mobject_server_context
{
/* XXX bake, sds-keyval stuff */
ssg_group_id_t
gid
;
}
mobject_server_context_t
;
static
int
mobject_server_store_cluster_info
(
const
char
*
file_name
);
/* XXX one global mobject server state struct */
mobject_server_context_t
*
g_srv_ctx
=
NULL
;
int
mobject_server_init
(
margo_instance_id
mid
)
int
mobject_server_init
(
margo_instance_id
mid
,
const
char
*
cluster_file
)
{
int
ret
;
...
...
@@ -58,12 +61,25 @@ int mobject_server_init(margo_instance_id mid)
return
-
1
;
}
/* write cluster connect info to file for clients to find later */
ret
=
mobject_server_store_cluster_info
(
cluster_file
);
if
(
ret
!=
0
)
{
fprintf
(
stderr
,
"Error: unable to store mobject cluster info to file %s
\n
"
,
cluster_file
);
/* XXX: this call is performed by one process under the covers, and we
* don't currently have a way to propagate this error to the entire cluster
*/
ssg_group_destroy
(
g_srv_ctx
->
gid
);
ssg_finalize
();
return
-
1
;
}
/* XXX cleanup? */
return
0
;
}
#if 0
int
mobject_server_register
(
margo_instance_id
mid
,
const
char
*
poolname
)
{
int
ret
=
0
;
...
...
@@ -90,3 +106,19 @@ void mobject_server_shutdown(margo_instance_id mid)
return
;
}
static
int
mobject_server_store_cluster_info
(
const
char
*
file_name
)
{
int
my_id
;
int
ret
;
assert
(
g_srv_ctx
);
/* only have one group member do this */
my_id
=
ssg_get_group_self_id
(
g_srv_ctx
->
gid
);
if
(
my_id
!=
0
)
return
0
;
ret
=
ssg_group_id_store
(
file_name
,
g_srv_ctx
->
gid
);
return
ret
;
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment