On Sun, Jan 6, 2019 at 2:27 AM Patrick Donnelly <pdonnell@xxxxxxxxxx> wrote: > > Hi Kefu, > > On Sat, Jan 5, 2019 at 6:42 AM kefu chai <tchaikov@xxxxxxxxx> wrote: > > > > as you might know, seastar encourage a share-nothing programming > > paradigm. as in previous discussions we found that there are always > > some cross-core communications in the sharded seastar-osd, because > > there are couple infrastructures could be shared by a sharded OSD, > > namely: > > > > - osdmap cache > > - connection to peer OSDs, and heartbeats with them > > - connection to monitor and mgr, and beacon/reports to them > > - i/o to the underlying objectstore > > > > recently, when we are working on cross-core messenger[0], we found > > that, in order to share the connection between cores we need to have > > types like "seastar::lw_shared_ptr<seastar::foreign_ptr<ConnectionRef>>", > > because > > - the connections to peer OSDs are shared across cores, > > - the connections are shared by multiple continuations on the local > > core -- either locally or remotely. > > I'm not up-to-speed on all the proposals here but it seems to me the > simple solution for the peer OSD connection is to have multiple > connections between peer OSDs (one for each PG?). Is that not feasible > for some reason? i guess you meant one for each peer OSD. yeah, that's the 1-to-1 mapping proposal where the TCP connections are not shared. > > -- > Patrick Donnelly -- Regards Kefu Chai