experimental and untested reimplementation of sql based IP pool

uses address preallocation and separate address/lease tables for linear lookup time
This commit is contained in:
Martin Willi
2008-07-22 14:56:15 +00:00
parent 32f5ee159e
commit f7198e7e8c
4 changed files with 319 additions and 251 deletions
+20 -14
View File
@@ -158,36 +158,42 @@ CREATE TABLE pools (
name TEXT NOT NULL,
start BLOB NOT NULL,
end BLOB NOT NULL,
next BLOB NOT NULL,
timeout INTEGER NOT NULL,
UNIQUE (name)
timeout INTEGER NOT NULL
);
DROP INDEX IF EXISTS pools_name;
CREATE INDEX pools_name ON pools (
name
);
DROP TABLE IF EXISTS leases;
CREATE TABLE leases (
DROP TABLE IF EXISTS addresses;
CREATE TABLE addresses (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
pool INTEGER NOT NULL,
address BLOB NOT NULL,
identity INTEGER NOT NULL,
acquired INTEGER NOT NULL,
released INTEGER DEFAULT NULL
released INTEGER NOT NULL
);
DROP INDEX IF EXISTS leases_pool;
CREATE INDEX leases_pool ON leases (
DROP INDEX IF EXISTS addresses_pool;
CREATE INDEX addresses_pool ON addresses (
pool
);
DROP INDEX IF EXISTS leases_identity;
CREATE INDEX leases_identity ON leases (
DROP INDEX IF EXISTS addresses_address;
CREATE INDEX addresses_address ON addresses (
address
);
DROP INDEX IF EXISTS addresses_identity;
CREATE INDEX addresses_identity ON addresses (
identity
);
DROP INDEX IF EXISTS leases_released;
CREATE INDEX leases_released ON leases (
released
DROP TABLE IF EXISTS leases;
CREATE TABLE leases (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
address INTEGER NOT NULL,
identity INTEGER NOT NULL,
acquired INTEGER NOT NULL,
released INTEGER NOT NULL
);