Distributed data storage

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

YAML Kategorija

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.






Balsas (nebūtinas) (nesiųsti pranešimų) (nebūtinas)
Prašome prisijungti.

Yra ipfs. Kiekvienas gali priglobti „ipfs“ mazgą. Nežinau, kiek reikia dirbti, kad galėtumėte naudoti „ipfs“

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


Taip, aš galvoju apie šią problemą ir manau, kad teisingas kelias būtų ...

  1. Ištirti duomenų bazės modelius kaip optimalią ontologiją, aprašytą čia. (Jei ontologija optimizuoja bendradarbiavimo sprendimų priėmimą ir ekonominę veiklą, tuomet prasminga ieškoti būdų, kaip ją išplėsti ir padaryti mazgus decentralizuotus.)

  2. Decentralizuokite jį.

Kaip matau, decentralizavimo „būdas“ yra ieškoti funkcionalumą pakeičiančių „dApp“ programų ir visiems tiems „dApps“ sukurti bendrą vartotojo sąsają, kuri bendrai prilygtų „Infinity“ monolitinei programai.

Kitas būdas būtų sukurti naują decentralizuotą sistemą nuo pat pradžių, naudojant tokius dalykus kaip gun.js, kur kiekvienas vartotojas tuo pačiu metu būtų sėjamasis.

// skihappy : Yra ipfs.

Tai patenka į funkcionalumą pakeičiančių „dApps“ paiešką. Pavyzdžiui, IPFS yra tokia dApp failų saugojimui. Tačiau begalybei kaip programai reikia reliatyvinės duomenų bazės kaip dApp :) ar yra kažkas panašaus? (įskaitant schemų perkėlimą)

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)


Santykių nuorodos gali būti sluoksnis virš duomenų saugyklos ir sudaryti diagramą. Grafikai yra daug geriau pavaizduoti santykių duomenų bazę, o ne santykių duomenų bazę. Santykių nuorodos gali būti duomenų rinkinio dalis. Taip veikia grafikas db. Galbūt jau yra toks „ipfs“ grafiko sprendimas

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


Prisiminkite, kad paprasčiausias dalykas, kurį žmonės gali padaryti, yra sukurti atsarginę duomenų bazės kopiją naudojant iškelties URL, kurį turiu scenarijų, kuris veikia kasdien, kad būtų sukurta atsarginė duomenų kopija. Mano pagrindinis kompiuteris, deja, buvo išjungtas, todėl jo nenaudojau artimiausius 4 mėnesius.

Man patinka „Graph“ duomenų bazės, tokios kaip „Neo4j“ ir „Dgraph“. Aš net parašiau paprastą, kuris naudoja matricos dauginimą, kad atliktų pirmąją „Breadth“ paiešką, kaip „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.


Šioje kategorijoje paslėpta mintis, kad lengviausias būdas gauti P2P elgseną yra padaryti duomenų saugojimo sluoksnį P2P ir visa kita yra tradicinis.

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,

// padaryti duomenų saugojimo sluoksnį P2P ir visa kita yra tradicinė

Tai visiškai logiška - dauguma programinės įrangos sistemų yra duomenų bazių sistemų klientai.

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

Ką tik radau projektą „Hyper Hyper Space“, tai įdomus projektas. Vietoj failų turite tarpų ir juos palaiko Merkel nukreipta aciklinė diagrama, kuri kažkaip sklandžiai susilieja. Darant prielaidą, kad jis naudoja CRDT.

Jie sako, kad su juo galite sukurti beveik bet kurią programą, forumą, pokalbį, svetainę ir kt

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“ problema ta, kad aš niekada jos nenaudočiau, nes ji perima objektus, kuriuos naudojate duomenims saugoti, kad įgyvendintumėte jos funkcionalumą. Taigi tai yra blogas požiūris.

Norėdami sukurti paprastus objektų grafikus atmintyje, turite naudoti klasę, vadinamą „MutableReference“, kad susietumėte objektus. Man tai negerai.

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,

Kai „Hyper Hyper Space“ duomenų sluoksnis sinchronizuoja erdvės turinį su kitais bendraamžiais, jis turi patvirtinti, kad gauti pakeitimai atitinka programos prielaidas. Ir taip, viskas, kas kinta, turi būti suvyniota į tipą, kuris žino, kaip išdėstyti pokyčius kaip į CRDT panašias operacijas.

Projektas yra eksperimentinis, galbūt mums reikia daugiau pakartojimų, kol išsiaiškinsime, kaip tą jungtį pašalinti. Modelis jau gerokai supaprastintas, palyginti su ankstesniais :)

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,

Vienas nedidelis paaiškinimas apie „Hyper Hyper Space“: jums nereikia naudoti „MutableReference“, kad susietumėte objektus, jums to reikia tik tuo atveju, jei norite vėliau pakeisti susietą objektą kitu!

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,