-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
OuroborosDB requirements:
🆕Bold is a new requirement.
Quality assurance:
- 🆕The DB and its actions in a complex distributed situation, must be testable in a fully deterministically way.
- 🆕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:
- Trees of Events like Chat messages that are replies to other chat messages creating a hierarchy of "threads".
- Chat messages can be edited, creating a change delta event of the old message
- Large of amounts of small and large Files that are attached to messages but are deduplicated over the entire DB.
- 🆕Files need to be available through a fuse filesystem to allow for file management
- 🆕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
- 🆕Semantic Search must be fast, convenient and over the entire DB
- Labels for events and files
6.1 🆕The fuse filesystem needs a fast folder structure so it is usable - we solve them with labels - An Event should be able to have Metadata that is used for indexing (like labels)
9.1 🆕Metadata and the Content is encrypted** - 🆕Events must be able to be temporary
- 🆕Files need to have an importance so less important files are deleted first and have less replication
- 🆕Queues must be able to exists that run JS and which run is verified by other nodes
- 🆕The DB must have a "bandwidth reduced" mode which leverages other nodes to do chunk collection and chunk search.
🆕 Resulting Technical requirement:
- Bigger Chunks
- Distributed Indexes
- Custom Network Protocol
- Fast replication over the network
- Fast retrieval over the network
- Fast queries over multiple nodes
Technical priorities (in order):
- Security aware
- Data Integrity aware
- Quality aware
- Throughput aware
- Storage Overhead aware
Path of Action:
- Check out possibilities to satisfy the "deterministic simulation" point.
- 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.
- Find Bottlenecks, Problems and caveats with the replication.
- Reevaluate further actions .