From: Razvan Deaconescu Date: Sun, 7 Aug 2011 17:12:35 +0000 (+0300) Subject: ppf: Move new SQL file to initial file. X-Git-Url: http://p2p-next.cs.pub.ro/gitweb/?a=commitdiff_plain;h=9366da99df8b4c3add8ce32f74dbbafbf7f17bb7;p=cs-p2p-next.git ppf: Move new SQL file to initial file. --- diff --git a/ppf/sql/p2p-log-mysql-new.sql b/ppf/sql/p2p-log-mysql-new.sql deleted file mode 100644 index 83c8721..0000000 --- a/ppf/sql/p2p-log-mysql-new.sql +++ /dev/null @@ -1,147 +0,0 @@ --- --- Create tables in BitTorrent log analysis database in MySQL. --- Use indexes for fast access. --- --- 2011, Mariana Marasoiu, mariana.marasoiu@gmail.com --- 2011, Razvan Deaconescu, razvan.deaconescu@cs.pub.ro --- - add foreign key support --- - add indexes --- - add message_types and peer_status_messages tables --- - update column types --- - -DROP TABLE IF EXISTS btclients; -DROP TABLE IF EXISTS swarms; -DROP TABLE IF EXISTS client_sessions; -DROP TABLE IF EXISTS status_messages; -DROP TABLE IF EXISTS peer_status_messages; -DROP TABLE IF EXISTS transfer_directions; -DROP TABLE IF EXISTS message_types; -DROP TABLE IF EXISTS verbose_messages; - -CREATE TABLE btclients ( - id UNSIGNED INTEGER PRIMARY KEY AUTO_INCREMENT, - name VARCHAR(100), - language VARCHAR(100), - url VARCHAR(255), - dht_support BOOLEAN, - streaming_support BOOLEAN, - pxe_support BOOLEAN, - features VARCHAR(1024) -) ENGINE=InnoDB; - -CREATE TABLE swarms ( - id UNSIGNED INTEGER PRIMARY KEY AUTO_INCREMENT, - torrent_filename VARCHAR(255), - data_size UNSIGNED INTEGER, - description VARCHAR(4096) -) ENGINE=InnoDB; - -CREATE TABLE client_sessions ( - id UNSIGNED INTEGER PRIMARY KEY AUTO_INCREMENT, - swarm_id UNSIGNED INTEGER REFERENCES swarms(id) ON DELETE CASCADE ON UPDATE CASCADE, - btclient_id UNSIGNED INTEGER REFERENCES btclients(id) ON DELETE CASCADE ON UPDATE CASCADE, - system_os VARCHAR(100), - system_os_version VARCHAR(100), - -- system RAM in megabytes - system_ram UNSIGNED SMALLINT, - -- system CPU in MHz - system_cpu UNSIGNED SMALLINT, - -- beware of IPv6 - public_ip VARCHAR(100), - public_port UNSIGNED SMALLINT, - -- KB/s - ds_limit UNSIGNED INTEGER, - -- KB/s - us_limit UNSIGNED INTEGER, - start_time DATETIME, - dht_enabled BOOLEAN, - pxe_enabled BOOLEAN, - streaming_enabled BOOLEAN, - features VARCHAR(1024), - description VARCHAR(4096) -) ENGINE=InnoDB; - -CREATE TABLE status_messages ( - id UNSIGNED INTEGER PRIMARY KEY AUTO_INCREMENT, - client_session_id INTEGER REFERENCES client_sessions(id) ON DELETE CASCADE ON UPDATE CASCADE, - timestamp DATETIME, - num_peers UNSIGNED SMALLINT, - num_dht_peers UNSIGNED SMALLINT, - -- KB/s - download_speed UNSIGNED INTEGER, - -- KB/s - upload_speed UNSIGNED INTEGER, - -- KB - download_size UNSIGNED INTEGER, - -- KB - upload_size UNSIGNED INTEGER, - -- seconds - eta UNSIGNED INTEGER -) ENGINE=InnoDB; - -CREATE TABLE peer_status_messages ( - id UNSIGNED INTEGER PRIMARY KEY AUTO_INCREMENT, - client_session_id UNSIGNED INTEGER REFERENCES client_sessions(id) ON DELETE CASCADE ON UPDATE CASCADE, - timestamp DATETIME, - -- beware of IPv6 - peer_ip VARCHAR(100), - peer_port UNSIGNED SMALLINT, - -- KB/s - download_speed UNSIGNED INTEGER, - -- KB/s - upload_speed UNSIGNED INTEGER -) ENGINE=InnoDB; - -CREATE TABLE transfer_directions ( - id UNSIGNED TINYINT PRIMARY KEY AUTO_INCREMENT, - value VARCHAR(100) NOT NULL -) ENGINE=InnoDB; - -CREATE TABLE message_types ( - id UNSIGNED TINYINT PRIMARY KEY AUTO_INCREMENT, - value VARCHAR(100) NOT NULL, - -- message parameters such as index, begin, length, listen port - parameters VARCHAR(256) NOT NULL -) ENGINE=InnoDB; - -CREATE TABLE verbose_messages ( - id UNSIGNED INTEGER PRIMARY KEY AUTO_INCREMENT, - client_session_id UNSIGNED INTEGER REFERENCES client_sessions(id) ON DELETE CASCADE ON UPDATE CASCADE, - timestamp DATETIME, - direction_id UNSIGNED TINYINT REFERENCES transfer_directions(id), - -- beware of IPv6 - peer_ip VARCHAR(100), - peer_port UNSIGNED SMALLINT, - message_type_id UNSIGNED TINYINT REFERENCES message_types(id), - index UNSIGEND INTEGER, - begin UNSIGNED INTEGER, - length UNSIGNED INTEGER, - listen_port UNSIGNED SMALLINT -) ENGINE=InnoDB; - --- insert BitTorrent clients in `btclients` table --- FIXME: update INSERT statemets to use new `btclients` schema - -INSERT INTO btclients(name, language, dht, streaming) - VALUES('Tribler', 'Python', 1, 1); -INSERT INTO btclients(name, language, dht, streaming) - values('libtorrent-rasterbar', 'C++', 1, 0); -INSERT INTO btclients(name, language, dht, streaming) - VALUES('Vuze', 'Java', 1, 1); -INSERT INTO btclients(name, language, dht, streaming) - values('Transmission', 'C', 1, 0); -INSERT INTO btclients(name, language, dht, streaming) - VALUEs('Aria', 'C', 1, 0); -INSERT INTO btclients(name, language, dht, streaming) - VALUES('Mainline', 'Python', 1, 0); - --- --- insert into `transfer_directions` table --- direction = 0 -> receive (from peer) --- direction = 1 -> send (to peer) --- - --- --- insert into `message_types` table --- diff --git a/ppf/sql/p2p-log-mysql.sql b/ppf/sql/p2p-log-mysql.sql index d5e7e21..83c8721 100644 --- a/ppf/sql/p2p-log-mysql.sql +++ b/ppf/sql/p2p-log-mysql.sql @@ -1,78 +1,147 @@ -drop table if exists status_messages; -drop table if exists verbose_messages; -drop table if exists client_sessions; -drop table if exists btclients; -drop table if exists swarms; +-- +-- Create tables in BitTorrent log analysis database in MySQL. +-- Use indexes for fast access. +-- +-- 2011, Mariana Marasoiu, mariana.marasoiu@gmail.com +-- 2011, Razvan Deaconescu, razvan.deaconescu@cs.pub.ro +-- - add foreign key support +-- - add indexes +-- - add message_types and peer_status_messages tables +-- - update column types +-- -create table swarms( - id integer primary key auto_increment, - torrent text, - filesize integer check(filesize between 0 and 1000), - purpose text, - source text); +DROP TABLE IF EXISTS btclients; +DROP TABLE IF EXISTS swarms; +DROP TABLE IF EXISTS client_sessions; +DROP TABLE IF EXISTS status_messages; +DROP TABLE IF EXISTS peer_status_messages; +DROP TABLE IF EXISTS transfer_directions; +DROP TABLE IF EXISTS message_types; +DROP TABLE IF EXISTS verbose_messages; -create table btclients( - id integer primary key auto_increment, - name text, - language text, - dht integer check(dht between 0 and 1), - streaming integer check(streaming between 0 and 1)); +CREATE TABLE btclients ( + id UNSIGNED INTEGER PRIMARY KEY AUTO_INCREMENT, + name VARCHAR(100), + language VARCHAR(100), + url VARCHAR(255), + dht_support BOOLEAN, + streaming_support BOOLEAN, + pxe_support BOOLEAN, + features VARCHAR(1024) +) ENGINE=InnoDB; -create table client_sessions( - id integer primary key auto_increment, - swarm_id integer references swarms(id) on delete cascade on update cascade, - client_id integer references btclients(id) on delete cascade on update cascade, - system_os text, - system_os_version text, - system_ram integer check (system_ram between 0 and 32768), - system_cpu integer check (system_cpu between 100 and 10000), - public_ip text, - public_port integer check (public_port between 1 and 65535), - ds_limit integer check (ds_limit between 0 and 1000000), - us_limit integer check (us_limit between 0 and 1000000), - start_time datetime); +CREATE TABLE swarms ( + id UNSIGNED INTEGER PRIMARY KEY AUTO_INCREMENT, + torrent_filename VARCHAR(255), + data_size UNSIGNED INTEGER, + description VARCHAR(4096) +) ENGINE=InnoDB; -create table status_messages ( - cs_id integer references client_sessions(id) on delete cascade on update cascade, - timestamp datetime, - peer_num integer check (peer_num between 0 and 100000), - dht integer check (dht between 0 and 100000), - download_speed integer check (download_speed between 0 and 1000000), - upload_speed integer check (upload_speed between 0 and 1000000), - download_size integer check(download_size between 0 and 100000000000), - upload_size integer check(upload_size between 0 and 100000000000), - eta integer); +CREATE TABLE client_sessions ( + id UNSIGNED INTEGER PRIMARY KEY AUTO_INCREMENT, + swarm_id UNSIGNED INTEGER REFERENCES swarms(id) ON DELETE CASCADE ON UPDATE CASCADE, + btclient_id UNSIGNED INTEGER REFERENCES btclients(id) ON DELETE CASCADE ON UPDATE CASCADE, + system_os VARCHAR(100), + system_os_version VARCHAR(100), + -- system RAM in megabytes + system_ram UNSIGNED SMALLINT, + -- system CPU in MHz + system_cpu UNSIGNED SMALLINT, + -- beware of IPv6 + public_ip VARCHAR(100), + public_port UNSIGNED SMALLINT, + -- KB/s + ds_limit UNSIGNED INTEGER, + -- KB/s + us_limit UNSIGNED INTEGER, + start_time DATETIME, + dht_enabled BOOLEAN, + pxe_enabled BOOLEAN, + streaming_enabled BOOLEAN, + features VARCHAR(1024), + description VARCHAR(4096) +) ENGINE=InnoDB; --- --- direction = 0 -> receive (from peer) --- direction = 1 -> send (to peer) --- +CREATE TABLE status_messages ( + id UNSIGNED INTEGER PRIMARY KEY AUTO_INCREMENT, + client_session_id INTEGER REFERENCES client_sessions(id) ON DELETE CASCADE ON UPDATE CASCADE, + timestamp DATETIME, + num_peers UNSIGNED SMALLINT, + num_dht_peers UNSIGNED SMALLINT, + -- KB/s + download_speed UNSIGNED INTEGER, + -- KB/s + upload_speed UNSIGNED INTEGER, + -- KB + download_size UNSIGNED INTEGER, + -- KB + upload_size UNSIGNED INTEGER, + -- seconds + eta UNSIGNED INTEGER +) ENGINE=InnoDB; + +CREATE TABLE peer_status_messages ( + id UNSIGNED INTEGER PRIMARY KEY AUTO_INCREMENT, + client_session_id UNSIGNED INTEGER REFERENCES client_sessions(id) ON DELETE CASCADE ON UPDATE CASCADE, + timestamp DATETIME, + -- beware of IPv6 + peer_ip VARCHAR(100), + peer_port UNSIGNED SMALLINT, + -- KB/s + download_speed UNSIGNED INTEGER, + -- KB/s + upload_speed UNSIGNED INTEGER +) ENGINE=InnoDB; + +CREATE TABLE transfer_directions ( + id UNSIGNED TINYINT PRIMARY KEY AUTO_INCREMENT, + value VARCHAR(100) NOT NULL +) ENGINE=InnoDB; -create table verbose_messages ( - cs_id integer references client_sessions(id) on delete cascade on update cascade, - timestamp datetime, - direction integer check(direction between 0 and 1), - peer_ip text, - peer_port integer check(peer_port between 1 and 65535), - message_type integer check (message_type between 0 and 100), - _index integer check (_index between 0 and 100000), - begin integer check (begin between 0 and 10000000), - length integer check (length between 0 and 10000000), - listen_port integer check(listen_port between 0 and 65535)); +CREATE TABLE message_types ( + id UNSIGNED TINYINT PRIMARY KEY AUTO_INCREMENT, + value VARCHAR(100) NOT NULL, + -- message parameters such as index, begin, length, listen port + parameters VARCHAR(256) NOT NULL +) ENGINE=InnoDB; + +CREATE TABLE verbose_messages ( + id UNSIGNED INTEGER PRIMARY KEY AUTO_INCREMENT, + client_session_id UNSIGNED INTEGER REFERENCES client_sessions(id) ON DELETE CASCADE ON UPDATE CASCADE, + timestamp DATETIME, + direction_id UNSIGNED TINYINT REFERENCES transfer_directions(id), + -- beware of IPv6 + peer_ip VARCHAR(100), + peer_port UNSIGNED SMALLINT, + message_type_id UNSIGNED TINYINT REFERENCES message_types(id), + index UNSIGEND INTEGER, + begin UNSIGNED INTEGER, + length UNSIGNED INTEGER, + listen_port UNSIGNED SMALLINT +) ENGINE=InnoDB; -- insert BitTorrent clients in `btclients` table +-- FIXME: update INSERT statemets to use new `btclients` schema -insert into btclients(name, language, dht, streaming) - values('Tribler', 'Python', 1, 1); -insert into btclients(name, language, dht, streaming) - values('libtorrent', 'C++', 1, 0); -insert into btclients(name, language, dht, streaming) - values('Vuze', 'Java', 1, 1); -insert into btclients(name, language, dht, streaming) +INSERT INTO btclients(name, language, dht, streaming) + VALUES('Tribler', 'Python', 1, 1); +INSERT INTO btclients(name, language, dht, streaming) + values('libtorrent-rasterbar', 'C++', 1, 0); +INSERT INTO btclients(name, language, dht, streaming) + VALUES('Vuze', 'Java', 1, 1); +INSERT INTO btclients(name, language, dht, streaming) values('Transmission', 'C', 1, 0); -insert into btclients(name, language, dht, streaming) - values('Aria', 'C', 1, 0); -insert into btclients(name, language, dht, streaming) - values('Mainline', 'Python', 1, 0); +INSERT INTO btclients(name, language, dht, streaming) + VALUEs('Aria', 'C', 1, 0); +INSERT INTO btclients(name, language, dht, streaming) + VALUES('Mainline', 'Python', 1, 0); --- .genfkey --exec +-- +-- insert into `transfer_directions` table +-- direction = 0 -> receive (from peer) +-- direction = 1 -> send (to peer) +-- + +-- +-- insert into `message_types` table +--