DistRen

From [protofusion] :: Wiki

Jump to: navigation, search

Contents

DistRen

distren Distributed Rendering System
distren Distributed Rendering System

This document contains much of the conceptual design and roadmap for DistRen in general. If you are looking for information regarding the usage and compilation of pre-alpha distren, check out the distren manual page, DistRen Manual. Also, in our irc channel, #distren on protofusion.org, we can provide you with additional information.

Note: We try to keep this page as up-to-date as possible, but it might not reflect the current direction of the project.

Design

Coded in C, distren will use common existing programs running on multiple OSs to render various formats of jobs over many computers running distren software.

Users get priority based on total points, and can spend points to increase the priority of a render. Points are determined by render power (calculated from benchmark results) multiplied by cpu time used.

File Storage Locations (server)

The DistRen server will reside in /home/distren.

  • /home/distren/htdocs :: Web Interface
  • /home/distren/stor :: Job data storage
  • /home/distren/stor/job#/ :: Individual job storage
    • job[jobnum].blend :: Source data file to be processed
    • output/
      • output/*.jpg :: Rendered data files, in whatever format specified
      • output/*.png

File Storage Locations (slave)

All directories are set at compile-time. Defaults for binary packages will be listed at a later time, or configured manually in .conf files.

Client

The client will connects to the server using telnet-style authentication with slavekeys and slavepasswords generated on the web interface.

A client should eventually be able to get information from the server using multiple methods, but initially asynchronous sockets will be used for communication.

Server

The server process will communicate using asynchronous sockets authenticated with a simple userID and passphrase.

The server shall store data in a mysql database

  • queue of jobs
    • ID of the job itself
    • ID of the method used to render it
    • ID of user that submitted the job
    • name of a parameter file, used when a single large file is rendered with different camera angles or at different resolutions. The interpretation of this file is rendermethod dependant
  • queue of individual render-jobs
  • client stats
    • ID for each client
    • reliability rating (Not yet implemented)
    • power rating

The server will also have a web-based interface for statistics and monitoring, not registration which will be handled by the client. This interface will provide:

  • Job Monitoring
  • Job Cancellation
  • Job Pausing
  • Downloading of Output
  • User and Per-user slave management

SimpleSlave

The SimpleSlave binary has been provided to test initial functionality of MySQL stored procedures and the basic slave function library. The SimpleSlave codebase is functional, and allows rendering of frames from the distren beta web interface . The SimpleSlave codebase works around the nonfunctional server codebase by using a simple PHP interface to interact with the MySQL database and stored procedures.

Personal tools