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
11
Issues
11
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
dc59a4c2
Commit
dc59a4c2
authored
Mar 27, 2018
by
Matthieu Dorier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
externalized initialization of SSG group
parent
b1bb6db5
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
19 additions
and
19 deletions
+19
-19
include/mobject-server.h
include/mobject-server.h
+3
-0
src/server/mobject-server-daemon.c
src/server/mobject-server-daemon.c
+14
-2
src/server/mobject-server.c
src/server/mobject-server.c
+2
-17
No files found.
include/mobject-server.h
View file @
dc59a4c2
...
...
@@ -8,6 +8,7 @@
#define MOBJECT_SERVER_H
#include <margo.h>
#include <ssg.h>
#include <bake-client.h>
#include <sdskv-client.h>
#include <sdskv-server.h>
...
...
@@ -30,6 +31,7 @@ typedef struct mobject_server_context* mobject_provider_t;
* @param[in] pool Argobots pool for the provider
* @param[in] bake_ph Bake provider handle to use to write/read data
* @param[in] sdskv_ph SDSKV provider handle to use to access metadata
* @param[in] gid SSG group id of the group gathering all mobject providers
* @param[in] cluster_file file name to write cluster connect info to
* @param[out] provider resulting provider
*
...
...
@@ -41,6 +43,7 @@ int mobject_provider_register(
ABT_pool
pool
,
bake_provider_handle_t
bake_ph
,
sdskv_provider_handle_t
sdskv_ph
,
ssg_group_id_t
gid
,
const
char
*
cluster_file
,
mobject_provider_t
*
provider
);
...
...
src/server/mobject-server-daemon.c
View file @
dc59a4c2
...
...
@@ -39,6 +39,7 @@ typedef struct {
static
void
finalize_ssg_cb
(
void
*
data
);
static
void
finalize_bake_client_cb
(
void
*
data
);
static
void
finalize_sdskv_client_cb
(
void
*
data
);
static
void
finalized_ssg_group_cb
(
void
*
data
);
int
main
(
int
argc
,
char
*
argv
[])
{
...
...
@@ -117,13 +118,18 @@ int main(int argc, char *argv[])
ASSERT
(
ret
==
0
,
"sdskv_provider_handle_create() failed (ret = %d)
\n
"
,
ret
);
margo_push_finalize_callback
(
mid
,
&
finalize_sdskv_client_cb
,
(
void
*
)
&
sdskv_clt_data
);
/* SSG group creation */
ssg_group_id_t
gid
=
ssg_group_create_mpi
(
MOBJECT_SERVER_GROUP_NAME
,
MPI_COMM_WORLD
,
NULL
,
NULL
);
ASSERT
(
gid
!=
SSG_GROUP_ID_NULL
,
"ssg_group_create_mpi() failed (ret = %s)"
,
"SSG_GROUP_ID_NULL"
);
margo_push_finalize_callback
(
mid
,
&
finalized_ssg_group_cb
,
(
void
*
)
&
gid
);
/* Mobject provider initialization */
mobject_provider_t
mobject_prov
;
ret
=
mobject_provider_register
(
mid
,
1
,
MOBJECT_ABT_POOL_DEFAULT
,
bake_clt_data
.
provider_handle
,
sdskv_clt_data
.
provider_handle
,
cluster_file
,
&
mobject_prov
);
sdskv_clt_data
.
provider_handle
,
gid
,
cluster_file
,
&
mobject_prov
);
if
(
ret
!=
0
)
{
fprintf
(
stderr
,
"Error: Unable to initialize mobject provider
\n
"
);
...
...
@@ -159,3 +165,9 @@ static void finalize_sdskv_client_cb(void* data)
sdskv_provider_handle_release
(
clt_data
->
provider_handle
);
sdskv_client_finalize
(
clt_data
->
client
);
}
static
void
finalized_ssg_group_cb
(
void
*
data
)
{
ssg_group_id_t
gid
=
*
((
ssg_group_id_t
*
)
data
);
ssg_group_destroy
(
gid
);
}
src/server/mobject-server.c
View file @
dc59a4c2
...
...
@@ -40,6 +40,7 @@ int mobject_provider_register(
ABT_pool
pool
,
bake_provider_handle_t
bake_ph
,
sdskv_provider_handle_t
sdskv_ph
,
ssg_group_id_t
gid
,
const
char
*
cluster_file
,
mobject_provider_t
*
provider
)
{
...
...
@@ -67,15 +68,7 @@ int mobject_provider_register(
srv_ctx
->
pool
=
pool
;
srv_ctx
->
ref_count
=
1
;
/* server group create */
srv_ctx
->
gid
=
ssg_group_create_mpi
(
MOBJECT_SERVER_GROUP_NAME
,
MPI_COMM_WORLD
,
NULL
,
NULL
);
/* XXX membership update callbacks unused currently */
if
(
srv_ctx
->
gid
==
SSG_GROUP_ID_NULL
)
{
fprintf
(
stderr
,
"Error: Unable to create the mobject server group
\n
"
);
free
(
srv_ctx
);
return
-
1
;
}
srv_ctx
->
gid
=
gid
;
my_id
=
ssg_get_group_self_id
(
srv_ctx
->
gid
);
/* one proccess writes cluster connect info to file for clients to find later */
...
...
@@ -89,7 +82,6 @@ int mobject_provider_register(
/* XXX: this call is performed by one process, and we do not currently
* have an easy way to propagate this error to the entire cluster group
*/
ssg_group_destroy
(
srv_ctx
->
gid
);
free
(
srv_ctx
);
return
-
1
;
}
...
...
@@ -102,12 +94,10 @@ int mobject_provider_register(
ret
=
bake_probe
(
bake_ph
,
1
,
&
(
srv_ctx
->
bake_tid
),
&
num_targets
);
if
(
ret
!=
0
)
{
fprintf
(
stderr
,
"Error: unable to probe bake server for targets
\n
"
);
ssg_group_destroy
(
srv_ctx
->
gid
);
return
-
1
;
}
if
(
num_targets
<
1
)
{
fprintf
(
stderr
,
"Error: unable to find a target on bake provider
\n
"
);
ssg_group_destroy
(
srv_ctx
->
gid
);
free
(
srv_ctx
);
return
-
1
;
}
...
...
@@ -117,7 +107,6 @@ int mobject_provider_register(
ret
=
sdskv_open
(
sdskv_ph
,
"oid_map"
,
&
(
srv_ctx
->
oid_db_id
));
if
(
ret
!=
SDSKV_SUCCESS
)
{
fprintf
(
stderr
,
"Error: unable to open oid_map from SDSKV provider
\n
"
);
ssg_group_destroy
(
srv_ctx
->
gid
);
bake_provider_handle_release
(
srv_ctx
->
bake_ph
);
sdskv_provider_handle_release
(
srv_ctx
->
sdskv_ph
);
free
(
srv_ctx
);
...
...
@@ -127,7 +116,6 @@ int mobject_provider_register(
fprintf
(
stderr
,
"Error: unable to open name_map from SDSKV provider
\n
"
);
bake_provider_handle_release
(
srv_ctx
->
bake_ph
);
sdskv_provider_handle_release
(
srv_ctx
->
sdskv_ph
);
ssg_group_destroy
(
srv_ctx
->
gid
);
free
(
srv_ctx
);
}
ret
=
sdskv_open
(
sdskv_ph
,
"seg_map"
,
&
(
srv_ctx
->
segment_db_id
));
...
...
@@ -135,7 +123,6 @@ int mobject_provider_register(
fprintf
(
stderr
,
"Error: unable to open seg_map from SDSKV provider
\n
"
);
bake_provider_handle_release
(
srv_ctx
->
bake_ph
);
sdskv_provider_handle_release
(
srv_ctx
->
sdskv_ph
);
ssg_group_destroy
(
srv_ctx
->
gid
);
free
(
srv_ctx
);
}
ret
=
sdskv_open
(
sdskv_ph
,
"omap_map"
,
&
(
srv_ctx
->
omap_db_id
));
...
...
@@ -143,7 +130,6 @@ int mobject_provider_register(
fprintf
(
stderr
,
"Error: unable to open omap_map from SDSKV provider
\n
"
);
bake_provider_handle_release
(
srv_ctx
->
bake_ph
);
sdskv_provider_handle_release
(
srv_ctx
->
sdskv_ph
);
ssg_group_destroy
(
srv_ctx
->
gid
);
free
(
srv_ctx
);
}
...
...
@@ -276,7 +262,6 @@ static void mobject_finalize_cb(void* data)
sdskv_provider_handle_release
(
srv_ctx
->
sdskv_ph
);
bake_provider_handle_release
(
srv_ctx
->
bake_ph
);
ssg_group_destroy
(
srv_ctx
->
gid
);
free
(
srv_ctx
);
}
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