Commit Graph

477 Commits

Author SHA1 Message Date
David Anderson 8c41a07992 - scheduler: Add a notion of "hard app" for SETI@home.
If an app is hard, the scheduler always does the deadline check,
    even if the client has no other jobs for this project.
    And the estimated wallclock duration is multiplied by 1.3,
    to avoid sending jobs to hosts that will barely make the deadline.

    Hard apps are marked by setting weight = -1.
    This is a total kludge, to avoid adding another field to app.

svn path=/trunk/boinc/; revision=15607
2008-07-15 21:43:45 +00:00
David Anderson 1147e60b1a - web: fix bugs that cause backslashes to be introduced
in global prefs update via account manager RPC

svn path=/trunk/boinc/; revision=15602
2008-07-14 19:13:19 +00:00
David Anderson 08f126f53b svn path=/trunk/boinc/; revision=15600 2008-07-13 04:26:23 +00:00
David Anderson 1bd7742c4a - more gcc fixes
svn path=/trunk/boinc/; revision=15496
2008-06-26 20:53:51 +00:00
David Anderson 4210ccff4c - diagnostics library: in signal handler, use _exit() instead of exit();
an atexit() function might have been what caused the signal

svn path=/trunk/boinc/; revision=15437
2008-06-19 20:56:36 +00:00
David Anderson b16fb12329 - manager: fix some strings ("comm" is not an OK abbrev.)
Also got rid of references to Yahoo.

svn path=/trunk/boinc/; revision=15406
2008-06-14 20:38:57 +00:00
David Anderson 4387e4491b - Fix emacs mode line in Makefile.am's
svn path=/trunk/boinc/; revision=15375
2008-06-08 22:18:52 +00:00
David Anderson 3054a5f6b3 - validator/assimilator: fix bug in 2 June checkin
(xml_doc_in wasn't included in DB query)

svn path=/trunk/boinc/; revision=15363
2008-06-05 18:36:31 +00:00
David Anderson 0e03df254b - Back end: add adaptive validation feature
(DB update required)
- Fixed typo in Eric's 5/28 checkin

svn path=/trunk/boinc/; revision=15357
2008-06-04 23:04:12 +00:00
David Anderson 5bb78f7a1c fix typo in schema.sql
svn path=/trunk/boinc/; revision=15356
2008-06-04 22:43:13 +00:00
David Anderson c9d38091e7 - validator/assimilator: parse <file_ref>s rather than <file_info>s;
the latter is where the <optional/> flag is.

svn path=/trunk/boinc/; revision=15337
2008-05-30 03:29:31 +00:00
Eric J. Korpela 70baf36e93 - Added database table credit_multiplier and script to be run daily
(calculate_credit_multiplier) to determine what factor to multiply
   claimed credit by before insertion into the database.  Changes to scheduler
   to implement have not yet been checked in.


svn path=/trunk/boinc/; revision=15309
2008-05-28 17:28:19 +00:00
Eric J. Korpela 1f2d65bccb - Makefiles:
added client/scripts to default client build
    removed sea from the default clientgui build
    added locale/client to the default clientgui build
    moved installed headers from $(includedir) to $(pkgincludedir) which
       is $(includedir)/boinc by default.
    removed redefinitions of $(includedir) from Makefiles.
- configure:
    added locale/client/Makefile to AC_CONFIG_FILES


svn path=/trunk/boinc/; revision=15300
2008-05-28 01:38:39 +00:00
David Anderson 6af9f66b4e - DB/feeder/scheduler: change app_version.xml_doc from blob to mediumblob,
and change the correspending structure field from 64KB to 256KB
    (could increase this if needed).
    This is needed to handle app versions with lots (> 100) of files
- change LARGE_BLOB_SIZE to BLOB_SIZE a bunch of places
- Change COPROCS from vector<COPROC> to vector<COPROC*>.
    Otherwise the right virtual functions of COPROCs don't get called

svn path=/trunk/boinc/; revision=14986
2008-03-31 16:19:45 +00:00
David Anderson 4554fa5ce3 - server and client:
in server->client reply messages and in the client itself,
    move app-planning info from RESULT to APP_VERSION.
    This was necessary to allow anonymous platform info (app_info.xml)
    to specify avg_ncpus, etc.
    e.g., if someone wants to write a multithread version of SETI@home,
    or a GPU/CUDA version,
    they can run it using the anonymous platform mechanism
    and it will be scheduled correctly.

    If a server sends an existing APP_VERSION but with different
    app-planning info, the client will accept and use the new info.

svn path=/trunk/boinc/; revision=14978
2008-03-28 18:00:27 +00:00
David Anderson c9b563f066 - DB: workunit.rsc_bandwidth needed to go after mod_time
svn path=/trunk/boinc/; revision=14970
2008-03-27 20:46:31 +00:00
David Anderson 13400c9516 Changes for multithread app support:
- update_versions: use __ (not :) as separator for plan class
- client: add plan_class to APP_VERSION;
    an app version is now identified by platform/version/plan_class
- client CPU scheduler: don't assume apps use 1 CPU
- client: add avg_ncpus, max_cpus, flops, cmdline to RESULT
- scheduler: implement app planning scheme

Other changes:

- client: if symlink() fails, make a XML soft link instead
    (for Unix running off a FAT32 FS)
- client: don't accept nonpositive resource share from AMS
- daemons and DB: check for error returns from enumerations,
    and exit if so.  Thus, if the MySQL server goes down,
    all the daemons will soon exit.
    The cron script will restart them every 5 min,
    so when the DB server comes back up so will the project.
- web: show empty max CPU % as ---
- API: get rid of all_threads_cpu_time option (always the case now)


svn path=/trunk/boinc/; revision=14966
2008-03-27 18:25:29 +00:00
David Anderson 4e9fbac5e0 - admin web: touch reread_db in manage_app_versions.php
- DB code: remove "is_high_priority" stuff.
- scheduler: merge find_app_version() into get_app_version().
    Have the latter memoize its results (both positive and negative).
    Have it call app_plan() for apps with nonempty plan_class.
- scheduler: first steps towards improved selectability of log messages.
    It will eventually be like the client,
    where you can select among various types of messages.
- feeder: if can't unlink the reread_db trigger file, exit
    (else we'd go into an infinite loop)

svn path=/trunk/boinc/; revision=14940
2008-03-18 21:22:44 +00:00
David Anderson 815b8fc043 Various preparation for handling multithreaded apps
and apps that use coprocessors.
There now can be several app_versions for the same
(app, platform, version_num) combination.
This changes a number of things.

- Added app_version.plan_class field to DB
- update_versions now looks for a :plan-class in the
    file or directory name, and puts it in the app_version's DB record
- Change uniqueness constraint to include plan_class
- Feeder: the feeder was putting non-deprecated app_versions
    in shared mem, and leaving it to the scheduler to
    find the latest version for a given platform.
    This is dumb.
    Instead, for each app/platform pair the feeder now
    finds the highest version number of a non-deprecated app version,
    and enumerates all non-deprecated app_versions with that
    app/platform/version
- Scheduler: add a BEST_APP_VERSION data structure that keeps track,
    for each app, what the best app_version is for this host.
    This saves the work of recomputing it for each job.

svn path=/trunk/boinc/; revision=14906
2008-03-13 22:57:24 +00:00
David Anderson 546c0b899a - server: fix botched checkin from 7 March.
The new field (workunit.rsc_bandwidth_bound)
    goes at the END of the record.
    Always do it this way!
- make_work: after creating a batch of new WUs,
    we were waiting 60 sec for the transitioner to
    create the results for them
    (so that our next count of unsent results would be correct).
    This is bogus; if e.g. the transitioner isn't running,
    we'll never get the results, and we'll keep creating WUs forever.

    Instead: explicitly wait for there to be results for
    the last WU from the batch just created.

- scheduler: parse <allow_non_preferred_apps>, <allow_beta_work> correctly.

svn path=/trunk/boinc/; revision=14875
2008-03-10 17:03:15 +00:00
David Anderson 95772cba77 - removed boinc_ncpus_available() and boinc_nthreads() calls.
The design has been changed to constant #threads per app version
    Various changes from Kevin Reed/WCG:
    - server: add workunit.rsc_bandwidth_bound: if nonzero,
        send this WU only to hosts with that much download bandwidth
    - assimilators: if a handler returns DEFER_ASSIMILATION,
        the WU remains in INIT state and will be handled when the
        next instance completes.
        Useful if you want the assimilator to see all instances.
    - scheduler: when setting result.outcome = DETACHED,
        set received_time to now
    - scheduler: removed the reliable_time and reliable_min_avg_credit
        options
    - scheduler/web: add optional <allow_non_preferred_projects>
        in project preferences.
        If present, user will accept work from non-selected apps
        if no work is available for selected apps
    - scheduler: improved messages for projects with multiple apps
    - scheduler: added config options
        <granted_credit_weight> and <granted_credit_ramp_up>.
        Used in calculating host.claimed_credit_per_cpu_sec,
        but I'm not sure how.
    - Added two new credit-granting formulas (validate_util.C):
        stddev_credit() and two_credit()
    - server DB: add rollback_transaction() and affected_rows() to DB_CONN

    NOTE: DB update required

svn path=/trunk/boinc/; revision=14870
2008-03-07 21:13:01 +00:00
David Anderson 1106da6ec6 - transitioner: we're not supposed to ever see "assigned" WUs.
But if we do, set their transitioner time to plus infinity
    so that we don't see them again.
    (otherwise we go into an infinite loop)
- DB code: remove "high_priority" from queries not from scheduler
    (should probably remove them from there too)
- file_deleter: print error msg if apache user doesn't exist

svn path=/trunk/boinc/; revision=14835
2008-03-03 19:33:32 +00:00
David Anderson 54519a4ee1 - Server: add "job assignment" feature.
Lets you assign a WU to a particular host,
    to one or all hosts belonging to a user or team, or to all hosts.
    See http://boinc.berkeley.edu/trac/wiki/AssignedWork
    Disabled unless you include <enable_assignment> in config.xml
    Uses a new DB table.
    Tested but only a little.
- Server: code cleanup; moved result-handling to a new file,
    and removed the PLATFORM_LIST arg to everything
    (put it in SCHEDULER_REQUEST instead)

svn path=/trunk/boinc/; revision=14767
2008-02-21 00:47:50 +00:00
David Anderson 02adbc4d49 - web: remove all references to the PHP "session" mechanism,
which added only confusion.
    Implement login directly, using cookies.
- All cookie setting/clearing now goes through two functions,
    send_cookie() and clear_cookie().
    These deal with path and expiry
    (e.g. if you want to have different language or forum settings
    on two projects on the same server, that now works).

svn path=/trunk/boinc/; revision=14735
2008-02-13 19:02:44 +00:00
David Anderson 35dab13859 - client code: my next-to-last checkin was flawed
svn path=/trunk/boinc/; revision=14725
2008-02-12 20:33:05 +00:00
David Anderson 51286a03dc - Initial checkin of Bossa code
svn path=/trunk/boinc/; revision=14716
2008-02-11 23:38:31 +00:00
David Anderson f77420c2c0 - scheduler: do "careful update" of workunit.hr_class
in case someone else changed since we read it.
    Hopefully this will fix a race condition
    where WU results get sent to different HR classes.
    (Alternatively we could use transactions,
    or acquire the semaphore during read/update,
    but this could impact performance).

svn path=/trunk/boinc/; revision=14710
2008-02-08 17:20:09 +00:00
David Anderson e56ed1430f - DB code: safe_atof() was returning a float,
causing a potential loss of precision.
    Change it to double (same as atof())
- When moderator locks a thread, let them specify reason

svn path=/trunk/boinc/; revision=14662
2008-02-02 17:01:57 +00:00
David Anderson 904cbe5a4f - Add Bolt admin page
- added "hidden" flag to courses


svn path=/trunk/boinc/; revision=14660
2008-02-01 23:11:09 +00:00
David Anderson d2a0353a00 - manager: fix unix build (new file)
svn path=/trunk/boinc/; revision=14658
2008-01-31 23:43:37 +00:00
David Anderson 4cfba489df - implement the review mechanism
svn path=/trunk/boinc/; revision=14653
2008-01-30 19:29:51 +00:00
David Anderson f682236bd9 - API: fix Win build error
- API: fix Makefile.am
- add LGPL license on some files

svn path=/trunk/boinc/; revision=14629
2008-01-28 22:42:05 +00:00
David Anderson ebed572d4f - API: allow Win apps to have icon
svn path=/trunk/boinc/; revision=14625
2008-01-28 15:48:09 +00:00
David Anderson 1e5b72068e - make old-style graphics (though not supported) still compile
svn path=/trunk/boinc/; revision=14588
2008-01-17 18:09:30 +00:00
David Anderson 757c41b1fa - web: add RSS feed for notifications
- make_project: disable community-related periodic tasks
    for newly-created projects

svn path=/trunk/boinc/; revision=14468
2008-01-04 22:59:21 +00:00
David Anderson 2d40b5722d - web: fix broken link for profile like/don't like.
TODO: currently these don't do anything useful.  Fix this.

svn path=/trunk/boinc/; revision=14461
2008-01-03 17:37:38 +00:00
David Anderson dddd1fc501 - fixed bug in upgrade
svn path=/trunk/boinc/; revision=14451
2008-01-01 18:07:13 +00:00
David Anderson f183b6f47f - web: add general-purpose notification mechanism.
Users can choose whether to get 1 email per notification,
    a daily "digest" email, or no email.
    (All notifications are shown on the Account page).
    Currently used for:
    - Friend requests and confirmations
    - Posts to subscribed threads
    - Private messages

    NOTE: To implement the "daily digest" feature, projects must add
    a periodic task for html/ops/notify.php to config.xml
- web: have project_footer() generate links for
    Account Page and Message Boards as well as Home
    NOTE: projects that want this change
    will have to modify their own project.inc.

svn path=/trunk/boinc/; revision=14447
2007-12-30 22:02:16 +00:00
David Anderson 55c0ee22a0 - web: default for user_links() is to not show profile pic.
Show the pic only in the context of friends list.

svn path=/trunk/boinc/; revision=14444
2007-12-27 18:37:22 +00:00
David Anderson 11dac5e80c - make_project: add --web_only option.
This lets you create a project for Bossa or Bolt
    without compiling the C++ stuff, which is not used by Bossa or Bolt.
- DB schema: change type= to engine= to avoid MySQL warning messages

svn path=/trunk/boinc/; revision=14437
2007-12-21 23:39:25 +00:00
David Anderson 1069770a7f - compile fixes for gcc 4.3 (from Frank Thomas)
Fixes #514

svn path=/trunk/boinc/; revision=14436
2007-12-21 21:09:40 +00:00
David Anderson c3491a40d9 David Dec 19 2007
- May as well start keeping checkin notes for Bolt.
        At this point the fundamental structure of Bolt is
        more or less complete, I hope; many features are missing.

    Items for this particular checkin:

    - Make things work right when you resume a course at an
        exercise answer page.
        This creates a new View, whose prev_view_id link points
        to the exercise view, not the answer page view
    - When leave a page using "Up", terminate the view accordingly.
    - Rather than using $_GET, Form vars are now passed to exercise primitives
        in a global variable $bolt_ex_query_string, which they must parse.

svn path=/trunk/boinc/; revision=14414
2007-12-19 16:31:41 +00:00
David Anderson 2f3d70a228 Bolt: added mechanism to view old answer pages
svn path=/trunk/boinc/; revision=14396
2007-12-18 23:37:26 +00:00
David Anderson 13baee4302 - user web: add "friend" and "notification" features
- user web: code cleanup in Profile area
- GUI RPC: add missing "/" in auth2 RPC

svn path=/trunk/boinc/; revision=14394
2007-12-18 20:28:08 +00:00
David Anderson 69042c3284 - bolt stuff
svn path=/trunk/boinc/; revision=14374
2007-12-12 04:43:04 +00:00
David Anderson 3f41f9a88d - Add weak account key mechanism.
Each account has an associated weak account key.
    The user can see it by visiting weak_auth.php.
    If you put the weak account key in the account file on a computer
    (instead of the regular account key)
    the computer will attach to the account.
    But the weak account key cannot be used to log in
    to the account on the web, or to do web RPCs, or anything else.

    Note: this involves a scheduler change.

svn path=/trunk/boinc/; revision=14367
2007-12-07 23:23:25 +00:00
David Anderson 68ec6e6ce6 svn path=/trunk/boinc/; revision=14319 2007-11-29 02:56:10 +00:00
David Anderson 4a81532043 - DB: add fulltext index on team.name
- user web: improve "team search" function,
    and get rid of the superceded "search by name" function
- user web: don't show team founder link to initiate transfer
- user web: show team types
- user web: fix "top teams by type" function
- client: tread NOT_FOUND error on file upload as transient;
    it means the project is missing its file_upload_handler

svn path=/trunk/boinc/; revision=14272
2007-11-20 22:58:14 +00:00
David Anderson dddc2ec6d2 - user web: clean up funky search result formatting.
For thread titles, show links to forum/category also
    For posts, show complete post, with search terms highlighted.
- user web: in display of posts for a user,
    show links to thread and forum also
- user web: posts/threads can become "orphaned" if their forum
    disappears, e.g. team message board is deleted.
    Handle this gracefully in search results and user post list
- user web: where HTML tags are allowed, say so
- user web: fix bug where wrap_postcounts weren't being shown in form
- DB: use "tinyint" instead of "tinyint(1) unsigned" etc.

svn path=/trunk/boinc/; revision=14267
2007-11-20 19:23:26 +00:00
David Anderson 615d4dcf22 - user web: the "private-message notification by email" flag
should default to off.
    Note: it's necessary to clear everyone's flag.
    Projects will need to notify users (e.g. via a news item)
    that they need to explicitly set this pref if they want email
    notification of PMs

svn path=/trunk/boinc/; revision=14255
2007-11-19 02:17:57 +00:00