Menu

ObjectStorageSystem

Mark Rosenblitt-Janssen

The Object Storage System generalizes the concept of storage without
constraining the files/objects into any particular hierarchy or ontology. How?
By using a multi-dimensional hash.

Since there is no tree, we'll use a hash function (Kademlia?) to get O(1)
performance to get a file. If the storage system is large enough we can plop
the files anywhere within the large address space of most harddisks without a
hash collision.

Q: These abstractions eventually must address concrete limitations, like file
space. How to traverse the "files" for maintenance?


Debate: Are hashes better for holding data, given large storage volumes and
efficiency of a reconfigurable OOOS? The efficiency of the OOOS gets rid of
directories, as such no more movement of files, so no need to make a level of
indirection -- you can use absolute address blocks based on a hash of the
object. Or a sub-object can handle the storage of data. Your ontology is your
directory. If a tree is used, block size can go downwards -- just like the
branches of a tree, until you get to the leaves -- the actual data.

A hash on each object name.

Something like the NEXT SECTION.

If we were storing naked data, we could use something like: LEFT$(name, 4) +
XXXPOS$(name, LEN(name),XXX two more characters or so + RIGHT$(name, 1). But
we can hand this problem off to another object that stores the data, perhaps
in an encrypted form, perhaps on a linear device, perhaps on a random-access
device.

Hash domains for different sizes of object/files, since we know the size we
can use that data to gain extra powers. These domains allow contiguous storage
of objects without collisions for large files/objects.

Objects might store, as metadata, their Harddrive address.


Consider, all storage space as one, then what coordinate system could you use
as a hash. That is, consider a hash using three or four variables which have
been squeaked out of the object universe. What are these variables?

  • type
  • name
  • hierarchy position; objects which are related should stay together
  • object creation date

With this, one should be able to locate any object, possibly... This would
pave the way for a [structured query langauge], if desired (but why? AIs
roving outside the OS).


Related

Wiki: DesignGoals and ImplementationBreakouts
Wiki: Home
Wiki: ideals