Родительские категории: Public: Information: DatabaseDecentralisation with P2P softwareDatabase technology.

Distributed data storage

If you have many nodes and want to store data - how do you store data?

YAML Вопрос

This category is to explore the various approaches to distributed data storage. One popular technique is the Blockchain - used by bitcoin, Ethereum and the dfinity internet computer.

There are other techniques available to us too! I think it is unfair on Mindey has to host 0oo.li by himself and take the cost of maintaining it by himself. We should be able to distribute arbitrary data across machines.






Голос (Необязательно) (не уведомлять) (Необязательно)
Пожалуйста, войдите.

Есть ipfs. Любой может разместить узел ipfs. Не знаю, сколько работы нужно для рефакторинга oo для использования ipfs

There's ipfs. Anyone can host ipfs node. Don't know how much work to refactor oo to use ipfs


Да, я думаю об этой проблеме, и я думаю, что правильный путь будет -

  1. Исследование моделей баз данных как оптимальной онтологии для того, что описано здесь. (Если онтология оптимизирует совместное принятие решений и экономическую деятельность, тогда имеет смысл искать способы ее масштабирования и децентрализации узлов.)

  2. Децентрализовать его.

Как я понимаю, децентрализация заключается в поиске dApps, которые заменяют функциональность, и предоставлении общего пользовательского интерфейса для всех этих dApps, которые в совокупности были бы эквивалентны монолитному приложению, которым является Infinity.

Другой способ - создать новую децентрализованную систему с нуля, используя такие вещи, как gun.js, где каждый из пользователей будет сидером одновременно.

// skihappy : Есть ipfs.

Это подпадает под поиск «dApps», которые заменяют функциональность. Например, IPFS - это такое приложение для хранения файлов. Однако бесконечность как приложение требует реляционной базы данных как dApp :) есть ли что-нибудь подобное? (включая миграцию схемы)

Yeah, I'm thinking of this problem, and I think the right path would be --

  1. Researching the database models as an optimal ontology for what is described here. (If the ontology optimizes cooperative decision-making and economic activity, then it makes sense to look for ways to scale it and make nodes decentralize it.)

  2. Decentralize it.

The "how" of decentralization is, as I see -- searching for dApps that replace functionality, and providing a common UI for all those dApps, that would collectively be equivalent to the monolith application that the Infinity is.

Another way would be to build a new decentralized system from ground up, using things like gun.js, where each of users would be seeders at the same time.

// skihappy: There's ipfs.

This falls under the search for "dApps" that replace functionality. For example, IPFS is such a dApp for file storage. However, infinity as application requires the relational database as a dApp :) is there anything like that? (including schema migrations)


Реляционные ссылки могут представлять собой слой над хранилищем данных, образующий граф. Графики гораздо лучше представляют реляционную базу данных, чем реляционную базу данных. Реляционные ссылки могут быть частью набора данных. Вот как работает graph db. Возможно, такое решение ipfs graph уже существует

Relational links can be a layer above data storage, forming a graph. Graphs are much better to represent relational database then relational database. Relational links can be part of data set. That's how graph db works. Perhaps, there's already an ipfs graph solution like that already


Минди, самое простое, что люди могут сделать, чтобы помочь, - это создать резервную копию базы данных с URL-адресом дампа, который у меня есть скрипт, который запускается ежедневно для создания резервной копии данных. К сожалению, мой основной компьютер был выключен, поэтому я не использовал его в течение следующих 4 месяцев.

Мне нравятся базы данных Graph, такие как Neo4j и Dgraph. Я даже написал простой, использующий умножение матриц для поиска в ширину, например Graphblas.

Mindey the simplest thing that people can do to help is to backup the database with the dump URL which I have a script that runs daily to take a backup of the data. My main computer has been switched off unfortunately so I haven't been running it for the next 4 months.

I like Graph databases like Neo4j and Dgraph. I have even written a simple one that uses matrix multiplication to do Breadth first search like Graphblas.


В этой категории скрыта идея о том, что самый простой способ добиться поведения P2P - сделать уровень хранения данных P2P и все остальное традиционным.

Hidden in this category is the idea that the easiest way to get P2P behaviour is to make the data storage layer P2P and everything else is traditional.



    : Mindey
    :  -- 
    :  -- 
    

chronological,

// делаем уровень хранения данных P2P и все остальное традиционным

В этом есть смысл - большинство программных систем являются клиентами систем баз данных.

// make the data storage layer P2P and everything else is traditional

It makes perfect sense -- most of software systems are clients of database systems.



    : chronological
    :  -- 
    :  -- 
    

Mindey,

Я только что нашел проект Hyper Hyper space, это интересный проект. Вместо файлов у вас есть пробелы, и они поддерживаются управляемым Меркелем ациклическим графом, который каким-то образом плавно сливается. Предполагая, что он использует CRDT.

Говорят, с его помощью можно создать практически любое приложение, форум, чат, веб-сайт и т. Д.

I just found the project hyper Hyper space it's an interesting project. Rather than files you have spaces and they are backed by a merkel directed acyclic graph that somehow merges seamlessly. Assuming it uses CRDTs.

They say you can build almost any app with it, forum, chat, website etc



    :  -- 
    : Mindey
    :  -- 
    

chronological,

Проблема с Hyperhyperspace в том, что я бы никогда его не использовал, потому что он берет на себя объекты, которые вы используете для хранения данных, для реализации его функциональности. Так что это плохой подход.

Чтобы создать простые графы объектов в памяти, вы должны использовать класс, называемый MutableReference, для связывания объектов вместе. Мне кажется неправильным.

The problem with Hyperhyperspace is that I would never use it because it takes over the objects you use to store data to implement its functionality. So it takes a bad approach.

To create simple object graphs in memory you have to use a class called a MutableReference to link objects together. Feels wrong to me.



    :  -- 
    : Mindey
    :  -- 
    

chronological,

Когда уровень данных Hyper Hyper Space синхронизирует содержимое пространства с другими одноранговыми узлами, ему необходимо проверить, соответствуют ли полученные изменения предположениям приложения о данных. И да, все, что является изменяемым, должно быть обернуто в тип, который знает, как маршалировать изменения как операции, подобные CRDT.

Проект экспериментальный, возможно, нам нужно больше итераций, прежде чем мы выясним, как убрать эту связь. Модель уже значительно упрощает предыдущие :)

When the Hyper Hyper Space data layer synchronizes a space contents with other peers, it needs to validate that the received changes respect the data assumptions of the application. And yeah, anything that's mutable needs to be wrapped in a type that knows how to marshal the changes as CRDT-like operations.

The project is experimental, maybe we need more iterations before we figure out how to remove that coupling. The model is already a considerable simplification over previous ones :)


sbazerque,

Одно небольшое уточнение по поводу Hyper Hyper Space: вам не нужно использовать MutableReference для связывания объектов вместе, вам это нужно только в том случае, если вы хотите иметь возможность заменить объект, который вы связали с другим, позже!

One small clarification about Hyper Hyper Space: you don't need to use MutableReference to link objects together, you need it only if you want to be able to replace the object you linked with another one later!



    :  -- 
    : Mindey
    :  -- 
    

sbazerque,