Comments (6)
so we don't even need a keyspace_to_lock column but only one
Yes correct. In this case to block schema change on the whole cluster, you need to use the consistency SERIAL instead of LOCAL_SERIAL for your LWT
from evolve.
Instead of creating/deleting the keyspace, you can just create a keyspace (ingenico_schema_change
) and a table (lock
) with the following schema:
CREATE TABLE lock(
keyspace_to_lock text PRIMARY KEY
)
Before each topology change, do an INSERT with a TTL on this table (TTL value should be long enough to cover the duration of the topology change)
After the topology change, you issue an DELETE to remove the lock
from evolve.
@doanduyhai ok, got it, thanks. One last question: any replication factor or consistency level advice on this?
from evolve.
Standard replication factor of 3 should be fine.
For operations on lock/unlock since you're using LightWeightTransaction, the only choice of Consistency Level is LOCAL_SERIAL or SERIAL
LOCAL_SERIAL allows your lock operation to survive a crash of a whole datacenter.
SERIAL allows your lock operation to span across the cluster because it requires strict majority of replica on all data centers
from evolve.
Ok. Now, I was under the impression that this lock would be for the whole cluster - I guess what we want is to block any structural change in any keyspace in the cluster when the topology changes, so we don't even need a keyspace_to_lock
column but only one.
In short, this table will contain a single record when a topology change is in progress (so no migration should occur) and no record when it is safe to migrate. Is that correct?
from evolve.
@Pvlerick Is this always an openned issue ?
from evolve.
Related Issues (20)
- [Logging] Documentation missing
- Can command line interface accept password from environment HOT 1
- Bug: Error when trying to migrate large files
- Error: `syntax error at or near "-" at character 30` when running Evolve.Erase()
- [question] how to capture all SQL so that it can be applied by some other tool? HOT 1
- Feature Request: Code-based Migrations
- Allow versions longer than long.MaxValue
- Unable to load shared library 'SQLite.Interop.dll' HOT 5
- Unable to apply migration from two different sql files HOT 1
- Inconsistent behavior in treating paths in Evolve.Evolve() on Windows and Linux HOT 1
- Tool does not work the .NET 7 HOT 2
- Use Microsoft.Data.SqlClient HOT 1
- evolve and Postgres get error "SHOW VARIABLES LIKE '" HOT 4
- [Evolve Exception] CREATE INDEX CONCURRENTLY cannot be executed within a pipeline Sql query: -- evolve-tx-off
- Cannot proceed, because event scheduler is disabled. HOT 1
- Version sorting HOT 1
- Is the timeout capped at 60 seconds somewhere? HOT 5
- Migrate from System.Data.SqlClient to Microsoft.Data.SqlClient
- Netlify docs appear to be down: https://evolve-db.netlify.com shows "Site Not Found" HOT 3
- parallel migration with schema level lock ids
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 evolve.