These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

Science & Industry

 
  • Topic is locked indefinitely.
 

PI Routing Delay

Author
Daenika
Chambers of Shaolin
#1 - 2013-12-25 17:50:26 UTC
So I'm manufacturing Gel-Matrix Biopaste, takes 3 P2 products to make. I've got my factories set up in hexagons, with the factories making the P2 dumping it directly into the P3 factory in the center, and the P3 factory dumping it back into the Launchpad.

The issue is, for some weird reason, one of my P2 factories isn't getting it's resources in a timely manner. I've triple and quadruple checked the routes (and reset them several times), and the materials are being routed there. However, if I leave it overnight, that one factory almost invariably ends up between 20 and 40 minutes behind all of the rest, which delays that P3 factory as well.

What on earth could be causing this? A screencap of the configuration is included below. All of the P1 is put in the launchpad, routed directly from there to the P2 factories (which transits through the central P3 factory in each ring, plus the P2 factory between the P3 and the launchpad), and the P2 is routed directly back to the P3 factory in the center. It's only ever that one factory, all the rest work perfectly.

And no, I'm not starving them for materials, either. I put all of my materials in the launchpad in 240 unit increments (the amount of each P1 my 18 P1 factories consume per hour), and I keep it topped off. The Launchpad has room for precisely 18 hours of production (4320 units each of 6 P1 products), and I refill it roughly every 12. It's currently empty because the only way I've found of "resetting" the P3 production is to starve the entire complex, then put the P1 back in the launchpad so they sync up again.

Screenie: http://img15.imageshack.us/img15/4672/bquh.png
Psade
Blind Avarice
#2 - 2013-12-25 20:12:24 UTC
I'm sorry that I don't have an answer for you, but this is rather intriguing.

Can you confirm that no materials are being lost? As in, if you leave it for however long it takes to process, it will produce 162 paste per batch?

Does the choice of P2 matter? In other words, is it always this factory being late regardless of whether it's doing the biocells or the oxides or the superconductors?

Was this the last factory you built?

If the answers to those questions are yes, no, no- you might try doing a 2 hour cycle. Compare the timings when the first cycle begins, when the first cycle is completed, and when the second cycle is underway. Then report back because I want to know what is going on too now >_>
Daenika
Chambers of Shaolin
#3 - 2013-12-25 21:05:48 UTC
Psade wrote:
Can you confirm that no materials are being lost? As in, if you leave it for however long it takes to process, it will produce 162 paste per batch?


Paste is produced at a rate of 3 per factory per hour. This char has produced 561 over the last 64 hours, while another of my characters has produced 576. The 15 unit discrepancy might be a result of me picking up the P3 on different cycles (which would explain 9 of the 15), and the delay introduced as I've reset the sync on the factories twice since I last ran materials out to those POCOs. The pair of those effects could reproduce a 15 unit loss over that timeframe.

Even if it didn't, a 15 unit loss is 7.8%, which would imply a 5 minute "hold" per cycle, on average. I've only ever observed it at a 20 or 40 minute delay off the other factories. In addition, it's consuming P1 at the normal rate, so it's never actually getting "lapped" by the other factories (never more than a single partial cycle behind).

Lastly, I've personally observed that single factory at the end of a cycle. It's output is properly being received by the P3 factory, and the new materials are properly being input instantaneously. The fact that the P3 factory is perfectly synced with this one delayed P2 factory suggests that that factory is in fact properly routing as well, so I'm honestly not sure where the disconnect is.

Quote:
Does the choice of P2 matter? In other words, is it always this factory being late regardless of whether it's doing the biocells or the oxides or the superconductors?


I've not tried swapping it to another P2 to test. Another of my chars (also producing Biopaste) had this problem a couple weeks back, though, on a different type of P2 factory. In that case, resetting the route worked, and I found out in the process that that route was weirdly set to route through another one of the radial P2 factories before going to the delayed one (so launchpad -> P2 factory link -> P3 factory -> another P2 factory -> P3 factory -> delayed P2 factory destination). Resetting that route seems to have fixed the issue on that char. However, no similar route is present on this character, and I've reset the routes to and from that factory several times.

Quote:
Was this the last factory you built?


I'm not sure if it was the last built, that was a couple months ago. It was not the last one I linked, nor the last one I routed (until I started messing with resetting the routes on it).

Quote:
If the answers to those questions are yes, no, no- you might try doing a 2 hour cycle. Compare the timings when the first cycle begins, when the first cycle is completed, and when the second cycle is underway. Then report back because I want to know what is going on too now >_>


When under observation, it seems to work perfectly as expected. It's only when I leave it overnight that I tend to see these type of delays.
Daenika
Chambers of Shaolin
#4 - 2013-12-25 21:42:53 UTC  |  Edited by: Daenika
To follow up, I just checked on that factory, and it started precisely when I viewed the planet. It's as if that factory, for some weird reason, needs a player-initiated check-up before it'll start.

Edit: Correction, it looks like it needs that to finish, as the associated P3 factory was also delayed to the same time period. It's only been about 20 minutes since I last checked the planet, during which time it cycled. However, the output from that factory did not go to the P3 factory, nor did it get dumped. That factory simply stalled on completing it's cycle until I checked on it.
Psade
Blind Avarice
#5 - 2013-12-26 07:16:32 UTC
That is really bizarre behavior. Direct routing has been historically problematic, such that most people don't recommend doing it. However, any 'delay' caused by problems with that would result from materials being lost in the transfer process. From what you've said, that doesn't sound like it's happening.

If it were me, here are the things I'd try:

Delete and rebuild the problem factory, as well as one other factory.

Build the problem factory first such that is not the 'last' one built, and position the other factory such that it is both the newest and the furthest from the P3 in terms of links.

Swap the P2 production of these two rebuilt factories.

Run another, say, 6-12 hr cycle and see if anything is different.

If that didn't work, I'd try a different setup. Something like this, where there is no direct routing and everything goes through the Launchpad. It's not as pretty but you have the grid for it.

Completely up to you whether to try that. The behavior doesn't make sense to me. It feels like it has to be a routing/link problem or a bug with the factory itself.
Krixtal Icefluxor
INLAND EMPIRE Galactic
#6 - 2013-12-26 13:12:47 UTC
There's all kinds of bugs in PI.

Just yesterday, every tine I route Plasmoids to a Processor, it would create three instances of "incoming" Plasmoids to that processor. For all 6 processors it was routed to. Never ever has that happened before in over 3 years.

So, who knows, really.

"He has mounted his hind-legs, and blown crass vapidities through the bowel of his neck."  - Ambrose Bierce on Oscar Wilde's Lecture in San Francisco 1882

Don't Mine Me
Republic Military School
Minmatar Republic
#7 - 2013-12-26 14:54:32 UTC
I noticed a similar bug this weekend piping P2 into my P3 factories. I had 3 Guidance System factories and 6 Transmitter + 6 Water-cooled CPU factories feeding it. My 3rd P3 factory was always short 10 transmitters, as if i was only running 4 P2 factories instead of 6.

I created a 7th Transmitter factory after triple checking all my routes and what do you know, i now have 5 extra transmitters per cycle and the 3rd factory is producing like it should. I'll try removing the 7th factory and see if it bugs out again.

Psade
Blind Avarice
#8 - 2013-12-26 23:32:28 UTC
I had a thought on this problem.

I've always assumed that directly routed materials that can't reach their intended destination would just be lost. I think it used to work that way. Maybe I was wrong, or Rubicon changed it. If instead when a factory can't route, it just parked itself, then there is a possible explanation for what is going on.

It seems likely that PI buildings run on a state machine sort of system to save server resources. That is, it has triggers for actions rather than regular checks on variables other than the clock. The end of the cycle would be the trigger for routing procedures. If for some reason this factory is attempting its transfer before the P3 factory empties, it would be unable to deliver. To keep it from sitting there forever, there may be a periodic check added on. For example, every hour. Once this happens, the factory delivers its biocells or whatever and starts a new cycle. It remains forever behind due to the first delivery failing.

This algorithm may be ditched for a real-time one when the owner loads the planet into view. This would explain why it behaved normally when you were watching, and the sudden delivery when you loaded.

If this is the case, then removing the direct routing would fix it. Route all the P2 to the launchpad, then route the P2 from the launchpad to the P3. It was the conventional wisdom to do this with all factories when I started PI, and probably still is.

Keep in mind this is entirely speculation. There's know real way of knowing how it works on a coding level unless a dev has said as much at some point. Just a plausible explanation for much of what you've described.
Daenika
Chambers of Shaolin
#9 - 2013-12-27 03:10:45 UTC
That actually make a lot of sense. It's absolutely horrible design (particularly if the polling interval is that long), but it does in fact make sense.

That said, this occurs even when the destination factory starts completely empty of materials, which weakens that conception a bit.
Daenika
Chambers of Shaolin
#10 - 2013-12-27 07:08:53 UTC  |  Edited by: Daenika
Ok, reset every route on the planet. It seems to have worked for the first cycle (better than last time). I'll see how it's doing in the morning.

I want to try to avoid routing through the Launchpad, because the logic for routing is extremely stupid. For example, if I have 3 P3 factories, and 120 of each P2 coming in each cycle, the intuitive thing would be for it to route 40 of each P2 to each P3 factory, precisely enough to run all 3. What happens, however, is that 80 gets routed to factory A, 40 to factory B, and 0 to factory C. On the next cycle, 40 gets routed to A (to fill it back up after A cycled), and 80 gets routed to B (filling it all the way), and still 0 to factory C. Only on the third cycle does factory C get any P2 routed to it, as the other two only require 40 units each to top off by then, so the remaining 40 are finally sent to C.
Daenika
Chambers of Shaolin
#11 - 2013-12-27 17:35:41 UTC
Seems to be working properly so far. I'm not sure if that's because I reset the routes, or because I babysat it through it's first cycle ending, but one of the two fixed the issue, or at least seems to have thus far.
Styth spiting
Brutor Tribe
Minmatar Republic
#12 - 2013-12-28 06:17:40 UTC
Daenika wrote:
So I'm manufacturing Gel-Matrix Biopaste, takes 3 P2 products to make. I've got my factories set up in hexagons, with the factories making the P2 dumping it directly into the P3 factory in the center, and the P3 factory dumping it back into the Launchpad.

The issue is, for some weird reason, one of my P2 factories isn't getting it's resources in a timely manner. I've triple and quadruple checked the routes (and reset them several times), and the materials are being routed there. However, if I leave it overnight, that one factory almost invariably ends up between 20 and 40 minutes behind all of the rest, which delays that P3 factory as well.

What on earth could be causing this? A screencap of the configuration is included below. All of the P1 is put in the launchpad, routed directly from there to the P2 factories (which transits through the central P3 factory in each ring, plus the P2 factory between the P3 and the launchpad), and the P2 is routed directly back to the P3 factory in the center. It's only ever that one factory, all the rest work perfectly.

And no, I'm not starving them for materials, either. I put all of my materials in the launchpad in 240 unit increments (the amount of each P1 my 18 P1 factories consume per hour), and I keep it topped off. The Launchpad has room for precisely 18 hours of production (4320 units each of 6 P1 products), and I refill it roughly every 12. It's currently empty because the only way I've found of "resetting" the P3 production is to starve the entire complex, then put the P1 back in the launchpad so they sync up again.

Screenie: http://img15.imageshack.us/img15/4672/bquh.png


Never route materials from one factory to another. There are times when your adv factory will complete a job but before routing the materials to the launch pad your basic factory will route materials to your adv factory causing the materials to be destroyed. So always route launch pad > basic factory > launch pad > adv factory > launch pad (or other storage buildings).

The other problem is that all factories have storage queues. If you route say 80 units of P1 to a storage building and you have 2 adv factories some times you will have 1 factory that fills its current job and then its que while the 2nd factory does not getthe 40 units it was expecting.
Daenika
Chambers of Shaolin
#13 - 2013-12-28 07:03:34 UTC  |  Edited by: Daenika
Quote:
Never route materials from one factory to another. There are times when your adv factory will complete a job but before routing the materials to the launch pad your basic factory will route materials to your adv factory causing the materials to be destroyed. So always route launch pad > basic factory > launch pad > adv factory > launch pad (or other storage buildings).


That's why factories have input buffers. I'm not pre-loading that P3 factory, so even if the P1->P2 factories finish first, it just goes into the input buffer on the P3 factory. Since P2 and P3 factories are the same type, they have the same cycle length, and thus it's impossible for the P2 factories to cycle twice before the P3 cycles. Also, I don't have any basic factories on that planet. All of my P1 is manufactured on my ECU planets, not my factory planet.

In addition, as I've stated before in this thread, I've confirmed no materials are being destroyed. It would be very obvious if this were the case, because that would mean the input buffers on my P3 factories would be haphazardly filled, rather than completely empty. Excepting when that one factory was getting out of sync, their input buffers are always empty, so nothing is ever getting destroyed.

Lastly, as I stated above, routing through the launchpad is inefficient, because routing logic is bonkers. It prioritizes filling the input buffer on an already cycling factory over feeding needed supplies to a factory that's paused due to lack of said supplies. As a result, I lose total production output if I do it that way.

Quote:
The other problem is that all factories have storage queues. If you route say 80 units of P1 to a storage building and you have 2 adv factories some times you will have 1 factory that fills its current job and then its que while the 2nd factory does not getthe 40 units it was expecting.


Precisely why I direct-route. Since my P3 factories are starting completely empty, their input buffers are also empty, so it will never be the case that any of my P2 gets wasted, because it will always be going into an empty input buffer.
Psade
Blind Avarice
#14 - 2013-12-28 13:32:53 UTC
Daenika wrote:

That said, this occurs even when the destination factory starts completely empty of materials, which weakens that conception a bit.


Shoots it to hell in fact. The only way that all could still be accurate is if there is -also- a bug with the factory in question, at which point we're making a lot of assumptions.

Hopefully the reset is still working for you >_>
Daenika
Chambers of Shaolin
#15 - 2013-12-28 22:45:25 UTC
Psade wrote:
Shoots it to hell in fact. The only way that all could still be accurate is if there is -also- a bug with the factory in question, at which point we're making a lot of assumptions.

Hopefully the reset is still working for you >_>


Just checked, and it is.

So basically, the conclusion seems to be that there's just some weird issue with direct-routing and completing production jobs unless the factory is baby-sat. /shrug.