Comments (15)
Hi Akbar,
I couldn't find material on DynomiteDB or on other forums for the following questions:
- How are the tokens re-calculated when a node joins/ leaves the cluster?
- How is the data rebalanced after the tokens are re-calculated? Is this even a Dynomite concern?
Any pointers will really help.
from dynomite-manager.
- Node tokens are calculated when the cluster is first created. Then, when a node is replaced (ex. if a node fails), the new node queries the list of node tokens to find a previously failed token. It allocates the previously failed token to itself, and begins an automated recovery process. Once the node is full healed, it rejoins the cluster automatically.
- When a node leaves the cluster (ex. when it fails), the Dyno client will be notified of the failure due to failed health checks and will direct traffic away from the failed node...until it is brought back online.
- If you are adding a single node, say with a minor scale up, then this is currently not an automated process. There is ongoing work to allow automated scale up with rebalancing by doubling the cluster size. Please add a watch to the project on GH to be notified when this PR is submitted.
- Automated data rebalancing is not currently implemented.
Typically, you'll deploy a Dynomite cluster with a somewhat fixed size. However, as mentioned above, there is active work to automate the scale up/down process.
from dynomite-manager.
Appreciate your quick response here @akbarahmed !
Our deployment falls in category three that you've listed above where we incrementally add nodes.
To give you some context, we typically have an on-premise deployment where the customer would typically start with N nodes each with a capacity of C. Depending on the load a new Node N1 will be added with the same capacity C.
For approach three (the manual process), we'll probably follow the steps recommended by @Minh in #173 .
If it isn't too much to ask do you have a tentative date for when the PR would be submitted?
from dynomite-manager.
There's no ETA for when the PR will be ready.
from dynomite-manager.
@avinashZato I am not following why Dynomite needs to follow the diurnal pattern of the client. In fact, if you plan to scale up then you need to scale down, and generally speaking stateful systems must not follow that pattern because data can get out of sync.
If you are using Dynomite as a cache, then it means that you set a short TTL on the data. Hence the Dyno dual write functionality would probably solve your problem. In other words, you will bring a new Dynomite cluster that has some extra capacity, dual write to it, then take the older cluster down once the data have expired. The same way can work for scaling down.
from dynomite-manager.
@akbarahmed I like a lot having the DynamoDB DAO because it supports cross-region replication and you do not need another system outside of AWS. In case of region outage, we can move everything to another region and still have the tokens to come back to the failed region. This was the idea behind the Cassandra DAO. @diegopacheco was also considering changing the Astyanax to the Datastax Java Driver, which would make the DAO a little more standardized, but I am not sure how far he got with it.
from dynomite-manager.
@ipapapa not much far yet.
from dynomite-manager.
@ipapapa This is working in progress. You can follow progress here https://github.com/diegopacheco/dynomite-manager-1/tree/dev-datastax-javadriver I will fire a PR once I'm done. :-)
from dynomite-manager.
DynamoDB does not actually support bi-directional cross-region replication (only one way). More info. Hence at this point, I do not see any reason to pursue the DynamoDB DAO. We can revisit this one bi-directional replication is added.
from dynomite-manager.
This claims it is full multi region , can we reopen this?https://aws.amazon.com/dynamodb/global-tables/
from dynomite-manager.
@posix4e Done. It would be really nice to see the DAO being added.
from dynomite-manager.
dao?
from dynomite-manager.
DAO = Data Access Object. It is a Java design pattern. More information: https://www.oracle.com/technetwork/java/dataaccessobject-138824.html
from dynomite-manager.
@ipapapa , @akbarahmed
Any update on supporting DynamoDB for token management. We will be eager to use this :)
Thanks in advance
from dynomite-manager.
Hi,
I submitted a pull request for DynamoDB support, the only piece missing is integrating dynamodb with Florida. Can you review and share comments if any
#114
Thanks
from dynomite-manager.
Related Issues (20)
- Unable to get dynomite-manager up and running HOT 4
- Question: Does DM do auto streaming of tokens/data when scaling out? HOT 3
- Where do you specify how to provide different configurations
- Dynomadb is now read/write global HOT 2
- Deploy manager for on-premise docker swarm
- Is Dynomite Manager will only run for the Public cloud Deployments like AWS??
- Multi-Region deployment, Public IP
- Need help to create a docker image
- Dynomite Manager deployment on EC2 HOT 6
- javaException while starting app HOT 1
- Run Dynomite-manager locally HOT 27
- asg scale out is not working HOT 3
- DM is not replacing a instance properly when an ASG kills a machine HOT 20
- Dynomite Manager with Conductor HOT 2
- Problem in configuring HOT 4
- Error: No implementation for com.netflix.archaius.api.Config was bound HOT 2
- Cold Bootstraping for ARDB RocksDB as a persistent backend? HOT 3
- Installing dynomite-manager on Openstack/KVM HOT 1
- Dynomite Manager in OpenStack HOT 4
- Dynomite-manager for local cluster deployment 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 dynomite-manager.