Talk:Two-phase locking

Hyphenation
Should "Two-phase locking" be hyphenated? SeanMon 16:58, 10 July 2007 (UTC)


 * For sure you could. Redirection exists. I'm not sure you absolutely should. Comps 17:05, 30 October 2007 (UTC)

Mention of two-phase commit
Recently, Touko_vk added the following note:

Note that the two phase locking shouldn't be confused with the Two-phase commit protocol, a distributed algorithm for distributed transactions.

The note was subsequently removed by Comps. I believe that Touko_vk's note actually provided value: The two concepts sound very much alike, so I've often been confused because I failed to pay attention to which of the two was being talked about. I suggest that Touko_vk's note be re-introduced, but in a more "discrete way":

Note that the two phase locking protocol shouldn't be confused with the Two-phase commit protocol.

(Shorter, and with only one link, in order to cause less distraction from the main article). Troels Arvin (talk) 19:33, 3 February 2009 (UTC)
 * Agreed, and re-added to the article. Neilc (talk) 22:18, 3 February 2009 (UTC)

Two different "things" with the same name can justify such a comment and a disambiguation page. "Locking" and "commit" are completely different, and a common "two phase" part does not justify such. At the same token one should add comments about "two phase flow," "two phase electric power," "two phase compiler," "two phase design," "two phase material," etc. Re-adding has been too hasty. Comps (talk) 23:33, 4 February 2009 (UTC)
 * IMHO they are still somewhat close on their subject, both are related to transactions and concurrency control even though in different fields. Personally I first confused those subjects at first for a moment (even though not with Wikipedia but with a discussion on the subject) Touko vk (talk) 10:12, 9 February 2009 (UTC)

I understand your point, but I do not think this justifies such comments in such totally different articles with different names on different subjects. Comps (talk) 16:25, 15 February 2009 (UTC)

In their acronym forms, "2PL protocol" and "2PC protocol," confusion is indeed more likely. Acronyms added to comment. -- Comps (talk) 12:48, 21 August 2009 (UTC)

Cleanup tag
Hi Neilc,

You have put a cleanup tag. Please be more specific, so it can be improved. Thanks. Comps (talk) 18:53, 3 February 2009 (UTC)

Specifics needed for improving. Thanks. Comps (talk) 16:19, 4 February 2009 (UTC)

Occasionally some people see "something" that justifies a tag to their opinion, and they may be right. However, the reason can be unclear to others. If people that maintain the article do not understand the reason, ask for explanation (a note has been put also in Neilc's page), and do not get it in reasonable time, no reason exists to keep the tag. The tag will be removed in few days if not elaborated in the discussion part. Comps (talk) 16:10, 15 February 2009 (UTC)

Tag removed. Comps (talk) 14:41, 27 February 2009 (UTC)

Added cleanup tag
I don't have time to fix but capitalization and citation style is inconsistent with the rest of Wikipedia. Maybe this was what Neilc was getting after. - Craig Pemberton 00:37, 21 February 2011 (UTC)


 * Also, the introduction needs to be more clear and concise, giving a better sense of context to a reader. Details go later in the article, the intro should be a solid synopsis. - Craig Pemberton 00:42, 21 February 2011 (UTC)


 * Craig, I appreciate your knowledge in Wiki guidelines and English, and they are very helpful for the article. However, when you change sentences' meanings and it results in incorrect statements, you harm the article. E.g., you ended up with "Neither 2PL or S2PL are known to be used in practice" which is an incorrect sentence. It should be "Neither 2PL or S2PL in their general forms are known to be used in practice" to be correct. As I wrote to you in Talk:Serializability this is a specialized Math subject, and very easy to fail in to a non-expert. I have not reverted since found value, but I had to correct, and have not finished correcting your corrections yet.


 * I find your clean-up tag in its current form quite useless. Please be specific, or remove tag. This article has been evolved in almost five years, and every word and sentence have received attention. Thanks, --Comps (talk) 14:28, 22 February 2011 (UTC)


 * Please make specific suggestions for cleaning so the tag can be useful. I have no idea what you are referring to. --Comps (talk) 12:46, 24 February 2011 (UTC)


 * No specific suggestions have been provided, and thus no clue about what Craig thought was needed. The quality of the article is very reasonable, after years of improvements, and thus the tag is removed, until specific suggestions are provided. --Comps (talk) 14:01, 2 March 2011 (UTC)

Merge from Strict two-phase locking
Both articles' topic is the same so I think they should be merged. Svick (talk) 23:11, 8 June 2009 (UTC)

I oppose the merge. I do not agree with some aspects of the article Strict two-phase locking (as I already commented in the past), and strongly think it is redundant in the current article, and that a merge will harm the current article's integrity. I believe Strict two-phase locking should be either fixed and pointed to from Two-phase locking, if really has some added value (beyond the section in Two-phase locking), or completely removed. --- Comps (talk) 12:03, 16 June 2009 (UTC)

I see no support for the merge. Please remove the related tag and consider removing the entire article Strict two-phase locking. --- Comps (talk) 13:45, 19 August 2009 (UTC)
 * I removed the merge tags and redirected Strict two-phase locking to this article. Svick (talk) 18:29, 19 August 2009 (UTC)

Commitment ordering
The neutrality of part of this page is disputed, as part of a wider discussion. See Talk:Commitment ordering and Wikipedia talk:WikiProject Computer science. —Ruud 14:37, 23 December 2011 (UTC)

In what way does HyperSQL not implement two-phase locking?
HyperSQL, also known as HSQLDB, claims to implement two-phase locking. The article says "Neither 2PL or S2PL in their general forms are known to be used in practice". I assume that means that HSQLDB has some variation or limited form of 2PL, not 2PL as defined by theoreticians.

A transaction management algorithm that is difficult or impossible to implement or is prohibitively slow to execute is of limited usefulness. I am interested in the interaction between theory and practice and I would like to know in what way HSQLDB doesn't "really" do 2PL, and perhaps an assessment of how close it gets.

More generally, if it is the case that 2PL is not implemented in any DBMS that is used at all widely, why not? What are the barriers to implementation? Is there an opportunity here?

- The barriers are looking in the future. In order to unlock a lock you have to be sure, that the transaction in question will never try to access a new attribute. Therefore, 2PL can only be implemented if the scheduler starts to work after knowing the complete transaction. This again would limit the set of possible transactions. — Preceding unsigned comment added by 134.99.112.18 (talk) 11:04, 18 April 2016 (UTC)

HIGHLY MISLEADING ARTICLE
This article is highly misleading. I came across this accidentally when I found a false statement in the wikipedia article on deadlocks. The main problem is that this article uses a non-standard terminology in which terms like "2PL" are used for both an algorithm and a class of schedules. This leads to statements like "SS2PL is a special case of CO". My impression is that this has its origins in the cited article by Yoav Raz. In a closed scientific article it might be acceptable to redefine terms as needed - In Wikipedia this is certainly not acceptable. I strongly recommend to use the conventional terminology as it is used in well established standard textbooks (e.g. Weikum/Vossen or Bernstein/Hadzilacos Goodman). JohnTB (talk) 20:04, 29 May 2014 (UTC)

Here is an example from the article that proves how mixing up different meanings leads to false statements: "Being a subset of CO, an efficient implementation of distributed SS2PL exists without a distributed lock manager (DLM), while distributed deadlocks (see below) are resolved automatically. " This is definitely not true. SS2PL is an algorithm that causes deadlocks. A core property of SS2PL is that a transaction is blocked if a lock cannot be granted due to a conflicting lock. This is part of the algorithm. Thus, A transaction participating in a deadlock will never reach its request to commit, thus, the deadlock cannot be resolved in the commit treatment. Other algorithms, like multiversion locking or optimistic protocols actually do prevent deadlocks, because transactions are not blocked. But these are other algorithms. JohnTB (talk) 07:22, 30 May 2014 (UTC)

Including Conservative-2PL
There is a separate article about Conservative Two-Phase Locking that might be worth mentioning or merging into this one: Conservative two-phase locking 46.183.101.186 (talk) 15:03, 27 June 2016 (UTC)