October 8, 2008, Wednesday, 281

Starfish Software Download

From DBWiki

Jump to: navigation, search

Contents

Introduction

WARNING
Starfish is a beta software product.
The filesystem should NOT be used for production environments.
We go to great lengths to ensure the software is bug free,
and more stable versions are available for our paying customers.
Backup your data and use at your own risk.
You have been warned!

Download

Binary packages and source code is available for all of the current releases of the Starfish software. A Starfish QuickStart Tutorial is available if you are using Starfish for the first time.

Ubuntu/Debian packages

These packages are compatible with the latest testing/unstable branches of Debian and Ubuntu.

Source Code

Release Log

  • Starfish 0.10-20080218 (February 18th, 2008) - Blinder
    • Bug fix: Fixed a bug in the sendto() call for the Asynchronous Unicast Messaging Engine that had a very small chance of failing per send. This bug would usually surface after 3-5 days of continuous use of the file system.
    • Bug fix: Fixed a bug that caused the server transmit thread to hang when a client disconnects unexpectedly.
    • Bug fix: Fixed the vfscache timeout code so that the file system size is updated every 30 seconds, it used to only be updated when a client was restarted.
    • Feature: Improved peer rediscovery to ensure that no operations occurred while peer rediscovery is happening. This could cause certain file operations to fail if a starfish peer disconnects while numerous small file creates are occurring.
    • Feature: Separate locked Transfer and Receive threads for the Asynchronous Unicast Messaging Engine, ensuring no potential deadlocks when sending and receiving data.
    • Feature: Added live debugging support that allows one to dump the entire state of any Starfish peer or client using the sfdebug utility. Helpful when debugging incredibly rare bugs or lock-ups.
  • Starfish 0.9-20071212 (December 12th, 2007) - Squish
    • Bug fix: Fixed a bug in the file write() code that caused the wrong file sizes to be reported for 5 seconds after a file write.
    • Bug fix: Fixed a bug that caused the file descriptor to not be created properly on file create, resulting in the storage client to lock up after 2-3 days of uptime.
    • Bug fix: Fixed a bug introduced by the new watchdog code which caused a time-out to trigger an unlock() for an already unlocked thread lock, causing a filesystem thread to crash.
    • Removed RPM and Slackware support until we come up with a better way to build RPMs (hopefully by next release, RPMs will be back).
    • Changed the way we version releases - by date instead of by subversion revision. We moved over to git internally, prompting the change.
  • Starfish 0.9-138 (November 21st, 2007) - Turk
    • Feature: Communication channel contention resolution. You used to have to wait 5 seconds for the first node in a storage cloud to allocate the proper communication channels. You don't have to do this anymore, all channel allocation contention is resolved using a very simple and effective step-off algorithm. In short - you can start all peers on the network simultaneously and they will all swarm to the proper communication channels.
    • Feature: Added inode usage load balancing in addition to file size load balancing.
    • Feature: parent directory addition to speed filename lookups on client.
    • Feature: Cached inode optimization and cached attribute table flushing.
    • Feature: Storage peer now runs under the 'starfish' user, which is added automatically when the package is installed.
    • Feature: Upgraded current SQLite bindings to work with PySQLite3.
    • Feature: Better support for detection and eviction of dead storage peers from the storage cloud.
    • Feature: Added a watchdog timer for deadlock detection and lock breaking code for recovering from deadlock conditions when performing all file system operations.
    • Bug fix: Fixed cache flushing bugs resulting in data write latencies of 4-5 seconds.
    • Bug fix: Fixed storage peer and storage client start-up scripts to write the proper PID to the pidfile.
    • Bug fix: Fixed threading race conditions between metadata updates and file system updates, these happen as atomic operations now.
    • Bug fix: Fixed numerous SQLite2 work-arounds and implemented them correctly using SQLite3.
    • Bug fix: ftruncate was not operating correctly using multiple threads and file descriptors in Python. This caused the scp command to fail when copying directly to the file system. Pythons native open()/close() calls are now used for all ftruncate calls.
    • Bug fix: At times, the peer timeouts can create a cascading timeout error, making all peers timeout all other peers. Once this happens, the peers spend all of their time attempting to re-discover each other, even though there is nothing wrong. The timeout code has been upgraded to be a bit smarter on what triggers a re-discovery of peers on a network.
    • Bug fix: The open() file system function has been updated to do the right thing instead of re-using mknod() code. This fixed several other outstanding bugs as well.
  • Starfish 0.8-105 (April 22nd, 2007) - Onomatopoeic Nod
    • Feature: Configuration file format and command line specification of configuration files.
    • Feature: Round-robin selection of storage servers instead of storage load balancing. In the future, we will probably want to support a command line switch for both.
    • Bug fix: It was possible to fail a file server due to a race condition in the networking code. The problem has been fixed properly by adding guards around critical sections of code.
  • Starfish 0.8-103 (March 19th, 2007) - The Rock
    • Initial stable release to the public.