From DBWiki
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.