Create a new path triggers a GPN on every code line

Hello.

Do you know if there a way to create a new index object without to do every time a extra load to genieacs for getparameternames every time, and create all with only one requisition of existing nodes without do a GPN (and GPV may be) for the same path?

I see same requisitions of index every line declared (log):

2022-02-09T12:55:46.241Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301d6" acsRequestName="GetParameterValues"
2022-02-09T12:55:46.350Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301d7" acsRequestName="AddObject"
2022-02-09T12:55:46.372Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301d8" acsRequestName="GetParameterValues"
2022-02-09T12:55:46.438Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301d9" acsRequestName="SetParameterValues"
2022-02-09T12:55:46.579Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301da" acsRequestName="GetParameterNames"
2022-02-09T12:55:46.594Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301db" acsRequestName="GetParameterNames"
2022-02-09T12:55:46.727Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301dc" acsRequestName="GetParameterValues"
2022-02-09T12:55:46.869Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301dd" acsRequestName="AddObject"
2022-02-09T12:55:46.892Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301de" acsRequestName="GetParameterValues"
2022-02-09T12:55:46.960Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301df" acsRequestName="SetParameterValues"
2022-02-09T12:55:47.116Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301e0" acsRequestName="GetParameterNames"
2022-02-09T12:55:47.132Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301e1" acsRequestName="GetParameterNames"
2022-02-09T12:55:47.271Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301e2" acsRequestName="GetParameterValues"
2022-02-09T12:55:47.380Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301e3" acsRequestName="AddObject"
2022-02-09T12:55:47.401Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301e4" acsRequestName="GetParameterValues"
2022-02-09T12:55:47.463Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301e5" acsRequestName="SetParameterValues"
2022-02-09T12:55:47.617Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301e6" acsRequestName="GetParameterNames"
2022-02-09T12:55:47.633Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301e7" acsRequestName="GetParameterNames"
2022-02-09T12:55:47.776Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301e8" acsRequestName="GetParameterValues"
2022-02-09T12:55:47.882Z [INFO] ::ffff:10.48.192.96 100645-FAST5670-N7201026V000002: ACS request; acsRequestId="17ede8d79d301e9" acsRequestName="AddObject"

I create a new instance in every line, my script have lines like this:

      declare("Device.QoS.Classification.[Alias:CLASS_MGMT_IPV6_DNS_2001-db8-12342-111-222-60-129,EthernetPriorityMark:-1,DSCPMark:56,TrafficClass:0,EgressInterface:"+ interface_ip_data_5670 + ",Interface:"+ interface_ip_data_5670 +",Protocol:17,DestPort:53,Direction:POSTROUTING,DestIP:2001:db8:1234:2:111:222:60:129,DestMask:128,Enable:true]", null, {path: 1});
      declare("Device.QoS.Classification.[Alias:CLASS_MGMT_IPV6_DNS_2001-db8-12342-111-222-60-130,EthernetPriorityMark:-1,DSCPMark:56,TrafficClass:0,EgressInterface:"+ interface_ip_data_5670 + ",Interface:"+ interface_ip_data_5670 +",Protocol:17,DestPort:53,Direction:POSTROUTING,DestIP:2001:db8:1234:2:111:222:60:130,DestMask:128,Enable:true]", null, {path: 1});
      declare("Device.QoS.Classification.[Alias:CLASS_MGMT_IPV6_DNS_2001-db8-12341-111-222-192-2,EthernetPriorityMark:-1,DSCPMark:56,TrafficClass:0,EgressInterface:"+ interface_ip_data_5670 + ",Interface:"+ interface_ip_data_5670 +",Protocol:17,DestPort:53,Direction:POSTROUTING,DestIP:2001:db8:1234:1:111:222:192:2,DestMask:128,Enable:true]", null, {path: 1});
      declare("Device.QoS.Classification.[Alias:CLASS_MGMT_IPV6_DNS_2001-db8-12341-111-222-192-30,EthernetPriorityMark:-1,DSCPMark:56,TrafficClass:0,EgressInterface:"+ interface_ip_data_5670 + ",Interface:"+ interface_ip_data_5670 +",Protocol:17,DestPort:53,Direction:POSTROUTING,DestIP:2001:db8:1234:1:111:222:192:30,DestMask:128,Enable:true]", null, {path: 1});
      declare("Device.QoS.Classification.[Alias:CLASS_MGMT_IPV6_DNS_2001-db8-12343-111-222-192-90,EthernetPriorityMark:-1,DSCPMark:56,TrafficClass:0,EgressInterface:"+ interface_ip_data_5670 + ",Interface:"+ interface_ip_data_5670 +",Protocol:17,DestPort:53,Direction:POSTROUTING,DestIP:2001:db8:1234:3:111:222:192:90,DestMask:128,Enable:true]", null, {path: 1});

May be in one only declare to do all or send this information in another way. The issue here is that i had like 200 lines to do on every boostrap and is very slow on my little lab computer (also i tried to get a more powerful PC to test and it is pretty much the same), and also i see a charging to CPE too many “may be” inncecesary load.

Regards,
and many thanks to all GeniaACS team and people involved in the support of the forum.

There is no reason I can think of this would put a tremendous load on the server. Try {path: 1}, {path: 1} instead of null, {path: 1}. Does that make any performance differences?

Thank you AK,

y test to change that and i saw the same behaviour (i saw a little more of speed but may be im suggested), at least at log level.
I dont end to understand wich is the diference between set path as null or add the “path:1”. I use the path “1” when i need to clean all the indexes some times (with no declared value, with a null), but in this case i don quite figure out the difference when i declare in hand with a configuration.

Here the log

2022-02-10T03:41:36.567Z [INFO] ::ffff:10.48.192.100 100645-FAST5670-N7201256V000011: ACS request; acsRequestId="17ee1b83cab0123" acsRequestName="AddObject"
2022-02-10T03:41:36.612Z [INFO] ::ffff:10.48.192.100 100645-FAST5670-N7201256V000011: ACS request; acsRequestId="17ee1b83cab0124" acsRequestName="GetParameterValues"
2022-02-10T03:41:36.694Z [INFO] ::ffff:10.48.192.100 100645-FAST5670-N7201256V000011: ACS request; acsRequestId="17ee1b83cab0125" acsRequestName="SetParameterValues"
2022-02-10T03:41:37.049Z [INFO] ::ffff:10.48.192.100 100645-FAST5670-N7201256V000011: ACS request; acsRequestId="17ee1b83cab0126" acsRequestName="GetParameterNames"
2022-02-10T03:41:37.079Z [INFO] ::ffff:10.48.192.100 100645-FAST5670-N7201256V000011: ACS request; acsRequestId="17ee1b83cab0127" acsRequestName="GetParameterNames"
2022-02-10T03:41:37.525Z [INFO] ::ffff:10.48.192.100 100645-FAST5670-N7201256V000011: ACS request; acsRequestId="17ee1b83cab0128" acsRequestName="GetParameterValues"
2022-02-10T03:41:37.975Z [INFO] ::ffff:10.48.192.100 100645-FAST5670-N7201256V000011: ACS request; acsRequestId="17ee1b83cab0129" acsRequestName="AddObject"
2022-02-10T03:41:38.021Z [INFO] ::ffff:10.48.192.100 100645-FAST5670-N7201256V000011: ACS request; acsRequestId="17ee1b83cab012a" acsRequestName="GetParameterValues"
2022-02-10T03:41:38.105Z [INFO] ::ffff:10.48.192.100 100645-FAST5670-N7201256V000011: ACS request; acsRequestId="17ee1b83cab012b" acsRequestName="SetParameterValues"
2022-02-10T03:41:38.464Z [INFO] ::ffff:10.48.192.100 100645-FAST5670-N7201256V000011: ACS request; acsRequestId="17ee1b83cab012c" acsRequestName="GetParameterNames"
2022-02-10T03:41:38.507Z [INFO] ::ffff:10.48.192.100 100645-FAST5670-N7201256V000011: ACS request; acsRequestId="17ee1b83cab012d" acsRequestName="GetParameterNames"
2022-02-10T03:41:39.046Z [INFO] ::ffff:10.48.192.100 100645-FAST5670-N7201256V000011: ACS request; acsRequestId="17ee1b83cab012e" acsRequestName="GetParameterValues"
2022-02-10T03:41:39.495Z [INFO] ::ffff:10.48.192.100 100645-FAST5670-N7201256V000011: ACS request; acsRequestId="17ee1b83cab012f" acsRequestName="AddObject"
2022-02-10T03:41:39.531Z [INFO] ::ffff:10.48.192.100 100645-FAST5670-N7201256V000011: ACS request; acsRequestId="17ee1b83cab0130" acsRequestName="GetParameterValues"

Declare arguments work like this:
declare('path', age_of_path, value_or_number_of_instances);

So in the case of this
declare("Device.QoS.Classification.<snip>", {path: 1}, {path: 1}); the second argument tells genie that the maximum age you will accept for the cached values for the path is 1, or 1 second past start of unix epoch. Which translate to if the path exists in the db, then don’t connect to the CPE.

The third argument with {path: 1} tells genie that you want only one instance of that instance with those values.