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
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,
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