cvsql 2 the revenge of the sql. the present read-only access to cvs repository logs language is a...
TRANSCRIPT
CVSQL 2
The Revenge of the SQL
The present
• Read-only access to CVS repository logs
• Language is a subset of SQL
• XML interface for returning results
• Built-in network server
• JDBC driver
The future
• Cleaner client-server design
• Improved SQL support
• Support for different log files
• Web service
• Improved JDBC driver
• Distributed Awareness
• Security
JDBC Driver• Improve Existing Code
– Eliminating hardcoded values• ”1.0” in DatabaseMetaData, “<resp>” in CVSQLAPI, etc
– Create more useful errors and exceptions(CVSQLAPI, DatabaseMetaData, etc)
• Some messages do not reflect an incorrect method• Some messages are not useful
– Improve socket connection handling in CVLSQLAPI• Support for transparent socket reconnection• Better state reporting (socket is really connected?)
JDBC Driver (cont'd)
• Improve Existing Code (cont'd)– Improve robustness in CVSQL Server <-> JDBC
Connection protocol parsing• Fail gracefully with corrupt or incorrect data• Reduce memory consumption
• Add Metadata Support– List database tables and column types– Retrieve ResultSet table information (?)
• Rework logging and debugging– Configurable log files (simple), Log4J (flexible),
Elimination from Driver (proper?)
Distributed Awarness
• Palantir http://www.ics.uci.edu/~asarma/Palantir/
• Non-intrusively break the workspace isolation
• Provide real-time awarness to configuration management systems
• Possible integration with CVSQL?
CVSQL Core
• Backend modularity– Each module provides support for one log file format– Reworked CVS log files support
• Client-server design– Proper separation of client and server
• Client is “dummy” and only knows how to send the query to the server and how to get the results back
– Security• Better handling of users and passwords
CVSQL Core (cont’d)
• Improved SQL support– select from multiple tables (JOIN)– new aggregate operators
• SQL engine rework– decoupling of parsing from execution– removing hardcoded values
• Web Services– Client-server communication using standard XML-
RPC protocol
The people
Name Responsibility
Senko Rašić configuration management, SQL parser, CVSQL server
Tomislav Capan XML, XML-RPC, CVSQL client, documentation
Matija Čižmek SQL engine, testing
Matija Slivonja CVS log parser, documentation
Ian Wharton JDBC driver, testing
David Zidar testing, JDBC driver
Abdul Ahad Khan JDBC driver, Palantir evaluation, documentation
The work
Questions?
• Will my vacuum cleaner continue to work with the new CVSQL?– Yes ;-) Although we will make many changes to the
system, we will ensure that it stays backwards compatible wherever possible (e.g. existing cvs table columns)
• Any more questions?
Thank you
CVSQL 2 Team