Skip to content

Reflection and changed requirements #4

@i5heu

Description

@i5heu

OuroborosDB requirements:

🆕Bold is a new requirement.

Quality assurance:

  1. 🆕The DB and its actions in a complex distributed situation, must be testable in a fully deterministically way.
  2. 🆕Benchmarks must be created that show the impact of changes to the relevant actions.

Provide a DB for a frontend that's Data shows following behavior:

  1. Trees of Events like Chat messages that are replies to other chat messages creating a hierarchy of "threads".
  2. Chat messages can be edited, creating a change delta event of the old message
  3. Large of amounts of small and large Files that are attached to messages but are deduplicated over the entire DB.
  4. 🆕Files need to be available through a fuse filesystem to allow for file management
  5. 🆕Throughput of the DB for files should reach 0.5Gbit/s on a 8 vCPU DDR5 system with 1 Gbit/s connection with at least 1 replication per chunk
  6. 🆕Semantic Search must be fast, convenient and over the entire DB
  7. Labels for events and files
    6.1 🆕The fuse filesystem needs a fast folder structure so it is usable - we solve them with labels
  8. An Event should be able to have Metadata that is used for indexing (like labels)
    9.1 🆕Metadata and the Content is encrypted**
  9. 🆕Events must be able to be temporary
  10. 🆕Files need to have an importance so less important files are deleted first and have less replication
  11. 🆕Queues must be able to exists that run JS and which run is verified by other nodes
  12. 🆕The DB must have a "bandwidth reduced" mode which leverages other nodes to do chunk collection and chunk search.

🆕 Resulting Technical requirement:

  1. Bigger Chunks
  2. Distributed Indexes
  3. Custom Network Protocol
  4. Fast replication over the network
  5. Fast retrieval over the network
  6. Fast queries over multiple nodes

Technical priorities (in order):

  1. Security aware
  2. Data Integrity aware
  3. Quality aware
  4. Throughput aware
  5. Storage Overhead aware

Path of Action:

  1. Check out possibilities to satisfy the "deterministic simulation" point.
  2. Build Simple Mockup that allows for optimizing the replication and communication problems, since they are the most difficult ones to solve and likely the bottle neck.
  3. Find Bottlenecks, Problems and caveats with the replication.
  4. Reevaluate further actions .

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions