Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7914285
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 3, 20262026-06-03T14:04:10+00:00 2026-06-03T14:04:10+00:00

I have read this: Transaction safe insertion of node in nested set? but I

  • 0

I have read this:
Transaction safe insertion of node in nested set?

but I worried about locking of inserting new node in nested set model.
I want insert a new node in my tree categories but I want sure that new node it is inserted without corruption. Engine used in mysql is InnoDb.
As other question say:

 BEGIN; -- or whatever API your framework has for starting a transaction
   SELECT @myLeft := lft FROM myTable WHERE ID = $id FOR UPDATE;  
   UPDATE myTable SET rgt = rgt + 2 WHERE rgt > @myLeft;       
   UPDATE myTable SET lft = lft + 2 WHERE lft > @myLeft;       
   INSERT INTO myTable(title, lft, rgt) VALUES($title, @myLeft + 1, @myLeft + 2);
 COMMIT; -- or whatever API your framework has for commiting a transaction

My problem is if concurrent users try to insert new node in same tree, does a transaction is sufficient for update and adjust left and right of others node?
If user1 add new node (execute in transaction1) and at the same time user2 add new node (execute in transaction2), I’m sure that user2 read updated tree with node added by user1 before user2 insert his new node?
So,100 users insert new node in same times last users must wait as long as previews users finish for have always a consistency tree?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-03T14:04:12+00:00Added an answer on June 3, 2026 at 2:04 pm

    InnoDB does row level locking. Thus rows being updated will be locked for the duration of the transaction. This can lead to blocking and deadlocking.

    If a row is being updated InnoDB will not be able to acquire a lock on the row to update it again. This effectively serializes the transactions. Note that the transaction isolation level can be controlled see this link http://dev.mysql.com/doc/refman/5.1/en/dynindex-isolevel.html

    Also here is a interesting article on how to look for deadlock in a innodb engine http://www.xaprb.com/blog/2006/07/31/how-to-analyze-innodb-mysql-locks/.

    If the nested sets are being updated heavily making sure you have the right isolation level and wrapping your statement in transaction will be sufficient. However it might create locking, blocking and deadlocking issues that you would need to code for.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have read this question but it's not quite what I was looking for.
I have read this article from High Scalability about Stack Overflow and other large
I have read this article about 400% boost of your website . This is
I have read some posts about this topic and the answers are comet, reverse
I read this tutorial . I try, but i get error. We have Mysql
This: use test; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; BEGIN TRANSACTION; EXEC sp_RENAME 'table1.asd'
I have read a lot of question about DAO and sessions but don't understand
I have read this. Jquery checkbox <input type=checkbox name=checkGroup id=all> <input type=checkbox name=checkGroup id=one
I have read this in order to compile NH spatial for Nhibernate 3.1 http://build-failed.blogspot.it/2012/02/nhibernate-spatial-part-2.html
First let me say I have read this useful article thoroughly and am using

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.