Re: [Gems-users] TM conflict case doubt


Date: 14 Sep 2009 11:50:21 -0500
From: holey003@xxxxxxx
Subject: Re: [Gems-users] TM conflict case doubt
I went through the code but little confusion is still there. How it is decided to restart all the transactions or retry for detected conflict?

On Sep 12 2009, ruzhu kao wrote:

I/O is one of the darknesses in TM.  You may read codes in ruby/log_tm

2009/9/13  <holey003@xxxxxxx>:
Hi,

I have some doubt regarding TM operation on conflict. Suppose executing
code looks like this:

BEGIN_TRANSACTION(x)
  io_operation();     //1
  a = b + c;          //2
  c++;                //3
  b = a + c;          //4
COMMIT_TRANSACTION(x)

Suppose conflict is detected for updating 'c'. Then corresponding core
retries same transaction or again starts from line 1? What I understood is,
if logically later thread detects conflict, then it should restart the
whole thread as previous thread must update 'c' first and then should be
read by current thread. If so, where is this functionality implemented? In
transaction.c file?

Isn't it possible that logically later thread gets hold of 'c' before the
earlier thread because earlier thread is busy in i/o operation? Then the
earlier thread will detect conflict?

I am using benchmarks in microbenchmarks/transactional.

Thanks,
Anup
_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/"; to your search.


_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/"; to your search.


[← Prev in Thread] Current Thread [Next in Thread→]