Commit report for v3.0.x branch

classic Classic list List threaded Threaded
1 message Options
| Threaded
Open this post in threaded view
|

Commit report for v3.0.x branch

The git bot
New activity for FreeRADIUS (the high performance and highly configurable RADIUS server)

======
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJfGvcGCRBK7hj4Ov3rIwAAdHIIAIN64LvFmLRGMw1TzGV52Rpv
 bb3KruCvsjkM2F31EUKWco7DIAUm7rf42T/Tvcg2u/e/cDR8DwjJPo0kHdX2YUL3
 sxUoE6NIzr/SmA0ThsrWAKnYm3V/497CGBpleFhUQETqWJGisdvYs/pCKSuGRIFQ
 QkoTjtmkzB1mqnUB1jbJ2ignW731phWTOvwEhuqmjAISsuRDpopbNb7lyMOYrTWS
 j5HON4RuDTYb6yElKcNdT3eiOhTsaxMfcq/wcfna1Bxs4AG9B2UHmHeNQ9qTVgrM
 zgnTlT8MUcjCOVOBbYDcdjR0zd9e1joItDWuO5ivwIUPkRsBhbc8C+1SPcGts1I=
 =Qxh4
 -----END PGP SIGNATURE-----
 

V3 dhcp queries (#3535)

* PostgreSQL query improvements

Changes to queries to improve performance, remove un-used queries
and make pool_key the unique identifier of a client within a pool.

* MySQL query improvements

Changes to queries to improve performance, remove un-used queries and
make pool_key the unique identifier of a client within a pool. Also
remove inconsistencies around expiry_time being able to be NULL -
certain combinations of suggested queries would have ended up using the
pool and never re-issuing expired IPs.

* SQLite query improvements

Changes to queries to improve performance, remove un-used queries and
make pool_key the unique identifier of a client within a pool. Also
remove inconsistencies around expiry_time being able to be NULL -
certain combinations of suggested queries would have ended up using the
pool and never re-issuing expired IPs.

* MS SQL query improvements

Changes to queries to improve performance, remove un-used queries and
make pool_key the unique identifier of a client within a pool. Also
remove inconsistencies around expiry_time being able to be NULL -
certain combinations of suggested queries would have ended up using the
pool and never re-issuing expired IPs.

* Oracle query improvements

Changes to queries to improve performance, remove un-used queries and
make pool_key the unique identifier of a client within a pool.

Add suggested queries for Oracle >= 12c

Amend schema so pool population can be done with just values for
pool_name and framedipaddress.

* MySQL query using UNION

Using a UNION allows index use in selection of either the existing
client IP or an unused one.

* SQLite query using a UNION

Use of a UNION allows index searching

* PostgreSQL queries using UNION

Limitation on row locking in PostgreSQL means a table lock - however
this is over 2 orders of magnitude faster than a query with an OR.

Due to this, the suggested default is to use stored procedures which
avoid the lock issues.

* Add templates for MS SQL, Oracle and SQLite

* Fixed Oracle queries

Oracle's locking mechanism limitations prevents the use of a single
query to find either a client's previous address or the next available
one and reliably gain a lock on that record.  Therefore, for normal DHCP
behaviour, stored procedures are the only workable solution.

* Optimised MS SQL query

Using locking instructions on the individual parts of a UNION query to
rapidly identify either the current address or a free one, ensuring no
two simultaneous requests end up with the same address.

* Optimised PostgreSQL stored procedure

Taking advantage of UPDATE ... RETURNING to reduce the number of queries

Nick Porter (via GitHub)@2020-07-24T14:58:14Z
Files modified:
        * raddb/mods-config/sql/ippool-dhcp/mssql/procedure.sql
        * raddb/mods-config/sql/ippool-dhcp/mssql/queries.conf
        * raddb/mods-config/sql/ippool-dhcp/mssql/schema.sql
        * raddb/mods-config/sql/ippool-dhcp/mysql/procedure-no-skip-locked.sql
        * raddb/mods-config/sql/ippool-dhcp/mysql/procedure.sql
        * raddb/mods-config/sql/ippool-dhcp/mysql/queries.conf
        * raddb/mods-config/sql/ippool-dhcp/mysql/schema.sql
        * raddb/mods-config/sql/ippool-dhcp/oracle/procedure.sql
        * raddb/mods-config/sql/ippool-dhcp/oracle/queries.conf
        * raddb/mods-config/sql/ippool-dhcp/oracle/schema.sql
        * raddb/mods-config/sql/ippool-dhcp/postgresql/procedure.sql
        * raddb/mods-config/sql/ippool-dhcp/postgresql/queries.conf
        * raddb/mods-config/sql/ippool-dhcp/postgresql/schema.sql
        * raddb/mods-config/sql/ippool-dhcp/sqlite/queries.conf
        * raddb/mods-config/sql/ippool-dhcp/sqlite/schema.sql
        * scripts/sql/align_sql_pools.pl

Commit diff:
https://github.com/FreeRADIUS/freeradius-server/commit/8bd9a810858064312d49d47f06799690c59a4da6
======
--
This commit summary was generated @2020-07-25T00:00:02Z by lgfeed version 0.00 (https://github.com/arr2036/lgfeed).
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/devel.html