Comments (5)
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.
Though, this isn't a bad idea, it would just require a change in how the program is architected.
from nstore.
Couldn't you outline the needed changes?
from nstore.
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.
I see. I came to the same conclusions. Sharding...
Thanks for extended answer.
from nstore.
Related Issues (20)
- Broken with new npm 0.3.9 HOT 10
- loadDatabase fails with an error in Buffer module "targetStart out of bounds" HOT 1
- msgpack HOT 1
- TypeError: Object #<initialize> has no method 'loadDatabase' HOT 4
- nstore module not loading HOT 7
- Why is there no close() function?
- find / get fail HOT 4
- "results is an object keyed by document key with the document as the value" HOT 1
- get result from users.find() function
- installing nstore HOT 1
- How to user ur module for user of my site
- What is the best practice ? (beginner question)
- Save Keeps Add New Entries to Database HOT 1
- Support regex or glob-style patterns
- publish this to NPM HOT 1
- Length extends beyond buffer HOT 4
- Is this project still alive? HOT 3
- 3gb in size to the database HOT 1
- Saving same key twice creates 2 data rows rather than updating existing key HOT 1
- Issue with get all function right after saving an object to DB 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 nstore.