瀏覽代碼

HPCC-25659 Make sure Roxie resend-related options are documented

Rename resend option to avoid clashing with old option of the same name.

Remove obsolete options from xsd/default environments

  serverSideCacheSize="0"
  udpInlineCollation="false"
  udpInlineCollationPacketLimit="50"
  udpSendCompletedInData="false"

Add new options

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 4 年之前
父節點
當前提交
faefe0a055

+ 7 - 11
initfiles/componentfiles/configschema/xsd/roxie.xsd

@@ -305,12 +305,6 @@
                     <xs:attribute name="udpFlowSocketsSize" type="xs:nonNegativeInteger"
                                   hpcc:displayName="UDP Flow Socket Size (bytes)" hpcc:presetValue="131071"
                                   hpcc:tooltip="Controls the read socket buffer size of the UDP layer flow control sockets"/>
-                    <xs:attribute name="udpInlineCollation" type="xs:boolean" hpcc:displayName="UDP Inline Collation"
-                                  hpcc:presetValue="false"
-                                  hpcc:tooltip="Controls whether UDP packets are collated on the reading thread or queued up for collation on a separate thread"/>
-                    <xs:attribute name="udpInlineCollationPacketLimit" type="xs:nonNegativeInteger"
-                                  hpcc:displayName="UDP Inline Colation Packet Limit" hpcc:presetValue="50"
-                                  hpcc:tooltip="Controls how many UDP packets requested at once when inline collation selected"/>
                     <xs:attribute name="udpLocalWriteSocketSize" type="xs:nonNegativeInteger"
                                   hpcc:displayName="UDP Local Write Socket Size (bytes)" hpcc:presetValue="131071"
                                   hpcc:tooltip="Controls the write socket buffer size of the local UDP sockets (Agent to Server on same node)"/>
@@ -334,11 +328,16 @@
                     <xs:attribute name="udpRequestToSendAckTimeout" type="xs:nonNegativeInteger"
                                   hpcc:displayName="UDP Request To Send Ack Timeout (ms)" hpcc:presetValue="100"
                                   hpcc:tooltip="Controls the timeout value agent udp will wait for acknowledgement of a request to send from a Roxie server, in milliseconds"/>
-                    <xs:attribute name="udpResendEnabled" type="xs:boolean" hpcc:displayName="Enable UDP Resend"
-                                  hpcc:presetValue="false" hpcc:tooltip="UDP transport layer packet resend ability"/>
+                    <xs:attribute name="udpResendLostPackets" type="xs:boolean" hpcc:displayName="Enable UDP Resend"
+                                  hpcc:presetValue="true" hpcc:tooltip="UDP transport layer resend lost packets"/>
+                    <xs:attribute name="udpResendTimeout" type="xs:nonNegativeInteger" hpcc:displayName="UDP resend timeout"
+                                  hpcc:presetValue="10" hpcc:tooltip="Time in milliseconds to assume a packet is in transit before assuming lost"/>
                     <xs:attribute name="udpSendQueueSize" type="xs:nonNegativeInteger"
                                   hpcc:displayName="UDP Send Queue Size" hpcc:presetValue="50"
                                   hpcc:tooltip="UDP transport layer send queue size"/>
+                    <xs:attribute name="udpStatsReportInterval" type="xs:nonNegativeInteger"
+                                  hpcc:displayName="UDP transport layer stats reporting interval" hpcc:presetValue="60000"
+                                  hpcc:tooltip="UDP transport layer send queue size"/>
                     <xs:attribute name="useAeron" type="xs:boolean" hpcc:displayName="Use Aeron"
                                   hpcc:presetValue="false"
                                   hpcc:tooltip="Use Aeron for slave->server communication"/>
@@ -348,9 +347,6 @@
                     <xs:attribute name="blobCacheMem" type="xs:nonNegativeInteger"
                                   hpcc:displayName="Blob Cache Memory Size (Mb)" hpcc:presetValue="0"
                                   hpcc:tooltip="Size (in Mb) of blob index page cache"/>
-                    <xs:attribute name="serverSideCacheSize" type="xs:nonNegativeInteger"
-                                  hpcc:displayName="Server Side Cache Size" hpcc:presetValue="0"
-                                  hpcc:tooltip="Number of agent results to cache on Roxie server"/>
                     <xs:attribute name="leafCacheMem" type="xs:nonNegativeInteger"
                                   hpcc:displayName="Leaf Cache Memory Size (Mb)" hpcc:presetValue="50"
                                   hpcc:tooltip="Size (in Mb) of leaf index page cache"/>

+ 22 - 29
initfiles/componentfiles/configxml/roxie.xsd.in

@@ -1076,20 +1076,6 @@
         </xs:appinfo>
       </xs:annotation>
     </xs:attribute>
-    <xs:attribute name="udpInlineCollation" type="xs:boolean" use="optional" default="false">
-      <xs:annotation>
-        <xs:appinfo>
-          <tooltip>Controls whether UDP packets are collated on the reading thread or queued up for collation on a separate thread</tooltip>
-        </xs:appinfo>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="udpInlineCollationPacketLimit" type="xs:nonNegativeInteger" use="optional" default="50">
-      <xs:annotation>
-        <xs:appinfo>
-          <tooltip>Controls how many UDP packets requested at once when inline collation selected</tooltip>
-        </xs:appinfo>
-      </xs:annotation>
-    </xs:attribute>
     <xs:attribute name="udpLocalWriteSocketSize" type="xs:nonNegativeInteger" use="optional" default="131071">
       <xs:annotation>
         <xs:appinfo>
@@ -1100,7 +1086,7 @@
     <xs:attribute name="udpMaxRetryTimedoutReqs" type="xs:nonNegativeInteger" use="optional" default="0">
       <xs:annotation>
         <xs:appinfo>
-          <tooltip>Controls the Max number of agent "request to send" to be retried. 0 means keep retrying forever</tooltip>
+          <tooltip>Controls the Max number of agent "request to send" or "permission to send" to be retried. 0 means keep retrying forever</tooltip>
         </xs:appinfo>
       </xs:annotation>
     </xs:attribute>
@@ -1132,17 +1118,24 @@
         </xs:appinfo>
       </xs:annotation>
     </xs:attribute>
-        <xs:attribute name="udpRequestToSendTimeout" type="xs:nonNegativeInteger" use="optional" default="0">
-            <xs:annotation>
-                <xs:appinfo>
-                    <tooltip>Controls the timeout value agent udp will wait for permission to send from a Roxie server, in milliseconds. Specify 0 to calcuate automatically.</tooltip>
-                </xs:appinfo>
-            </xs:annotation>
-        </xs:attribute>
-    <xs:attribute name="udpResendEnabled" type="xs:boolean" use="optional" default="false">
+    <xs:attribute name="udpRequestToSendTimeout" type="xs:nonNegativeInteger" use="optional" default="0">
+        <xs:annotation>
+            <xs:appinfo>
+                <tooltip>Controls the timeout value agent udp will wait for permission to send from a Roxie server, in milliseconds. Specify 0 to calcuate automatically.</tooltip>
+            </xs:appinfo>
+        </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="udpResendLostPackets" type="xs:boolean" use="optional" default="true">
+      <xs:annotation>
+        <xs:appinfo>
+          <tooltip>UDP transport layer resend lost packets</tooltip>
+        </xs:appinfo>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="udpResendTimeout" type="xs:nonNegativeInteger" use="optional" default="10">
       <xs:annotation>
         <xs:appinfo>
-          <tooltip>UDP transport layer packet resend ability</tooltip>
+          <tooltip>Time in milliseconds to assume a packet is in transit before assuming lost</tooltip>
         </xs:appinfo>
       </xs:annotation>
     </xs:attribute>
@@ -1153,18 +1146,18 @@
         </xs:appinfo>
       </xs:annotation>
     </xs:attribute>
-  <xs:attributeGroup name="Cache">
-    <xs:attribute name="blobCacheMem" type="xs:nonNegativeInteger" use="optional" default="0">
+    <xs:attribute name="udpStatsReportInterval" type="xs:nonNegativeInteger" use="optional" default="60000">
       <xs:annotation>
         <xs:appinfo>
-          <tooltip>Size (in Mb) of blob index page cache</tooltip>
+          <tooltip>UDP transport layer stats reporting interval</tooltip>
         </xs:appinfo>
       </xs:annotation>
     </xs:attribute>
-    <xs:attribute name="serverSideCacheSize" type="xs:nonNegativeInteger" use="optional" default="0">
+  <xs:attributeGroup name="Cache">
+    <xs:attribute name="blobCacheMem" type="xs:nonNegativeInteger" use="optional" default="0">
       <xs:annotation>
         <xs:appinfo>
-          <tooltip>Number of agent results to cache on Roxie server</tooltip>
+          <tooltip>Size (in Mb) of blob index page cache</tooltip>
         </xs:appinfo>
       </xs:annotation>
     </xs:attribute>

+ 1 - 5
initfiles/etc/DIR_NAME/environment.xml.in

@@ -120,7 +120,6 @@
                 reloadRetriesFailed="true"
                 remoteFilesExpire="3600000"
                 roxieMulticastEnabled="true"
-                serverSideCacheSize="0"
                 serverThreads="30"
                 simpleLocalKeyedJoins="true"
                 siteCertificate=""
@@ -143,8 +142,6 @@
                 traceLimit="10"
                 trapTooManyActiveQueries="true"
                 udpFlowSocketsSize="131071"
-                udpInlineCollation="false"
-                udpInlineCollationPacketLimit="50"
                 udpLocalWriteSocketSize="131071"
                 udpMaxRetryTimedoutReqs="0"
                 udpMaxSlotsPerClient="2147483647"
@@ -152,8 +149,7 @@
                 udpOutQsPriority="0"
                 udpQueueSize="100"
                 udpRequestToSendTimeout="5"
-                udpResendEnabled="false"
-                udpSendCompletedInData="false"
+                udpResendLostPackets="true"
                 udpSendQueueSize="50"
                 udpTraceLevel="1"
                 useHardLink="false"

+ 1 - 1
roxie/ccd/ccdmain.cpp

@@ -979,7 +979,7 @@ int CCD_API roxie_main(int argc, const char *argv[], const char * defaultYaml)
         roxieMulticastEnabled = topology->getPropBool("@roxieMulticastEnabled", true) && !useAeron;   // enable use of multicast for sending requests to agents
 #endif
 
-        udpResendEnabled = topology->getPropBool("@udpResendEnabled", true);
+        udpResendLostPackets = topology->getPropBool("@udpResendLostPackets", true);
         udpResendTimeout = topology->getPropInt("@udpResendTimeout", 10);  // milliseconds
         udpAssumeSequential = topology->getPropBool("@udpAssumeSequential", false);
         udpMaxPendingPermits = topology->getPropInt("@udpMaxPendingPermits", 1);

+ 1 - 1
roxie/ccd/ccdqueue.cpp

@@ -2846,7 +2846,7 @@ public:
 
         if (udpMaxSlotsPerClient > udpQueueSize)
             udpMaxSlotsPerClient = udpQueueSize;
-        if (udpResendEnabled && udpMaxSlotsPerClient > TRACKER_BITS)
+        if (udpResendLostPackets && udpMaxSlotsPerClient > TRACKER_BITS)
             udpMaxSlotsPerClient = TRACKER_BITS;
         unsigned serverFlowPort = topology->getPropInt("@serverFlowPort", CCD_SERVER_FLOW_PORT);
         unsigned dataPort = topology->getPropInt("@dataPort", CCD_DATA_PORT);

+ 1 - 1
roxie/udplib/udplib.hpp

@@ -178,7 +178,7 @@ extern UDPLIB_API unsigned udpRequestToSendAckTimeout;
 
 extern UDPLIB_API void stopAeronDriver();
 
-extern UDPLIB_API bool udpResendEnabled;
+extern UDPLIB_API bool udpResendLostPackets;
 extern UDPLIB_API unsigned udpResendTimeout;  // in millseconds
 extern UDPLIB_API unsigned udpMaxPendingPermits;
 extern UDPLIB_API bool udpAssumeSequential;

+ 1 - 1
roxie/udplib/udpsha.cpp

@@ -371,7 +371,7 @@ bool PacketTracker::noteSeen(UdpPacketHeader &hdr)
         // We have taken steps to try to avoid the former...
         // In theory could try to preserve SOME information in the former case, but as it shouldn't happen, can we be bothered?
 #ifdef _DEBUG
-        if (udpResendEnabled)
+        if (udpResendLostPackets)
         {
             DBGLOG("Received packet %" SEQF "u will cause loss of information in PacketTracker", seq);
             dump();

+ 6 - 6
roxie/udplib/udptrr.cpp

@@ -140,7 +140,7 @@ class CReceiveManager : implements IReceiveManager, public CInterface
         }
         bool noteSeen(UdpPacketHeader &hdr)
         {
-            if (udpResendEnabled)
+            if (udpResendLostPackets)
             {
                 CriticalBlock b(psCrit);
                 return packetsSeen.noteSeen(hdr);
@@ -154,7 +154,7 @@ class CReceiveManager : implements IReceiveManager, public CInterface
             // We can send some if (a) the first available new packet is less than TRACKER_BITS above the first unreceived packet or
             // (b) we are assuming arrival in order, and there are some marked seen that are > first unseen OR
             // (c) the oldest in-flight packet has expired
-            if (!udpResendEnabled)
+            if (!udpResendLostPackets)
                 return true;
             {
                 CriticalBlock b(psCrit);
@@ -191,7 +191,7 @@ class CReceiveManager : implements IReceiveManager, public CInterface
                 msg.flowSeq = _flowSeq;
                 msg.destNode = returnAddress;
                 msg.max_data = 0;
-                if (udpResendEnabled)
+                if (udpResendLostPackets)
                 {
                     CriticalBlock b(psCrit);
                     msg.seen = packetsSeen.copy();
@@ -202,7 +202,7 @@ class CReceiveManager : implements IReceiveManager, public CInterface
                     StringBuffer ipStr;
                     DBGLOG("UdpReceiver: sending request_received msg seq %" SEQF "u to node=%s", _flowSeq, dest.getIpText(ipStr).str());
                 }
-                flowSocket->write(&msg, udpResendEnabled ? sizeof(UdpPermitToSendMsg) : offsetof(UdpPermitToSendMsg, seen));
+                flowSocket->write(&msg, udpResendLostPackets ? sizeof(UdpPermitToSendMsg) : offsetof(UdpPermitToSendMsg, seen));
                 flowPermitsSent++;
 
             }
@@ -223,7 +223,7 @@ class CReceiveManager : implements IReceiveManager, public CInterface
                 msg.flowSeq = flowSeq;
                 msg.destNode = returnAddress;
                 msg.max_data = maxTransfer;
-                if (udpResendEnabled)
+                if (udpResendLostPackets)
                 {
                     CriticalBlock b(psCrit);
                     msg.seen = packetsSeen.copy();
@@ -233,7 +233,7 @@ class CReceiveManager : implements IReceiveManager, public CInterface
                     StringBuffer ipStr;
                     DBGLOG("UdpReceiver: sending ok_to_send %u msg seq %" SEQF "u to node=%s", maxTransfer, flowSeq, dest.getIpText(ipStr).str());
                 }
-                flowSocket->write(&msg, udpResendEnabled ? sizeof(UdpPermitToSendMsg) : offsetof(UdpPermitToSendMsg, seen));
+                flowSocket->write(&msg, udpResendLostPackets ? sizeof(UdpPermitToSendMsg) : offsetof(UdpPermitToSendMsg, seen));
                 flowPermitsSent++;
             }
             catch(IException *e)

+ 3 - 3
roxie/udplib/udptrs.cpp

@@ -86,7 +86,7 @@ RelaxedAtomic<unsigned> flowPermitsReceived;
 RelaxedAtomic<unsigned> dataPacketsSent;
 
 unsigned udpResendTimeout;  // in millseconds
-bool udpResendEnabled;
+bool udpResendLostPackets;
 bool udpAssumeSequential;
 
 static unsigned lastResentReport = 0;
@@ -609,7 +609,7 @@ public:
                 DBGLOG("UdpSender: added entry for ip=%s to receivers table - send_flow_port=%d", ip.getIpText(ipStr).str(), _sendFlowPort);
             }
         }
-        if (udpResendEnabled)
+        if (udpResendLostPackets)
             resendList = new UdpResendList;
     }
 
@@ -782,7 +782,7 @@ class CSendManager : implements ISendManager, public CInterface
             while(running) 
             {
                 UdpPermitToSendMsg f = { flowType::ok_to_send, 0, { } };
-                unsigned readsize = udpResendEnabled ? sizeof(UdpPermitToSendMsg) : offsetof(UdpPermitToSendMsg, seen);
+                unsigned readsize = udpResendLostPackets ? sizeof(UdpPermitToSendMsg) : offsetof(UdpPermitToSendMsg, seen);
                 while (running) 
                 {
                     try 

+ 1 - 5
testing/regress/environment.xml.in

@@ -119,7 +119,6 @@
                 reloadRetriesFailed="true"
                 remoteFilesExpire="3600000"
                 roxieMulticastEnabled="true"
-                serverSideCacheSize="0"
                 serverThreads="30"
                 simpleLocalKeyedJoins="true"
                 siteCertificate=""
@@ -142,8 +141,6 @@
                 traceLimit="10"
                 trapTooManyActiveQueries="true"
                 udpFlowSocketsSize="131071"
-                udpInlineCollation="false"
-                udpInlineCollationPacketLimit="50"
                 udpLocalWriteSocketSize="131071"
                 udpMaxRetryTimedoutReqs="0"
                 udpMaxSlotsPerClient="2147483647"
@@ -151,8 +148,7 @@
                 udpOutQsPriority="0"
                 udpQueueSize="100"
                 udpRequestToSendTimeout="5"
-                udpResendEnabled="false"
-                udpSendCompletedInData="false"
+                udpResendLostPackets="true"
                 udpSendQueueSize="50"
                 udpTraceLevel="1"
                 useHardLink="false"