Comments (2)
- Every actor is an independent isolated database. If you are running ActorDB over multiple servers, they get replicated automatically. If you have multiple clusters of servers (generally it is recommended to have clusters of 3), every actor will live inside some cluster and be replicated within that cluster.
Example in section 2.4.1, creates 3 isolated databases. They all have their own table named "tab".
When it comes to sharding of actors, ActorDB will try to evenly spread actors across servers. It will place some actors in one cluster and some actors in another cluster.
ActorDB does not have functionality at the moment to control how an individual actor is replicated. It will automatically be placed somewhere. - ActorDB does not have true joins across actors. It has multi actor queries. They are described in section 4 of the documentation. This is an area that can see a lot of improvement in future versions. ActorDB works great for scenarios where having a lot of small isolated databases is key. This is what ActorDB sacrifices to achieve scalability.
- type1, type2 are two completely different types of databases that can be a part of ActorDB. What this means is type1 can have one schema, type2 can have an entirely different schema. They both can have as many tables as you want. If you were creating a blog for instance. Every blog post + comments for that post would be one type of actor, then every registered user would be a second type of actor.
- Actors can be deleted and created at any time. I would need more information to answer more.
- You can run multiple instances on the same machine or just one instance. When it comes to running queries it makes no difference. To create a cluster of 3 for instance. Checkout actordb to 3 folders (you need erlang version 17+ installed). In every folder set etc/app.config rpcport value to something unique, set name of node in etc/vm.args which must also be different for every node, then list all of them in nodes.yaml. Once you have them running, run ./actordbctrl init in one of the folders.
We have a tool to run actordb in a cluster automatically, but it requires Erlang knowledge to use. It is built to run tests.
from actordb.
@SergejJurecko Thanks a bunch, this is really helpful, I'll be doing some testing soon, I'll let you know any issues I run into. Thanks!
from actordb.
Related Issues (20)
- Unable to open req pipe MacOS 10.13.6 HOT 2
- Error: {error,{error,<<"unknown_actor_type: type1">>}} HOT 3
- How to execute actorDB's load test? HOT 1
- SQLight drop in replacement build for C/C++ HOT 1
- LMDB still grows after delete then insert HOT 3
- actordb crash: exception exit: badmatch, sqlite_error, "SQL logic error or missing database" HOT 1
- Timeout error when executing init.example.sql on OSX HOT 2
- Connecting using MySQL CLI on OS X fails with error HOT 5
- PRAGMA LIST not updating after PRAGMA COPY HOT 1
- How to send multiple parameterised queries through the thrift interface? HOT 9
- Using mysql driver HOT 2
- Execute query timeout by using actordb_console
- Same name columns in query result are swallowed and column order can't be specified HOT 1
- Queuing of queries (basic question) HOT 3
- sqlcipher HOT 1
- Sqlite upgarde
- Running protractor test using docker-compose but getting error HOT 3
- Are clusters immutable?
- vm.args needs to have a -name parameter. -sname is not supported.
- Storage for FastAPI service
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 actordb.