Ver código fonte

change driver_map_cloud_swap_server.

yuchuli 3 anos atrás
pai
commit
7337c7bf17

+ 1 - 1
src/driver/driver_cloud_swap_server/main.cpp

@@ -109,7 +109,7 @@ class CloudSwapServiceImpl final : public iv::CloudSwapStream::Service {
               ndatasize = request.xdata().size();
               std::shared_ptr<char> pdata_ptr = std::shared_ptr<char>(new char[ndatasize]);
               memcpy(pdata_ptr.get(),request.xdata().data(),ndatasize);
-              gpswapserver->broadmsg(strobjnodeid,pdata_ptr,ndatasize,request.pingavg());
+              gpswapserver->broadmsg(strobjnodeid,pdata_ptr,ndatasize,request.pingavg(),request.flatencyinstore());
           }
           else
           {

+ 2 - 2
src/driver/driver_cloud_swap_server/swapserver.cpp

@@ -5,13 +5,13 @@ swapserver::swapserver()
 
 }
 
-int swapserver::broadmsg(std::string strobjid,std::shared_ptr<char> pdata_ptr,int ndatasize,double fpingavg)
+int swapserver::broadmsg(std::string strobjid,std::shared_ptr<char> pdata_ptr,int ndatasize,double fpingavg,double flatency_nodestore)
 {
     int nrtn = 0;
     int i;
     for(i=0;i<(int)mvectorswap.size();i++)
     {
-        nrtn = nrtn + mvectorswap[i]->sendmsg(strobjid,pdata_ptr,ndatasize,fpingavg);
+        nrtn = nrtn + mvectorswap[i]->sendmsg(strobjid,pdata_ptr,ndatasize,fpingavg,flatency_nodestore);
     }
     return nrtn;
 }

+ 1 - 1
src/driver/driver_cloud_swap_server/swapserver.h

@@ -15,7 +15,7 @@ private:
     std::mutex mmutex;
 
 public:
-    int broadmsg(std::string strobjid,std::shared_ptr<char> pdata_ptr,int ndatasize,double fpingavg);
+    int broadmsg(std::string strobjid,std::shared_ptr<char> pdata_ptr,int ndatasize,double fpingavg,double flatency_nodestore);
     swapunit * AddSwapUnit(std::string strnodeid,std::string strobjnodeid,::grpc::ServerReaderWriter<iv::CloudSwapReplyStream, iv::CloudSwapRequestStream>* stream);
 };
 

+ 6 - 1
src/driver/driver_cloud_swap_server/swapunit.cpp

@@ -12,7 +12,7 @@ swapunit::~swapunit()
 
 }
 
-int swapunit::sendmsg(std::string strobjid, std::shared_ptr<char> pdata_ptr, int ndatasize,double fpingavg)
+int swapunit::sendmsg(std::string strobjid, std::shared_ptr<char> pdata_ptr, int ndatasize,double fpingavg,double flatency_nodestore)
 {
     if(mbrun == false)
     {
@@ -28,6 +28,7 @@ int swapunit::sendmsg(std::string strobjid, std::shared_ptr<char> pdata_ptr, int
     xmsg.nRecvTime = std::chrono::system_clock::now().time_since_epoch().count();
     xmsg.pdata_ptr = pdata_ptr;
     xmsg.pingavg = fpingavg;
+    xmsg.flatency_nodestore = flatency_nodestore;
 
 
     if(mvectorsendmsgbuf.size()>30000)
@@ -82,6 +83,7 @@ void swapunit::threadsend(::grpc::ServerReaderWriter<iv::CloudSwapReplyStream, i
         iv::CloudSwapReplyStream xreply;
         xreply.set_nres(xvectorsendmsgbuf.size());
         double fpinginobj;
+        double flatencyinnodestore = 0.0;
         if(xvectorsendmsgbuf.size() == 0)
         {
             xreply.set_flatency_inserver(0.0);
@@ -94,12 +96,15 @@ void swapunit::threadsend(::grpc::ServerReaderWriter<iv::CloudSwapReplyStream, i
             flatinserver = flatinserver/1000000.0;  //ms
             xreply.set_flatency_inserver(flatinserver);
             fpinginobj = xvectorsendmsgbuf[0].pingavg;
+            flatencyinnodestore = xvectorsendmsgbuf[0].flatency_nodestore;
+
         }
         for(i=0;i<nsize;i++)
         {
             std::cout<<" add reply data. "<<std::endl;
             xreply.add_xdata(xvectorsendmsgbuf[i].pdata_ptr.get(),xvectorsendmsgbuf[i].ndatasize);
         }
+        xreply.set_flatencyinstore_obj(flatencyinnodestore);
         xreply.set_flatency_innode(mfpingavg);
         xreply.set_flatency_inobjnode(fpinginobj);
         xreply.set_nmsgservertime(xNow);

+ 2 - 1
src/driver/driver_cloud_swap_server/swapunit.h

@@ -19,6 +19,7 @@ struct swapmsg
     int ndatasize;
     int64_t nRecvTime;
     double pingavg ;
+    double flatency_nodestore;
 };
 
 }
@@ -48,7 +49,7 @@ private:
     std::condition_variable mcv;
 
 public:
-    int sendmsg(std::string strobjid,std::shared_ptr<char> pdata_ptr,int ndatasize,double fpingavg);
+    int sendmsg(std::string strobjid,std::shared_ptr<char> pdata_ptr,int ndatasize,double fpingavg,double flatency_nodestore);
     bool CanDel();
     void stopswap();
     void SetPingAvg(double fpingavg);