In Hyperscale citus ,once a remote commit is done on one worker node, when a subsequent remote commit fails, how the first one is reverted.

Honey Nadackal 126 Reputation points
2023-03-23T14:43:32.29+00:00

Ours is a transactional banking application and want to shard few of the large tables when we move to Az Hyperscale Citus . Our query is on how commit happens when the data is distributed across nodes. Like in one transaction block , if we insert /update data distributed across multiple nodes and while issuing commit if one of the nodes go down how is it handled? Given we have a 5 node cluster , and we update data across 5 nodes and while issuing commit on last node , say node 5 goes down, will the commit which is already issued on others nodes gets rolled back.

Azure Database for PostgreSQL
0 comments No comments
{count} votes

Accepted answer
  1. GeethaThatipatri-MSFT 29,377 Reputation points Microsoft Employee
    2023-03-23T21:45:21.4933333+00:00

    Hi, @Honey Nadackal Thanks for posting your question in the Microsoft Q&A forum.

    Citus supports distributed transactions (resilient to failures). Internally it uses 2 Phase Commit (2PC) and distributed deadlock detection. The below blog captures more on this topic and also covers failure scenario handling.

     https://www.citusdata.com/blog/2017/11/22/how-citus-executes-distributed-transactions/

     I am also sharing the SIGMOD paper of citus. See section 3.7, it captures in detail on how citus implements distributed transactions.

    I hope this information helps.

    Regards

    Geetha

    0 comments No comments

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.