Comments (3)
Hey lonnietc, thanks for reaching out.
From this I would mean that sharding the data across all 10 machines (i.e. splitting the data) and also that I can ask threads to replicate data across some of the machines as well (i.e. have multiple copies of the sharded data) in case of node failure?
Yep, correct!
Also, is it possible to have some data stored, or pinned, to a specific machine and other data sharded across the other nodes?
A thread doesn't need to be hosted by all the nodes, correct.
Disclaimer: While we are happy to answer questions about threads, as you can see from the commit history, we aren't actively working on it anymore.
from go-threads.
Thanks for your message back and also for taking time to answer some of my questions.
One of the projects that I have is in needing a very highly scalable (sharding and replicating) SQL database and was thinking that just perhaps that I might be able to integrate ThreadsDB with another project that I came across called "go-mysql-server" (https://github.com/dolthub/go-mysql-server/tree/main) which is a Golang compatible MySQL server (mostly).
The idea was that just maybe, but not sure yet, it could be possible to be able to integrate these two to produce a P2P system such that there is a single binary that can be started locally and connect to other nodes to shard and replicate data. Basically to input mysql data and queries but have threadsdb as the underlying P2P storage across the network.
Additionally, I will figure out a way so that the data can be pinned to the locally running node or if it can be available for sharding. This would make something akin to IPFS in that you can pin data locally or store it on the network.
Ultimately this could make a type of P2P SQL server for user commodity systems that is reasonably compatible with MySQL clients but in a P2P fashion and not really in a distributed cluster that is more commonly done now. In this approach, the data is sharded and replicated across user nodes that may be also accessing the shared data.
That is the idea at least although maybe too challenging to get completed.
I will need to read more documentation on threadsdb to see how to shard and replicate data effectively as well.
Thanks again
from go-threads.
Sorry for the delay here! What you're describing has some overlap with the next version of our Tableland.xyz project. If you feel like following along, we're over in discord here: https://tableland.xyz/discord.
from go-threads.
Related Issues (20)
- How to make sure open the same DB on different threadsd node?
- Collection with name collection can't be properly indexed HOT 4
- AddThread without creating a log HOT 2
- Make sure net/api/client.Subscribe loop ends gracefully when client is closing HOT 3
- Calling net.Record.PrevID() crashes when the client is closing HOT 2
- --- FAIL: TestModifiedSince (0.00s) HOT 1
- Don't allow setting arbitrary PrevID for records HOT 3
- Lost records from the Subscribe() channel when records arrive concurrently HOT 1
- Found an interesting bug related to synchronisation of threads HOT 10
- feat: New API or method to `getRecords` _back_ from offset to limit
- Occasional CI timing out
- ReadFilter not working
- Proposal for go-threads improvements HOT 1
- Your Paper has a wrong definition of the CID in ipfs HOT 6
- ThreadDB Sharding and Replication? HOT 3
- DB API: Count only query option
- rpc error: code = Unknown desc = log already exists HOT 3
- How well does it scale? HOT 1
- Future of this project HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from go-threads.