Personal tools
You are here: Home Archive Documentation

Release News

Release Candidate 1.1

August 27, 2008

Note:

Please note that this release still does not include rebuilder and encryption codec. We will be releasing them very soon.

Improvements:

  • Added stubs to support RELEASE(6) and RESERVE(6).  The respective Windows Logo tests for these commands now pass.  These are implemented as stubs becuase as policy, we don't support multiple initiators to a single target.
  • Re-introducing bounded task executor service to the task manager/grid logical unit (2/2)
  • Some code cleanup in the MODE SENSE task.  Removed some hard-coded numeric values and instead replaced with symbolic constants.  Fixed an issue where our target was incorrectly responding to mode sense commands with a page control field valued 0x03.  Added a stub task for MODE SELECT (immediately returns SCSI status GOOD and doens't request data out from the initiator).  Changed behavior of mode sense with a PC value of "Changeable values" (0x01) to return a zero mask instead of a CHECK CONDITION (this deviates slightly from SPC-3).  Our SCSI target now passes the Windows logo program SCSI compliance test with zero failures.
  • Added unit test to SliceServerApplicationTest to check when an assertion is thrown by a request handler
  • Added ApplicationTypeTest.  Added ClientSessionTest.  Enhanced SliceServerApplicationTest to test additional error scenarios as well as handler related functions.
  • Read/Write locking mechanism. Improved fair writer. Allow non-first writer to acquire no conflicts and if no readers ahead.
  • Controller tweaks and enhancements for file-object.  Discard byte buffers after write is complete to free memory. Free buffers from controller bookkeeping after write to allow larger transactions on the client-side
  • Improve configurability that could affect performance. Made tcp buffer size and nagel parameters configurable. Properties set to current default values 512KB and true. Added Nagel parameters settings in the socket config.

Fixed bug:

  • Both properties.xml and hard-coded ISCSIPortal.TASK_QUEUE_SIZE must be set to change iSCSI target queue depth
  • iSCSI service cannot load this vault twice
  • Linux Initiator put device in read only mode when loosing connection to one slicestor after some minute
  • Report specific read/writes errors from iSCSI layer
  • Out of order overlapped I/O completion. Added org.cleversafe.util.rangelock package.
  • getMaxSerializedSize() fails to calculate a large enough size in some cases, causing underallocation of buffers
  • Created script dsnet-accesser-perf.pl: Generate CSV output from performance instrumented (currently trace) accesser or slicestor logs
  • MinaConnector and MinaAcceptor now use pooled buffers.  This significantly reduces our memory & gc overhead, especially when large snd/rcv buffers are required for high-latency networks.
  • Upgraded from mina 1.1.0 to 1.1.7 which includes our previous patch (DIRMINA-561)
  • Fixed a bug in mina preventing pooled buffers from getting released in some cases, causing unnecessary memory allocation. A patch for this fix has been submitted to mina as DIRMINA-598.  For now we will continue to use a custom build of Mina (mina-core-1.1.7-modified.jar and mina-core-1.1.7-modified-sources.jar).
  • Performance instrumentation has been added to each layer of the software.  Currently this is accomplished with trace-level logging, but aspects may be a cleaner solution in the future.  When enabled, timing messages are logged and an included script & excel workbook can be used to generate timing and telemetry graphs.
  • UnreliableSliceStore now includes options for rough simulation of network bandwidth and latency.
  • Remove warning message and stack trace for "Tracker has not been initialized yet"
  • Vault and Target get created successfully when incorrect number of slicestor is given in vault descriptor file.
  • Error found in TC505: IDA: Create a Partition and Format on 8lose6 when 6 slicestors are down
  • logical unit stop on accecsser shutdown
  • Connection lost during wait for response when assert fails on server
  • "Statisitic does not exist" error at end of UDC
  • Error found in TC589: dsnet-create-vault: Creating a vault with a name that already exists
  • Race condition in SCSI layer task cleanup
  • SliceServer doesn't invoke endSession when a session is closed forcefully and thus leaving garbage associated with a session
  • Fixed an off-by-one defect in the maxBlockNumber calculation in BlockMultiFileSliceStore; added a boundary check in the unit test.
  • Fixed bug where application would not shutdown if it created a connection. Added feature to named thread factory to allow daemon threads. Updated the TimeQueue to default to use daemon threads
  • Fixed a problem with how errors are tabulated during read/write operations that caused the wrong error to be shown in the new tabular plurality display
  • Enhanced logic for determining success or failure of commit/rollback with write threshold
  • Improved logging for transactions and failed read/write operations
  • Added rudimentary transaction support to the MemorySliceStore
  • Made tcp buffer size and nagel parameters configurable. Properties set to current default values 512KB and true
  • Added read fallback to a lower revision only when it can be determined that that a higher revision can never be restored
  • Beefed up ControllerUnitTest to cover revision fallback scenarios
  • Improved logging in controllers and state machines
  • Improved thread-safety in MemorySliceStore
  • UnreliableSliceStore now corrupts/tx shifts all sources in a request rather than just a single source
  • Added read fallback to a lower revision only when it can be determined that that a higher revision can never be restored
  • Beefed up ControllerUnitTest to cover revision fallback scenarios
  • Improved logging in controllers and state machines
  • Improved thread-safety in MemorySliceStore
  • UnreliableSliceStore now corrupts/tx shifts all sources in a request rather than just a single source

Known bugs:

  • Create vault fails when apostrophe is in name
Disposition: To workaround this issue, do not use apostrophe's in the vault name.                             
  • Vault with 512 block size doesn't get created with the same size vault with 4k block size works fine
Disposition: We do not support 512 byte block size and do not recommend using it.