GithubHelp home page GithubHelp logo

multi-node about nstore HOT 5 CLOSED

creationix avatar creationix commented on September 22, 2024
multi-node

from nstore.

Comments (5)

creationix avatar creationix commented on September 22, 2024

No, nStore only allows a single process accessing a single db file at once. You can have a master process and cause it to make it's services available over network or some other IPC.

from nstore.

creationix avatar creationix commented on September 22, 2024

Though, this isn't a bad idea, it would just require a change in how the program is architected.

from nstore.

dvv avatar dvv commented on September 22, 2024

Couldn't you outline the needed changes?

from nstore.

creationix avatar creationix commented on September 22, 2024

I don't know of a production database in the world that can have multiple processes accessing and modifying the same data file on disk safely without killing performance. sqlite sortof supports this, but it's highly discouraged. I still think the best solution is to have nStore be a single dedicated process and have it talk to the other processes via sockets.

If your reason for wanting this is to have the dedicated nStore core have multiple processes itself, then you would have to implement locks so that two processes can't write at the same time to the file. Also, the other processes would need to know somehow when a new record was added to the file on disk. I guess if there were no in-memory caches, then every read could start with the end of the file and work backwards.

I'm not sure the overhead of all this syncing and IPC would outweigh the benefits of having more CPU power available.

Better would be to shard your data into separate nStore processes and have those all available via sockets to the multiple processes needing the data.

The largest bottleneck (other than drive seek time) is serialization and deserialization of data. The more processes you have, the more data to serialize and pass around. and the more CPU you need.

from nstore.

dvv avatar dvv commented on September 22, 2024

I see. I came to the same conclusions. Sharding...

Thanks for extended answer.

from nstore.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.