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
Develop quorum collection mechanism #4844
Comments
12 tasks
Gerold103
added a commit
that referenced
this issue
May 2, 2020
Synchronous space makes every transaction, affecting its data, wait until it is replicated on a quorum of replicas before it is committed. Part of #4844
Gerold103
added a commit
that referenced
this issue
May 2, 2020
Synchronous transactions are supposed to be replicated on a specified number of replicas before committed on master. The number of replicas can be specified using replication_sync_quorum option. It is 1 by default, so sync transactions work like asynchronous when not configured anyhow. 1 means successful WAL write on master is enough for commit. Part of #4844
Gerold103
added a commit
that referenced
this issue
May 2, 2020
When a transaction touches a synchronous space, its commit procedure changes. The transaction enters state of 'waiting for acks' from replicas and from own master's WAL. To denote the state there is a new transaction flag - TXN_WAIT_ACK. Part of #4844
Gerold103
added a commit
that referenced
this issue
May 2, 2020
Synchronous transaction (which changes anything in a synchronous space) before commit waits until it is replicated onto a quorum of replicas. So far all the 'synchronousness' is basically the same as the well known 'wait_lsn' technique. With the exception, that the transaction really is not committed until replicated. Problem of wait_lsn is still present though, in case master restarts. Because there is no a 'confirm' record in WAL telling which transactions are replicated and can be applied. Closes #4844 Closes #4845
sergepetrenko
pushed a commit
that referenced
this issue
May 27, 2020
Synchronous space makes every transaction, affecting its data, wait until it is replicated on a quorum of replicas before it is committed. Part of #4844
sergepetrenko
pushed a commit
that referenced
this issue
May 27, 2020
Synchronous transactions are supposed to be replicated on a specified number of replicas before committed on master. The number of replicas can be specified using replication_sync_quorum option. It is 1 by default, so sync transactions work like asynchronous when not configured anyhow. 1 means successful WAL write on master is enough for commit. Part of #4844
sergepetrenko
pushed a commit
that referenced
this issue
May 27, 2020
When a transaction touches a synchronous space, its commit procedure changes. The transaction enters state of 'waiting for acks' from replicas and from own master's WAL. To denote the state there is a new transaction flag - TXN_WAIT_ACK. Part of #4844
sergepetrenko
pushed a commit
that referenced
this issue
May 27, 2020
Synchronous transaction (which changes anything in a synchronous space) before commit waits until it is replicated onto a quorum of replicas. So far all the 'synchronousness' is basically the same as the well known 'wait_lsn' technique. With the exception, that the transaction really is not committed until replicated. Problem of wait_lsn is still present though, in case master restarts. Because there is no a 'confirm' record in WAL telling which transactions are replicated and can be applied. Closes #4844 Closes #4845
sergepetrenko
pushed a commit
that referenced
this issue
May 28, 2020
Synchronous space makes every transaction, affecting its data, wait until it is replicated on a quorum of replicas before it is committed. Part of #4844
sergepetrenko
pushed a commit
that referenced
this issue
May 28, 2020
Synchronous transactions are supposed to be replicated on a specified number of replicas before committed on master. The number of replicas can be specified using replication_sync_quorum option. It is 1 by default, so sync transactions work like asynchronous when not configured anyhow. 1 means successful WAL write on master is enough for commit. Part of #4844
sergepetrenko
pushed a commit
that referenced
this issue
May 28, 2020
When a transaction touches a synchronous space, its commit procedure changes. The transaction enters state of 'waiting for acks' from replicas and from own master's WAL. To denote the state there is a new transaction flag - TXN_WAIT_ACK. Part of #4844
sergepetrenko
pushed a commit
that referenced
this issue
May 28, 2020
Synchronous transaction (which changes anything in a synchronous space) before commit waits until it is replicated onto a quorum of replicas. So far all the 'synchronousness' is basically the same as the well known 'wait_lsn' technique. With the exception, that the transaction really is not committed until replicated. Problem of wait_lsn is still present though, in case master restarts. Because there is no a 'confirm' record in WAL telling which transactions are replicated and can be applied. Closes #4844 Closes #4845
sergepetrenko
pushed a commit
that referenced
this issue
Jun 4, 2020
Synchronous space makes every transaction, affecting its data, wait until it is replicated on a quorum of replicas before it is committed. Part of #4844
sergepetrenko
pushed a commit
that referenced
this issue
Jun 4, 2020
Synchronous transactions are supposed to be replicated on a specified number of replicas before committed on master. The number of replicas can be specified using replication_sync_quorum option. It is 1 by default, so sync transactions work like asynchronous when not configured anyhow. 1 means successful WAL write on master is enough for commit. Part of #4844
sergepetrenko
pushed a commit
that referenced
this issue
Jun 4, 2020
When a transaction touches a synchronous space, its commit procedure changes. The transaction enters state of 'waiting for acks' from replicas and from own master's WAL. To denote the state there is a new transaction flag - TXN_WAIT_ACK. Part of #4844
sergepetrenko
pushed a commit
that referenced
this issue
Jun 4, 2020
Synchronous transaction (which changes anything in a synchronous space) before commit waits until it is replicated onto a quorum of replicas. So far all the 'synchronousness' is basically the same as the well known 'wait_lsn' technique. With the exception, that the transaction really is not committed until replicated. Problem of wait_lsn is still present though, in case master restarts. Because there is no a 'confirm' record in WAL telling which transactions are replicated and can be applied. Closes #4844 Closes #4845
sergepetrenko
pushed a commit
that referenced
this issue
Jun 8, 2020
Synchronous space makes every transaction, affecting its data, wait until it is replicated on a quorum of replicas before it is committed. Part of #4844
sergepetrenko
pushed a commit
that referenced
this issue
Jun 8, 2020
Synchronous transactions are supposed to be replicated on a specified number of replicas before committed on master. The number of replicas can be specified using replication_sync_quorum option. It is 1 by default, so sync transactions work like asynchronous when not configured anyhow. 1 means successful WAL write on master is enough for commit. Part of #4844
sergepetrenko
pushed a commit
that referenced
this issue
Jun 8, 2020
When a transaction touches a synchronous space, its commit procedure changes. The transaction enters state of 'waiting for acks' from replicas and from own master's WAL. To denote the state there is a new transaction flag - TXN_WAIT_ACK. Part of #4844
sergepetrenko
pushed a commit
that referenced
this issue
Jun 8, 2020
Synchronous transaction (which changes anything in a synchronous space) before commit waits until it is replicated onto a quorum of replicas. So far all the 'synchronousness' is basically the same as the well known 'wait_lsn' technique. With the exception, that the transaction really is not committed until replicated. Problem of wait_lsn is still present though, in case master restarts. Because there is no a 'confirm' record in WAL telling which transactions are replicated and can be applied. Closes #4844 Closes #4845
sergepetrenko
pushed a commit
that referenced
this issue
Jun 9, 2020
Synchronous space makes every transaction, affecting its data, wait until it is replicated on a quorum of replicas before it is committed. Part of #4844
sergepetrenko
pushed a commit
that referenced
this issue
Jun 9, 2020
Synchronous transactions are supposed to be replicated on a specified number of replicas before committed on master. The number of replicas can be specified using replication_sync_quorum option. It is 1 by default, so sync transactions work like asynchronous when not configured anyhow. 1 means successful WAL write on master is enough for commit. Part of #4844
sergepetrenko
pushed a commit
that referenced
this issue
Jun 9, 2020
When a transaction touches a synchronous space, its commit procedure changes. The transaction enters state of 'waiting for acks' from replicas and from own master's WAL. To denote the state there is a new transaction flag - TXN_WAIT_ACK. Part of #4844
sergepetrenko
pushed a commit
that referenced
this issue
Jun 9, 2020
Synchronous transaction (which changes anything in a synchronous space) before commit waits until it is replicated onto a quorum of replicas. So far all the 'synchronousness' is basically the same as the well known 'wait_lsn' technique. With the exception, that the transaction really is not committed until replicated. Problem of wait_lsn is still present though, in case master restarts. Because there is no a 'confirm' record in WAL telling which transactions are replicated and can be applied. Closes #4844 Closes #4845
sergepetrenko
pushed a commit
that referenced
this issue
Jun 25, 2020
Synchronous transactions are supposed to be replicated on a specified number of replicas before committed on master. The number of replicas can be specified using replication_synchro_quorum option. It is 1 by default, so sync transactions work like asynchronous when not configured anyhow. 1 means successful WAL write on master is enough for commit. When replication_synchro_quorum is greater than 1, an instance has to wait for the specified number of replicas to reply with success. If enough replies aren't collected during replication_synchro_timeout, the instance rolls back the tx in question. Part of #4844 Part of #5073
sergepetrenko
pushed a commit
that referenced
this issue
Jun 25, 2020
When a transaction touches a synchronous space, its commit procedure changes. The transaction enters state of 'waiting for acks' from replicas and from own master's WAL. To denote the state there is a new transaction flag - TXN_WAIT_ACK. Part of #4844
sergepetrenko
pushed a commit
that referenced
this issue
Jun 25, 2020
Synchronous transaction (which changes anything in a synchronous space) before commit waits until it is replicated onto a quorum of replicas. So far all the 'synchronousness' is basically the same as the well known 'wait_lsn' technique. With the exception, that the transaction really is not committed until replicated. Problem of wait_lsn is still present though, in case master restarts. Because there is no a 'confirm' record in WAL telling which transactions are replicated and can be applied. Closes #4844 Closes #4845
sergepetrenko
pushed a commit
that referenced
this issue
Jun 29, 2020
Synchronous transactions are supposed to be replicated on a specified number of replicas before committed on master. The number of replicas can be specified using replication_synchro_quorum option. It is 1 by default, so sync transactions work like asynchronous when not configured anyhow. 1 means successful WAL write on master is enough for commit. When replication_synchro_quorum is greater than 1, an instance has to wait for the specified number of replicas to reply with success. If enough replies aren't collected during replication_synchro_timeout, the instance rolls back the tx in question. Part of #4844 Part of #5073
sergepetrenko
pushed a commit
that referenced
this issue
Jun 29, 2020
When a transaction touches a synchronous space, its commit procedure changes. The transaction enters state of 'waiting for acks' from replicas and from own master's WAL. To denote the state there is a new transaction flag - TXN_WAIT_ACK. Part of #4844
sergepetrenko
pushed a commit
that referenced
this issue
Jun 29, 2020
Synchronous transaction (which changes anything in a synchronous space) before commit waits until it is replicated onto a quorum of replicas. So far all the 'synchronousness' is basically the same as the well known 'wait_lsn' technique. With the exception, that the transaction really is not committed until replicated. Problem of wait_lsn is still present though, in case master restarts. Because there is no a 'confirm' record in WAL telling which transactions are replicated and can be applied. Closes #4844 Closes #4845
Gerold103
added a commit
that referenced
this issue
Jun 29, 2020
Synchronous transactions are supposed to be replicated on a specified number of replicas before committed on master. The number of replicas can be specified using replication_synchro_quorum option. It is 1 by default, so sync transactions work like asynchronous when not configured anyhow. 1 means successful WAL write on master is enough for commit. When replication_synchro_quorum is greater than 1, an instance has to wait for the specified number of replicas to reply with success. If enough replies aren't collected during replication_synchro_timeout, the instance rolls back the tx in question. Part of #4844 Part of #5073
Gerold103
added a commit
that referenced
this issue
Jun 29, 2020
When a transaction touches a synchronous space, its commit procedure changes. The transaction enters state of 'waiting for acks' from replicas and from own master's WAL. To denote the state there is a new transaction flag - TXN_WAIT_ACK. Part of #4844
Gerold103
added a commit
that referenced
this issue
Jun 29, 2020
Synchronous transaction (which changes anything in a synchronous space) before commit waits until it is replicated onto a quorum of replicas. So far all the 'synchronousness' is basically the same as the well known 'wait_lsn' technique. With the exception, that the transaction really is not committed until replicated. Problem of wait_lsn is still present though, in case master restarts. Because there is no a 'confirm' record in WAL telling which transactions are replicated and can be applied. Closes #4844 Closes #4845
Gerold103
added a commit
that referenced
this issue
Jun 30, 2020
Synchronous transactions are supposed to be replicated on a specified number of replicas before committed on master. The number of replicas can be specified using replication_synchro_quorum option. It is 1 by default, so sync transactions work like asynchronous when not configured anyhow. 1 means successful WAL write on master is enough for commit. When replication_synchro_quorum is greater than 1, an instance has to wait for the specified number of replicas to reply with success. If enough replies aren't collected during replication_synchro_timeout, the instance rolls back the tx in question. Part of #4844 Part of #5073
Gerold103
added a commit
that referenced
this issue
Jun 30, 2020
When a transaction touches a synchronous space, its commit procedure changes. The transaction enters state of 'waiting for acks' from replicas and from own master's WAL. To denote the state there is a new transaction flag - TXN_WAIT_ACK. Part of #4844
Gerold103
added a commit
that referenced
this issue
Jun 30, 2020
Synchronous transaction (which changes anything in a synchronous space) before commit waits until it is replicated onto a quorum of replicas. So far all the 'synchronousness' is basically the same as the well known 'wait_lsn' technique. With the exception, that the transaction really is not committed until replicated. Problem of wait_lsn is still present though, in case master restarts. Because there is no a 'confirm' record in WAL telling which transactions are replicated and can be applied. Closes #4844 Closes #4845
Gerold103
added a commit
that referenced
this issue
Jul 1, 2020
Synchronous transactions are supposed to be replicated on a specified number of replicas before committed on master. The number of replicas can be specified using replication_synchro_quorum option. It is 1 by default, so sync transactions work like asynchronous when not configured anyhow. 1 means successful WAL write on master is enough for commit. When replication_synchro_quorum is greater than 1, an instance has to wait for the specified number of replicas to reply with success. If enough replies aren't collected during replication_synchro_timeout, the instance rolls back the tx in question. Part of #4844 Part of #5073
Gerold103
added a commit
that referenced
this issue
Jul 1, 2020
Synchronous transaction (which changes anything in a synchronous space) before commit waits until it is replicated onto a quorum of replicas. When there is a not committed synchronous transaction, any attempt to commit a next transaction is suspended, even if it is an async transaction. This restriction comes from the theoretically possible dependency of what is written in the async transactions on what was written in the previous sync transactions. So far all the 'synchronousness' is basically the same as the well known 'wait_lsn' technique. With the exception, that the transaction really is not committed until replicated. Problem of wait_lsn is still present though, in case master restarts. Because there is no a 'confirm' record in WAL telling which transactions are replicated and can be applied. Closes #4844 Closes #4845
Gerold103
added a commit
that referenced
this issue
Jul 2, 2020
Synchronous transactions are supposed to be replicated on a specified number of replicas before committed on master. The number of replicas can be specified using replication_synchro_quorum option. It is 1 by default, so sync transactions work like asynchronous when not configured anyhow. 1 means successful WAL write on master is enough for commit. When replication_synchro_quorum is greater than 1, an instance has to wait for the specified number of replicas to reply with success. If enough replies aren't collected during replication_synchro_timeout, the instance rolls back the tx in question. Part of #4844 Part of #5073
Gerold103
added a commit
that referenced
this issue
Jul 2, 2020
Synchronous transaction (which changes anything in a synchronous space) before commit waits until it is replicated onto a quorum of replicas. When there is a not committed synchronous transaction, any attempt to commit a next transaction is suspended, even if it is an async transaction. This restriction comes from the theoretically possible dependency of what is written in the async transactions on what was written in the previous sync transactions. So far all the 'synchronousness' is basically the same as the well known 'wait_lsn' technique. With the exception, that the transaction really is not committed until replicated. Problem of wait_lsn is still present though, in case master restarts. Because there is no a 'confirm' record in WAL telling which transactions are replicated and can be applied. Closes #4844 Closes #4845
sergepetrenko
pushed a commit
that referenced
this issue
Jul 4, 2020
Synchronous transactions are supposed to be replicated on a specified number of replicas before committed on master. The number of replicas can be specified using replication_synchro_quorum option. It is 1 by default, so sync transactions work like asynchronous when not configured anyhow. 1 means successful WAL write on master is enough for commit. When replication_synchro_quorum is greater than 1, an instance has to wait for the specified number of replicas to reply with success. If enough replies aren't collected during replication_synchro_timeout, the instance rolls back the tx in question. Part of #4844 Part of #5073
sergepetrenko
pushed a commit
that referenced
this issue
Jul 4, 2020
Synchronous transaction (which changes anything in a synchronous space) before commit waits until it is replicated onto a quorum of replicas. When there is a not committed synchronous transaction, any attempt to commit a next transaction is suspended, even if it is an async transaction. This restriction comes from the theoretically possible dependency of what is written in the async transactions on what was written in the previous sync transactions. So far all the 'synchronousness' is basically the same as the well known 'wait_lsn' technique. With the exception, that the transaction really is not committed until replicated. Problem of wait_lsn is still present though, in case master restarts. Because there is no a 'confirm' record in WAL telling which transactions are replicated and can be applied. Closes #4844 Closes #4845
Gerold103
added a commit
that referenced
this issue
Jul 5, 2020
Synchronous transaction (which changes anything in a synchronous space) before commit waits until it is replicated onto a quorum of replicas. When there is a not committed synchronous transaction, any attempt to commit a next transaction is suspended, even if it is an async transaction. This restriction comes from the theoretically possible dependency of what is written in the async transactions on what was written in the previous sync transactions. So far all the 'synchronousness' is basically the same as the well known 'wait_lsn' technique. With the exception, that the transaction really is not committed until replicated. Problem of wait_lsn is still present though, in case master restarts. Because there is no a 'confirm' record in WAL telling which transactions are replicated and can be applied. Closes #4844 Closes #4845
Gerold103
added a commit
that referenced
this issue
Jul 5, 2020
Synchronous transaction (which changes anything in a synchronous space) before commit waits until it is replicated onto a quorum of replicas. When there is a not committed synchronous transaction, any attempt to commit a next transaction is suspended, even if it is an async transaction. This restriction comes from the theoretically possible dependency of what is written in the async transactions on what was written in the previous sync transactions. So far all the 'synchronousness' is basically the same as the well known 'wait_lsn' technique. With the exception, that the transaction really is not committed until replicated. Problem of wait_lsn is still present though, in case master restarts. Because there is no a 'confirm' record in WAL telling which transactions are replicated and can be applied. Closes #4844 Closes #4845
Gerold103
added a commit
that referenced
this issue
Jul 7, 2020
Synchronous transaction (which changes anything in a synchronous space) before commit waits until it is replicated onto a quorum of replicas. When there is a not committed synchronous transaction, any attempt to commit a next transaction is suspended, even if it is an async transaction. This restriction comes from the theoretically possible dependency of what is written in the async transactions on what was written in the previous sync transactions. So far all the 'synchronousness' is basically the same as the well known 'wait_lsn' technique. With the exception, that the transaction really is not committed until replicated. Problem of wait_lsn is still present though, in case master restarts. Because there is no a 'confirm' record in WAL telling which transactions are replicated and can be applied. Closes #4844 Closes #4845
Gerold103
added a commit
that referenced
this issue
Jul 9, 2020
Synchronous transactions are supposed to be replicated on a specified number of replicas before committed on master. The number of replicas can be specified using replication_synchro_quorum option. It is 1 by default, so sync transactions work like asynchronous when not configured anyhow. 1 means successful WAL write on master is enough for commit. When replication_synchro_quorum is greater than 1, an instance has to wait for the specified number of replicas to reply with success. If enough replies aren't collected during replication_synchro_timeout, the instance rolls back the tx in question. Part of #4844 Part of #5073
Gerold103
added a commit
that referenced
this issue
Jul 9, 2020
Synchronous transaction (which changes anything in a synchronous space) before commit waits until it is replicated onto a quorum of replicas. When there is a not committed synchronous transaction, any attempt to commit a next transaction is suspended, even if it is an async transaction. This restriction comes from the theoretically possible dependency of what is written in the async transactions on what was written in the previous sync transactions. So far all the 'synchronousness' is basically the same as the well known 'wait_lsn' technique. With the exception, that the transaction really is not committed until replicated. Problem of wait_lsn is still present though, in case master restarts. Because there is no a 'confirm' record in WAL telling which transactions are replicated and can be applied. Closes #4844 Closes #4845
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Quorum (described at RFC here) should be collected per-lsn from a set of replicas in cluster that participate in the synchronous replication. The quorum considered as achieved for an lsn as soon as required number of replicas successfully reported bigger lsn in their vclocks.
As soon as replica reports an error, the replica should be disconnected as erroneous.
Upon quorum is achieved there should happen:
The text was updated successfully, but these errors were encountered: