Git Product home page Git Product logo

Comments (2)

SergejJurecko avatar SergejJurecko commented on June 12, 2024
  1. 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.
  2. 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.
  3. 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.
  4. Actors can be deleted and created at any time. I would need more information to answer more.
  5. 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.

dessalines avatar dessalines commented on June 12, 2024

@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)

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.