[Tinyos-Storage WG] Storage-related issues
Prabal Dutta
prabal at cs.berkeley.edu
Thu Apr 12 20:53:46 PDT 2007
These are all good questions. In the interest of not mixing up their
discussions, I'm going to split them up into four separate threads.
- Prabal
On 4/12/07, Gaurav Mathur <gmathur at cs.umass.edu> wrote:
>
> Folks,
>
> Based on a preliminary review of the TEP code, the interfaces that folks had
> sent out and the conversation from last week, here is a summary of the broad
> questions that we have come up with. Comments would be great.
>
> ----------------------------------------------------------------------------------------------------
>
> Q1. Performance vs Portability
>
> This refers to the question that David Moss has brought up in the past.
>
> The current storage design (TEP 103) offers performance optimization by
> exposing flash chip-specific features, but is not designed for portability
> across multiple flash memories. For example, if a new sensor platform is
> introduced with a new storage chip, new implementations of BlockStorage,
> LogStorage, ConfigStorage, etc, would be needed.
>
> An alternative approach may be to develop generic implementations of these
> components built on top of an abstraction layer that just exposes the set of
> features common to all flash memories. Such an approach would reduce
> development time since the objects do not need to be re-implemented for
> different flash devices.
>
> One issue to discuss would be whether we should support such a generic
> abstraction layer in addition to the platform-specific layer that is
> provided by TEP 103. Different individuals/groups have implemented a few
> examples of such a generic abstraction layer (DirectStorage for Blackbook,
> FAL for Capsule). Having both a platform-specific and a
> platform-independent interface has the benefit of letting a developer decide
> which implementation suits their requirements best. Also, for our purposes,
> it makes it easier to port objects that we develop to different flash
> memories.
>
> Questions:
> * Should we have a "generic" flash abstraction layer?
> * Is DirectStorage + VolumeSettings this abstraction layer ? (Can it be used
> to support both NAND and NOR flash chips)
> * Comparison of the platform independent implementation with the platform
> dependent implementations that already exist (LogStorage, ConfigStorage and
> BlockStorage for Telos and Mica2) in terms of performance efficiency and
> memory efficiency (any other metrics ?)
>
>
> Q2. Add more storage abstractions
>
> We want to provide more storage objects for the user in addition to the ones
> currently provided by the TEP. Examples of some of the objects that we
> discussed are Stream, Index, Queue and Stack from Capsule, the Blackbook
> hash table, TINX Index among others.
>
> Questions
> * Should we implement the new objects proposed by this working group in a
> platform-dependent or platform-independent manner ?
> * What is the efficiency of the platform independent vs platform dependent
> approaches ?
>
>
> Q3. Support checkpointing / rollback for storage objects
>
> Storage objects should be able to maintain state across system
> resets/reboots (if the user wants). Rather than each object maintaining its
> own state, it might be a better to develop a common framework that can be
> used to store and retrieve object state to and from flash.
>
> Questions
> * What should be the design of such a common framework that objects can
> re-use ?
> * Should the implementation be platform dependent or independent ?
>
>
> Q4. Store Multiple objects per volume
>
> In the case of many objects being simultaneously used by an application or
> an ST-like flash with few, large erase units, it would make sense for
> multiple objects to share a volume on flash. For example, one might want to
> split the flash into 2 volumes, one for code images for use by Deluge and
> the second one for all other data like streams, indexes and packet queues
>
> Questions
> * How should interleaving of data be supported by the current volume
> abstraction ? Is it straightforward to layer an interleaved system like
> Capsule over a Volume or does this require a more fundamental change of
> design ?
> * How does a shared volume affect checkpointing and rollback ?
> * Can this be done in a platform independent manner or does this need to be
> platform dependent ?
>
> - Gaurav
>
> _______________________________________________
> Tinyos-Storage mailing list
> Tinyos-Storage at millennium.berkeley.edu
> https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-storage
>
>
>
More information about the Tinyos-Storage
mailing list