- User Preferences Data Base:
The User preferences schema is still under active development. In the current schema, described below, the routing decisions are fixed by the database. For each entry in the table the combination rd + ip + port + mode must be unique. In future schema some freedom will be allowed for a context-dependent choice.
- Field Semantics:
-- rd IP-address of a residential device;
-- ip Proxys IP-address; the null-string if the service is not proxied;
-- port Proxys port number; the null-string if the service is not proxied;
-- nw 1, 2, or 3 => network number; 0 => this service is barred;
-- prty Priority;
-- mode service-type id;
-- what Human-readable description of service type.
In a commercial TORRENT system the range of user preferences offered and their degree of customisability - would be a business decision, based on a market analysis of the planned customer-base. The following set of utility functions provides a simple interface, but provides a demonstration of the SRMs capabilities in traffic management: Gold, Silver, Bronze, Gsb, Blue and Green. The gold, silver and bronze utility functions can be used to show: Admission control, Bandwidth tradeoffs made with and without congestion, Per-microflow rate limiting and Per-service-role rate limiting. The gsb utility function can be used to show selection of the best-available choice from a range of options. The blue and green utility functions can be used to show how the selection process can respond to changes in tariff structure and QoS.
Accounting Database: It was initially intended that the Accounting DB would hold IPDRs (Internet Protocol Detail Records), which could still be the right choice for an operational TORRENT system. However, it was then realised that the effect of individual test cases would be much more obvious if CDRs (Call Detail Records) were held instead.
- Field Semantics:
-- id Sequence number
-- value Call definition record
- Implementation:
With the requirement of a multi-user, fully functional, open-source, relational database to run on Linux, PostgreSQL was a natural choice. As it many ways it is the Linux database (although it also runs on several other platforms). MyDB was briefly considered - as some partners had used it on other projects - but was quickly rejected because it did not support transactions. Besides its many standard features, Postgresql also supports some useful non-standard features. These include triggers, that are functions embedded in the database, called before/after specific entries/tables in the database are read/updated. Triggers can be used to help enforce consistency (i.e. referential integrity) in the database.
More information on the Torrent project can be found at:
http://www.torrent-innovations.org