Err. No, that would be worse. "Per prefix" load balancing is an artifact of the Cisco route cache. The route engine (ie the route table) isn't queried for every packet. Instead the route in the route cache is used. One doesn't configure "per prefix" load balancing. One configures load balancing, which adds multiple routes into the route table.
Modern Cisco routers do not use a "route cache",
You'll need to define what you mean by "modern" with respect to cisco. This statement seems to be incorrect.
the statement is largely correct -- at least from an operational standpoint. it is true that IOS still has 'route-cache'-based forwarding and 'flow'-based forwarding schemes (ip route-cache, ip-route-cache flow), BUT given we're talking about internet routing here, you would defintely want to be using CEF which isn't a cache demand-populated method. the distinction between demand-populated forwarding (FIB) versus prepopulated forwarding tables is relatively straight-forward, as are the reasons why it is a "good thing"<tm>. of course, hindsight is a wonderful thing.
they use a fully populated forwarding table. And load balancing is automatic if you have several equal cost routes.
This sounds very much like the Juniper description for the Internet Processor ASIC behavior. I'd say that's worse.
umm, no, i'd say it "isn't worse". i can't speak for how J does it (or what methods they may use for loadbalancing across distributed forwarding hardware and/or multiple switch-fabric(s)), but in the case of C, the default (per-prefix) loadbalancing provides deterministic loadbalancing which won't reorder packets within the same src/dst tuple (tuple could be L3 or L3+L4-based).
Many modern Cisco routers can perform per-packet load balancing without doing process switching (but this needs to be explicitly configured).
Well, 7500 and 7200 have interface processors that can route packets using the route cache without interrupting the main processor. So, if you don't consider 7500's and 7200s to be "modern", this feature above doesn't seem like a big deal: They could do that before. It was called CEF and DCEF.
umm, what you're saying is largely orthogonal to what Steinar is saying. distributed versus centralized forwarding is a different topic of discussion. you seem familiar with the methods commonly used to gain per-packet loadbalancing from about 6 years ago. CEF can provide the same functionality but without 'process-switching'.
I'm afraid your statements show a certain lack of knowledge about whats being used in datacenters to route packets. And perhaps some arrogance about whats "modern". I'd still call cisco 7500 and 7200 series routers "modern", and they have route caches.
"best practice" would be to use CEF for pre-populated Forwarding Tables rather than 'fast-switching' methods which use demand-based population methods. cheers, lincoln.