Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

questions on Linearizable isolation level #157

Closed
pdeva opened this issue Jun 19, 2017 · 5 comments
Closed

questions on Linearizable isolation level #157

pdeva opened this issue Jun 19, 2017 · 5 comments
Labels

Comments

@pdeva
Copy link

pdeva commented Jun 19, 2017

There is some confusion regarding Linearizable isolation level, as described in the docs.

The docs say:

  1. To enable it, you must enable HASql

However, it is never defined what 'HASql' is?

  1. requires that the cluster-machines clocks are synchronized and do not drift beyond a known boundary

From the VLDB paper, it seems that BLP is using GPS clocks for this.
For the rest of us using AWS, is NTP good enough? if so, what is the performance impact of using NTP here instead of gps clocks?

  1. attain Linearizable Consistency, and correctness in the face of network partitions

Does this mean that if a network partition occurs, and Linearizable isolation is not being used, data will become inconsistent? From the answer to #146 I was under assumption that partitions are dealt with properly regardless of transaction isolation level.

  1. This isolation level is tested for a subset of sql features

What subset is that?

@mponomar
Copy link
Contributor

  1. HASQL
  2. NTP is fine. Coherency options. Lease time and renew intervals are set to reasonable values. If your clocks are especially unstable, set the lease times higher and the renew interval lower.
  3. Data won't become inconsistent. You may see the side effects of transactions that commit on the node you're connected to, but not yet the majority of the cluster. This becomes a problem if a network splits or the master and several other nodes crash. Most applications don't need to protect themselves from this. If it still worries you, enable durable LSNs.
  4. I don't know where that line is from. All statements are supported in snapshot and serializable modes.

@pdeva
Copy link
Author

pdeva commented Jun 20, 2017

@mponomar regarding 4. I was asking about Linearizable isolation (not snapshot or serializable).

https://bloomberg.github.io/comdb2/transaction_model.html#linearizable-isolation-level

This isolation level is tested for a subset of sql features

The doc says Linearizable isolation doesnt have all sql features tested. So I wanted to know which features are those?

@markhannum
Copy link
Contributor

markhannum commented Jun 20, 2017 via email

@pdeva
Copy link
Author

pdeva commented Jun 20, 2017

or across schema changes

sorry i am a little confused here and this might be a silly question.

By 'across schema changes' in this context, do you mean if i do an 'alter table', that 'alter table' statement is not linearizable?

@markhannum
Copy link
Contributor

markhannum commented Jun 20, 2017 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants