Forum Discussion
16 Replies
Sort By
- Kevin_StewartEmployeeI'll assume that this is for incoming HTTP requests and that you're running at least BIG-IP version 10 or higher. The old find/matchclass commands have been deprecated. Also, for simplicity sake I'll assume you want an "internal" data group.
when HTTP_REQUEST { if { [class match [string tolower [HTTP::uri]] starts_with my_test_datagroup] } { HTTP::redirect "http://[class match -value [string tolower [HTTP::uri]] starts_with my_test_datagroup]" } }
- Thanks for the response Kevin.
Thanks for the response Kevin.
But what is the performance impact of storing data in a file ? I assume f5 must load the data into memory and store it as a hash ( or performance would be hopeless ) but when does this happen ? On f5 startup ( at the time bigip.conf is loaded ) ? Or does the load occur the first time an iRule needs to match against the associated class/data-group ?
- nitassEmployeeWhat are my options if my data-group has a very large number of key-value pairs ( thousands ) ?i understand thousands is fine.
- In the comments to this article :
- nitassEmployeeDoes anyone know if such a limit exists in v10.2.4 ?i understand it is limited by system resource (i.e. it is not hard limited).
- Kevin_StewartEmployeeThe limitation is in fact resource-based, and up to v11.4 (v10 - v11.3) the practical limit is about 100k records in an external data group. I'd need to check, but I believe 11.4 introduces support for millions of records in a data group. If you need to support more than 100k records now, you could conceivably load all of the data into the session table using a "services VIP".
- Interesting stuff.
- Kevin_StewartEmployeeWell, in a redirect iRule, and especially the one above, the client (browser) would change the host header for you. In fact the host header might only ever need to be changed en route to the server if the server expects (and requires) a different host header than what the client is providing. It's a little difficult to give you any sort of solid example without knowing what you're trying to achieve. In any case, think of a data group as a set of key-value pairs, where the key is usually something the client is providing (host name, URI part, cookie, anything really), and the value is what you want to translate that to. The above example took the request URI and translated that into a host name for a physical (302) redirect. It could as easily have been a translation to a different URI, both explicitly through a redirect, or by simply changing the URI (or part of it) in line, without the user's knowledge.
- What capabilities does f5 BIG-IP offer for performance testing of iRules ?