Issue with Rebuilding Network Dataset

517
4
01-12-2023 09:52 AM
Narasimhapavanappalla
New Contributor II

We working on big network dataset ( around 2GB) which is updated almost everyday and feeds our live Routing service. 

However, rebuilding of the network dataset takes a couple of hours ( ~ 3 hours) despite small updates.

As of now the Network dataset has these amount of features:

  1. edges = 1 million
  2. junctions = 45 millions
  3. stair/elevator = 30 thousands

Is  this expected or we are missing something?

Any suggestions on how we can speed up the process would be appreciated.

Thank you!

0 Kudos
4 Replies
MelindaMorang
Esri Regular Contributor

Interesting question.  We would certainly hope the Build Network process would be quick if you've only made a few small edits.  However, it's possible that you've run into some kind of performance bug.

A couple of questions.

  1. What version of ArcGIS are you using?  (Pro, Server, version number?)
  2. Have you edited any of the network dataset properties, like the cost attributes?  This would trigger the need for a full rebuild instead of just the small dirty areas.
  3. Is your network dataset in a file geodatabase on your local machine, on a different machine, or in SDE/Enterprise geodatabase?
  4. Would you be able to share your data?  (You can message me privately if you don't want to share the link publicly, or you can contact Esri Support to share the data through official channels, and it will most likely make its way to me eventually unless they resolve your issue.)
0 Kudos
Narasimhapavanappalla
New Contributor II

Hi Melinda,

Sorry for the late reply.

Here are the answers:,

1) Pro 3.0.3, Server 10.9 ( google cloud)

2)Have you edited any of the network dataset properties, like the cost attributes?  No

3) My network dataset is in file geodatabase on a network drive.

4) we can share the data. Could you provide a private channel to share with you.

Highly appreciate your assistance.

Thanks!

0 Kudos
MelindaMorang
Esri Regular Contributor

Okay, thanks for the info.  You can upload your data to whatever file sharing site works for you and send me a private message with the link through the Esri Community private message function.

MelindaMorang
Esri Regular Contributor

I looked at the network you shared with me privately, and here's what I found:

On my machine, building the network as is takes 4 hours and 22 minutes. (You must have a faster machine!)  This is an "incremental rebuild" where it senses that it has dirty areas (places where it's been edited) and builds only the dirty areas.  Hypothetically, this should make the build quicker if there are only a few small areas in the network that have been changed.

If I instead force the network dataset to do a full rebuild (so it ignores dirty areas and builds the whole thing whether or not it's dirty), it actually takes less time.  For me it took about 2 hours and 5 minutes.

Unfortunately, I've seen this type of behavior before.  Sometimes it just takes forever to sift through a large number of small dirty areas and handle them individually, even longer than it takes to rebuild the network from scratch.  I will log a bug for our developers to investigate your particular use case to see if there's a way we can improve performance; however, this isn't something we can fix in the short term.  You should probably consider some kind of workaround.

One workaround is to make your automated process force a full rebuild.  This will still take a considerable time, but it does seem to be faster than your incremental rebuild speed.

Here's two ways to force a full rebuild:

Method 1:

  1. Open the network properties and add a new restriction attribute.
  2. Click OK to close the property page
  3. Reopen the network properties and delete the restriction attribute.
  4. Click OK to close the property page.  The network now thinks an attribute has been modified and that it requires a full rebuild.

Method 2:

  1. Run the Create Template From Network Dataset tool to create an xml template with your network dataset's schema.
  2. Delete the network dataset.
  3. Run the Create Network Dataset From Template tool to recreate your network using the xml template file you just created.  The network is now completely fresh and requires a full rebuild.

 

If I've understood your original question correctly, though, it sounds like you're working in a production environment where edits are being made daily, and you want this build to run quickly.  I'm curious what edits are being made daily to your network.  When I looked at the network's dirty areas, I see a LOT of them.  Tons of little overlapping dirty areas all over the place.  It looked to me as if the entire network was effectively dirty, but probably all the small changes accumulated over time in a way that left a ton of these little overlapping dirty areas.   What kind of edits (automated or manual?) are being done to cause all these changes?  Perhaps you can consider streamlining this part of the process to avoid this large accumulation of edits.

Another thing you could consider: It looks like your network includes a bunch of small areas spread around the country that are not connected. If you are hosting a network analysis service, there's a way you can configure it to use separate network datasets and broker between them depending on the location of the user's analysis inputs.  So, if my inputs are in New York City, use the New York City network, but if they're in Los Angeles, use the Los Angeles network.  This way, edits could be kept contained to only a single network, and smaller networks build faster.  This is more complicated to set up than I can describe to you here on Esri Community, and if you want to go down this route, you should talk to Esri Support (or whoever your usual contact is - I believe I recognize the name of your company as a partner/start-up).

Hope this helps!

0 Kudos