Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mobject-store
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
13
Issues
13
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sds
mobject-store
Commits
e759a95d
Commit
e759a95d
authored
Oct 25, 2017
by
Shane Snyder
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
write server cluster info to file
parent
b08c700d
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
41 additions
and
11 deletions
+41
-11
include/mobject-server.h
include/mobject-server.h
+1
-1
src/mobject-server-daemon.c
src/mobject-server-daemon.c
+6
-8
src/mobject-server.c
src/mobject-server.c
+34
-2
No files found.
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
Markdown
is supported
0%
Try again
or
attach a new file
Attach a 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