ObjectStorageSystem - LeFreq/Singularity GitHub Wiki

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.

dimensions:

  • First division: Is it a table or code?
    • If table, is it person, place, object, or event based?
    • If code, what kind of code
Since there is no tree, we'll use a hash function (Kademlia?) to get O(1) performance to get a file. XXXThis may not be interesting we already have log n performance with the standard tree. There could be two (or nore) trees on the disk: one from each side of the capacity.

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.

Consider:

  • data scours that go around the net, looking for
    • file names
    • data table names
    • named record's fields.
  • Levels of access embedded into some future, non-free system, that allows access to any data with sufficient clearance,
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).
⚠️ **GitHub.com Fallback** ⚠️