Dear Sequoia mailing list members,

When I asked Dr.Cecchet some questions of C-JDBC, he taught me to use
this mailing list to ask further questions. Would you like to answer
my new question?

Generally, when two write operations which belong to different
transactions try to modify the same data item, the order of them is
not deterministic. If the order of one server is different from that
of another server, they are inconsistent.

In C-JDBC, for keeping consistency between database servers, he taught
me that the controller of C-JDBC used the enhanced table-locking
mechanism. That is, only writes to different tables are executed in
parallel, writes to the same table are serialized. I want to know
details of the mechanism. How does the controller control the two
write operations?

Kind regards,
Takeshi Mishima
The University of Tokyo
[EMAIL PROTECTED]


> Dear Takeshi MISHIMA,
> > I greatly appreciate your quick answer. I want to ask two more
> > questions, if you do not mind.
> >
> > I can not find the discussion of the group communication in the paper
> > "C-JDBC: Flexible Database Clustering Middleware" in USENIX 2004". I
> > guess that the version of the paper has not implemented the group
> > communication. If my guess is true, how the order of transactions was
> > controlled in the version?
> >   
> To keep things simple, the version described in the paper only used 1 
> controller. In that case, all transactions are sent to a centralized 
> controller that orders the transactions in the order it receives them. 
> If controllers are replicated, then the group communication is used to 
> order transactions.
> > With the group communication, I can understand that the order between
> > controllers can be the same but I don't know how the order between
> > the controller and its backends can be forced in the same order? If
> > the controller submits two transactions to its backends concurrently,
> > I think the execution order of them is not deterministic. You say
> > "each controller then makes sure that all its backends execute the
> > transaction in the total order" but how can you realize it?
> > Like Postgres-R, modification of source code for C-JDBC is needed?
> >   
> Actually, only writes to different tables are executed in parallel, 
> writes to the same table are serialized. Internally, we use an enhanced 
> table-locking mechanism for writes.
> > I am sorry for my impolite e-mail because I am not good at
> > English. But I am very interested in C-JDBC architecture.
> >   
> No need to apologize, your english is very good.
> Don't hesitate to post further questions on the Sequoia mailing list at 
> [email protected]
> 
> Best regards,
> Emmanuel
> 
> >   
> >> Dear Takeshi Mishima,
> >>
> >> The order of transactions is determined by the group communication 
> >> between the controllers. The group communication provides total 
> >> ordering. Therefore the transactions will be delivered in the same order 
> >> at both controllers, either T1->T2 or T2->T1. Each controller then makes 
> >> sure that all its backends execute the transaction in the total order.
> >>
> >> Thanks for your interest in C-JDBC. You might find additional 
> >> information on the C-JDBC web site (http://c-jdbc.objectweb.org) or on 
> >> the Sequoia web site (http://sequoia.continuent.org) which is the new 
> >> version of C-JDBC.
> >>
> >> Best regards,
> >> Emmanuel Cecchet
> >> -- 
> >>
> >> Emmanuel Cecchet - Research scientist
> >> EPFL - LABOS/DSLAB - IN.N 317
> >> Phone: +41-21-693-7558
> >>
> >>
> >>
> >>     
> >>> Dear Cecchet, Marguerite, Zwaenepoel,
> >>>
> >>> When I read your paper with the title "C-JDBC: Flexible Database
> >>> Clustering Middleware" in USENIX 2004, I was left with one
> >>> question. How does C-JDBC keep consistency between database servers? 
> >>> For example, there are two database servers in my C-JDBC system and
> >>> two transactions T1 and T2 which will try to update the same object at
> >>> the same time. Which order (T1->T2, or T2->T1) are they executed in?
> >>> If one database server executes in one order (T1->T2) and the other
> >>> executes in reverse order (T2->T1), the consistency of the system is
> >>> violated. I could not find out the way to solve the problem on your
> >>> paper. Could you tell me the way?
> >>>
> >>> Kind regards,
> >>> Takeshi Mishima
> >>> The university of Tokyo
> >>> [EMAIL PROTECTED]
> >>>
> >>>
> >>>
> >>>   
> >>>       
> >>
> >>     
> >
> >   
> 
> 
> -- 
> Emmanuel Cecchet - Research scientist
> EPFL - LABOS/DSLAB - IN.N 317
> Phone: +41-21-693-7558
> 
> 
_______________________________________________
Sequoia mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/sequoia

Reply via email to