Blog

Blog

Stored Procedures

In an effort to make the StarProcedures.sql file independent from the StarSchema.sql file, all stored procedures should have a "DROP PROCEDURE IF EXISTS" statement prior to their declaration. This way we can update the stored procedures without having to drop the entire database and re-create it from scratch which is unacceptable for production environments.

HTML Tables

All HTML tables should have an appropriate header and body. This means we should be using <thead> <th> and <tbody> tags where appropriate. Use datatables where appropriate for tables that can potentially have lots of information. Also, a jQuery extension function has been added to allow fieldsets to be expandable/collapsable. See the master.js file for how to use it, or look at examples in the details/pair.js file.

Database Schema Update

Hey guys, please note the database schema has been updated. The new version has been posted on the homepage. All existing stored procedures will work with the new design so no one should be impacted.

Changelist

  • Got rid of verified flag in user table
  • Added 'community' field to verify table to indicate which primary community the user wants to join within starexec
  • Added 'closure' table for spaces (see 'Closure Table' in MySQLHierarchicalData.pdf for more details)
  • Added proxy field to user association to simulate inheritance
    • The proxy field says "I'm a user of this space because I was added in this other space." This allows us to simulate permission inheritance because when a user is added to a space, the person adding the other user will have the ability to add them to all subspaces as well. We need to keep track of this proxy space so when the user is removed from that space, their membership is also deleted in all subspaces with that proxy.

Notes

  • Plans to run on StarExec in 2013
  • Inputs are simple text files
    (VAR x)
    (RULES
    	f(x,x) -> a
    	f(x,s(x)) -> b
    	c -> s(x)
    )
    
  • Solvers may not always terminate
  • Output: YES/NO/other message
    • They usually output YES or NO plus a message why:
      NO
      The TRS is not confluent because...
      
      Stack overflow...
      
  • The 'community' has about 5-10 solvers total (called tools)
  • They have 10-200 benchmarks (called problems)
  • Each tool has a timeout of 60 seconds
  • Some tools rely on others, such as an SMT solver (we should require
    them to be uploaded with the solver) but don't want to allow the additional
    resources (e.g. the SMT solver) to be included in the download because of
    IP rights.
  • The full output from the job can be viewed by clicking on a link from the
    quick result (YES/NO or the time in some instance)
  • They would like to see a leaderboard of sorts, which displays (in real time) the
    results of the competition based on some nthe job runner would presumeable
    define. (In this case the number of YES answers per solver)
  • They would like to download the results of a job in .csv form (such as...
    solver 1, solver2, solver3
    b1 result, b1 result, b1result
    
  • They also have a set of 'tags' associated with each benchmark to determine
    properties about it. Nao thinks being able to upload benchmark attributes
    would be easiest via csv or key value pairs (XML is too heavy)

Resources

Breaking Change Notice

Important

The database connection URL needs a new parameter for Java to properly deal with 0 dates (if you don't update your URL, the application WILL break).

Change your URL in the starexec-config file to look like the following:

<property key="MYSQL_URL" value="jdbc:mysql://localhost/starexec?zeroDateTimeBehavior=convertToNull" />