From cea4b2b8459e2efe767d9459d8b566837a40d2aa Mon Sep 17 00:00:00 2001 From: sageweil Date: Thu, 6 Dec 2007 18:57:52 +0000 Subject: [PATCH] newsyn can reuse an existing monmap git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@2190 29311d96-e01e-0410-9327-a35deaab8ce9 --- trunk/ceph/newsyn.cc | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/trunk/ceph/newsyn.cc b/trunk/ceph/newsyn.cc index 09066a658d4c1..2ad65a85b0339 100644 --- a/trunk/ceph/newsyn.cc +++ b/trunk/ceph/newsyn.cc @@ -45,7 +45,8 @@ public: extern std::map g_fake_kill_after; - +bool use_existing_monmap = false; +char *monmap_fn = ".ceph_monmap"; /* * start up NewMessenger via MPI. */ @@ -59,6 +60,14 @@ pair mpi_bootstrap_new(int& argc, char**& argv, MonMap *monmap) MPI_Comm_size(MPI_COMM_WORLD, &mpi_world); MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank); + if (use_existing_monmap && mpi_rank < g_conf.num_mon) { + int r = monmap->read(monmap_fn); + assert(r >= 0); + g_my_addr = monmap->get_inst(mpi_rank).addr; + cout << "i am monitor, will bind to " << g_my_addr + << " from existing " << monmap_fn << std::endl; + } + // first, synchronize clocks. if (g_conf.clock_tare) { if (1) { @@ -104,7 +113,7 @@ pair mpi_bootstrap_new(int& argc, char**& argv, MonMap *monmap) bufferlist bl; if (mpi_rank == 0) { monmap->encode(bl); - monmap->write(".ceph_monmap"); + monmap->write(monmap_fn); } else { int l = g_conf.num_mon * 1000; // nice'n big. bufferptr bp(l); @@ -173,6 +182,9 @@ int main(int argc, char **argv) int w = atoi(args[++i]); kill_osd_after[o] = w; } + else if (strcmp(args[i], "--use_existing_monmap") == 0) { + use_existing_monmap = true; + } else if (strcmp(args[i], "--share_single_client") == 0) { share_single_client = 1; } else { -- 2.39.5