RE: [JBoss-dev] RE: how's ecperf going?

2003-01-28 Thread marc fleury
 
 Agreed.  In this case there is a strong performance reason to 
 split the 
 code into two interceptors:

The point is that the call in the interceptors is JUST dissaciation and
association.  The mumbo jumbo we are talking about (whatever it means to
suspend and resume a transaction) is not really relevant to the
interceptor.  I don't think we need to change the interceptor just the
fact that suspend/resume should not be distributed calls just
association calls in JTA.  Let's treat spec bugs for what they are. 

BUGS.

marcf

 
 client tx interceptor attaches the tx to the invocation only 
 if the tx 
 is going to be used (requires, supports and there is a tx).  For 
 requires new it removes the tx if attached
 
 [ (for remote invoker only)
 invoker xaresource converts tx if it exists into an xid 
 -transport --- xid is used to start/identify tx on other 
 jboss instance ONLY IF PRESENT ] server tx interceptor 
 creates new tx if required and not present.
 
 Now each interceptor is very clear about its responsiblitly.  
 Furthermore, the tx is NOTimported into the 2nd jboss vm if it can be 
 determined that it won't be doing any work there.  This saves one or 
 two remote calls during commit.
 
 david
 
  -dain
 
  On Monday, January 27, 2003, at 05:40 PM, David Jencks wrote:
 
  FWIW, I agree 100% with you on this marc
 
  david jencks
 
  On Monday, January 27, 2003, at 05:34 PM, marc fleury wrote:
 
  In all of the other application servers I have been working on
  TransactionManager.resume() and suspend() are expensive 
 operations, 
  since the JTA spec version 1.0.1 (section 3.2.3) 
 requires the TM to 
  delist/enlist every resource that takes part in the transaction, 
  which is costly. If it is done differently in Jboss on purpose,
 
  IT IS A BUG IN THE SPEC !
 
  I am dead serious.  Also all the discussion sucks and 
 comes from the 
  name of the API. Suspend() and resume() look like they are Tx 
  lifecycle operations which require resource delisting??? 
 NO NO NO, 
  resume and suspend in the scope of what we do in the method is 
  PURELY THREAD ASSOCIATION, the TX goes on.
 
  In our code it means resume association suspend 
 association not 
  suspend TX.
 
  I had called it dissassociateThread() and 
 associateThread() to 
  emph the fact that all we are looking for is association of 
  thread to
  TX and THAT'S IT.   It was changed in subsequent impls.  You are
  talking about something else, you are talking about the notion of 
  suspending THE TRANSACTION.
 
  Do we have a line?
 
  marcf
 
  Doesn't anyone else see this?
  I feel like I am taking crazy pills
  -- ZooLander --
 
 
 
 
  ---
  This SF.NET email is sponsored by:
  SourceForge Enterprise Edition + IBM + LinuxWorld = 
 Something 2 See! 
  http://www.vasoftware.com 
  ___
  Jboss-development mailing list 
  [EMAIL PROTECTED]
  https://lists.sourceforge.net/lists/listinfo/jboss-development
 
 
 
 
  ---
  This SF.NET email is sponsored by:
  SourceForge Enterprise Edition + IBM + LinuxWorld = 
 Something 2 See! 
  http://www.vasoftware.com 
  ___
  Jboss-development mailing list 
  [EMAIL PROTECTED]
  https://lists.sourceforge.net/lists/listinfo/jboss-development
 
 
 
  ---
  This SF.NET email is sponsored by:
  SourceForge Enterprise Edition + IBM + LinuxWorld = 
 Something 2 See! 
  http://www.vasoftware.com 
  ___
  Jboss-development mailing list 
 [EMAIL PROTECTED]
  https://lists.sourceforge.net/lists/listinfo/jboss-development
 
 
 
 
 ---
 This SF.NET email is sponsored by:
 SourceForge Enterprise Edition + IBM + LinuxWorld = Something 
 2 See! http://www.vasoftware.com 
 ___
 Jboss-development mailing list [EMAIL PROTECTED]
 https://lists.sourceforge.net/lists/listinfo/jboss-development
 



---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



Re: [JBoss-dev] RE: how's ecperf going?

2003-01-28 Thread David Jencks

On Tuesday, January 28, 2003, at 10:07 AM, marc fleury wrote:



Agreed.  In this case there is a strong performance reason to
split the
code into two interceptors:


The point is that the call in the interceptors is JUST dissaciation and
association.  The mumbo jumbo we are talking about (whatever it means 
to
suspend and resume a transaction) is not really relevant to the
interceptor.  I don't think we need to change the interceptor just the
fact that suspend/resume should not be distributed calls just
association calls in JTA.  Let's treat spec bugs for what they are.

We already agreed with you that in one vm association/dissociation are 
essentially free and if they aren't it is a bug.  I'm saying that 
importing a tx when you don't need to  is NOT free and if we avoid it 
the code will become easier to understand.  Although easy to 
understand is definitely subjective I have also found myself confused 
by the current code in the server side tx interceptor.

david

BUGS.

marcf



client tx interceptor attaches the tx to the invocation only
if the tx
is going to be used (requires, supports and there is a tx).  For
requires new it removes the tx if attached

[ (for remote invoker only)
invoker xaresource converts tx if it exists into an xid
-transport --- xid is used to start/identify tx on other
jboss instance ONLY IF PRESENT ] server tx interceptor
creates new tx if required and not present.

Now each interceptor is very clear about its responsiblitly.
Furthermore, the tx is NOTimported into the 2nd jboss vm if it can be
determined that it won't be doing any work there.  This saves one or
two remote calls during commit.

david


-dain

On Monday, January 27, 2003, at 05:40 PM, David Jencks wrote:


FWIW, I agree 100% with you on this marc

david jencks

On Monday, January 27, 2003, at 05:34 PM, marc fleury wrote:


In all of the other application servers I have been working on
TransactionManager.resume() and suspend() are expensive

operations,

since the JTA spec version 1.0.1 (section 3.2.3)

requires the TM to

delist/enlist every resource that takes part in the transaction,
which is costly. If it is done differently in Jboss on purpose,


IT IS A BUG IN THE SPEC !

I am dead serious.  Also all the discussion sucks and

comes from the

name of the API. Suspend() and resume() look like they are Tx
lifecycle operations which require resource delisting???

NO NO NO,

resume and suspend in the scope of what we do in the method is
PURELY THREAD ASSOCIATION, the TX goes on.

In our code it means resume association suspend

association not

suspend TX.

I had called it dissassociateThread() and

associateThread() to

emph the fact that all we are looking for is association of
thread to
TX and THAT'S IT.   It was changed in subsequent impls.  You are
talking about something else, you are talking about the notion of
suspending THE TRANSACTION.

Do we have a line?

marcf

Doesn't anyone else see this?
I feel like I am taking crazy pills
-- ZooLander --




---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld =

Something 2 See!

http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development





---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld =

Something 2 See!

http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development




---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld =

Something 2 See!

http://www.vasoftware.com
___
Jboss-development mailing list

[EMAIL PROTECTED]

https://lists.sourceforge.net/lists/listinfo/jboss-development





---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something
2 See! http://www.vasoftware.com
___
Jboss-development mailing list [EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development





---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development





---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com

Re: [JBoss-dev] RE: how's ecperf going?

2003-01-28 Thread Dain Sundstrom
On Tuesday, January 28, 2003, at 09:07 AM, marc fleury wrote:



Agreed.  In this case there is a strong performance reason to
split the
code into two interceptors:


The point is that the call in the interceptors is JUST dissaciation and
association.  The mumbo jumbo we are talking about (whatever it means 
to
suspend and resume a transaction) is not really relevant to the
interceptor.  I don't think we need to change the interceptor just the
fact that suspend/resume should not be distributed calls just
association calls in JTA.  Let's treat spec bugs for what they are.

BUGS.

That sounds logical, but we don't get to change the specs.  This would 
be like Scott saying that classloading works perfectly, but the Sun JVM 
has a bug (which is does); in the end he coded around the problem.

-dain



---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development


RE: [JBoss-dev] RE: how's ecperf going?

2003-01-28 Thread marc fleury
 We already agreed with you that in one vm 
 association/dissociation are 
 essentially free and if they aren't it is a bug.  I'm saying that 

oh ok :) sorry jumpy.  yes association dissociation should be clearly
exposed JTA calls. Spec bug.

 importing a tx when you don't need to  is NOT free 

clearly. clearly.

marcf



---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



RE: [JBoss-dev] RE: how's ecperf going?

2003-01-27 Thread marc fleury
  * TxInterceptorCMP suspends and resumes a transaction in all cases, 
  sometimes even twice. This can be very expensive, especially with 
  global transactions.
 
 
 ??  Can you point this out?

for the nth time we are having this discussion. 

NO, the 'suspend/resume' is NOT A LIFECYCLE EVEN ON THE TRANSACTION.
That says that there is no distribution of that event.  S/R just says
that we DIS-ASSOCIATE the thread from the transaction and that's it. If
a TM implements notifications of this, it is A BUG.

marcf



---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



RE: [JBoss-dev] RE: how's ecperf going?

2003-01-27 Thread Sacha Labourey
yes, if you take a look at the code, before the switch statement that
distinguishes the cases between the different transaction attributes, we
start by a tx.suspend() and, a few lines after, a tx.resume() if it was a
REQUIRES tag for example, etc.

 -Message d'origine-
 De : [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED]]De la part de marc
 fleury
 Envoye : lundi, 27 janvier 2003 16:52
 A : [EMAIL PROTECTED]; 'Stefan Reich'
 Objet : RE: [JBoss-dev] RE: how's ecperf going?


   * TxInterceptorCMP suspends and resumes a transaction in all cases,
   sometimes even twice. This can be very expensive, especially with
   global transactions.
  
 
  ??  Can you point this out?

 for the nth time we are having this discussion.

 NO, the 'suspend/resume' is NOT A LIFECYCLE EVEN ON THE TRANSACTION.
 That says that there is no distribution of that event.  S/R just says
 that we DIS-ASSOCIATE the thread from the transaction and that's it. If
 a TM implements notifications of this, it is A BUG.

 marcf



 ---
 This SF.NET email is sponsored by:
 SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
 http://www.vasoftware.com
 ___
 Jboss-development mailing list
 [EMAIL PROTECTED]
 https://lists.sourceforge.net/lists/listinfo/jboss-development




---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



RE: [JBoss-dev] RE: how's ecperf going?

2003-01-27 Thread marc fleury
 yes, if you take a look at the code, before the switch 
 statement that distinguishes the cases between the different 
 transaction attributes, we start by a tx.suspend() and, a few 
 lines after, a tx.resume() if it was a REQUIRES tag for example, etc.

I know I wrote the original version of the code. 

What I argued Nth times is that tx.suspend() should just be implemented
with 

threadLocalVariable.set(null); 

meaning that we disassociate the thread from the TX. 

The event thread dis-association is not relevant to anyone else, not
even to the TX.  The TX DOESN'T CARE that it is associated with n
threads or not. 

Man I really need to write that TX-lite spec.  It is a fucking mess in
your heads right now :)

marcf

 
  -Message d'origine-
  De : [EMAIL PROTECTED]
  [mailto:[EMAIL PROTECTED]]De la part de 
  marc fleury Envoye : lundi, 27 janvier 2003 16:52
  A : [EMAIL PROTECTED]; 'Stefan Reich'
  Objet : RE: [JBoss-dev] RE: how's ecperf going?
 
 
* TxInterceptorCMP suspends and resumes a transaction in all 
cases, sometimes even twice. This can be very expensive, 
especially with global transactions.
   
  
   ??  Can you point this out?
 
  for the nth time we are having this discussion.
 
  NO, the 'suspend/resume' is NOT A LIFECYCLE EVEN ON THE 
 TRANSACTION. 
  That says that there is no distribution of that event.  S/R 
 just says 
  that we DIS-ASSOCIATE the thread from the transaction and 
 that's it. 
  If a TM implements notifications of this, it is A BUG.
 
  marcf
 
 
 
  ---
  This SF.NET email is sponsored by:
  SourceForge Enterprise Edition + IBM + LinuxWorld = 
 Something 2 See! 
  http://www.vasoftware.com 
  ___
  Jboss-development mailing list 
 [EMAIL PROTECTED]
  https://lists.sourceforge.net/lists/listinfo/jboss-development
 
 
 
 
 ---
 This SF.NET email is sponsored by:
 SourceForge Enterprise Edition + IBM + LinuxWorld = Something 
 2 See! http://www.vasoftware.com 
 ___
 Jboss-development mailing list [EMAIL PROTECTED]
 https://lists.sourceforge.net/lists/listinfo/jboss-development
 



---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



RE: [JBoss-dev] Re: how's ecperf going?

2003-01-27 Thread Stefan Reich
I am all for it. The more people run Ecperf on various platforms and 
JDKs, the better for the quality.

Stefan

Message: 6
From: Sacha Labourey [EMAIL PROTECTED]
To: [EMAIL PROTECTED], [EMAIL PROTECTED]
Subject: RE: [JBoss-dev] Re: how's ecperf going?
Date: Sat, 25 Jan 2003 11:45:58 +0100
Reply-To: [EMAIL PROTECTED]

BTW, that's a cool idea: we should have not only the testsuite running 
on
different JVM/OS but the ECPERF to see the evolution of performance 
accross
releases (so we would need some kind of result page where each day we 
have a
different value). NetBeans has this.

I could set it up to run on Windows Advanced Server bi-proc if you 
want. I
was setting up some automated clustering testing before the training 
but had
issues with build/build.xml calling testsuite/build.xml (bug in 
buildmagic
probably) I wrote to Jason but I guess he has other priorities (such as
looking at the blue sky)

-Message d'origine-
De : [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]De la part de
Stefan Reich
Envoye : samedi, 25 janvier 2003 02:24
A : [EMAIL PROTECTED]
Cc : [EMAIL PROTECTED]
Objet : [JBoss-dev] Re: how's ecperf going?


Hi Bill,

I am running ecperf regularly on the 3.0 and 3.2 branches. I
accumulated a bunch of fixes for scalability and performance problems
already, plus a few fixes for inconsistent lock usage that I will 
merge
soon.

Here are some things I noticed:
* the test fails when I deploy the BMP version, some of the beans that
have been created don't seem to end up in the database.
* the CMP version must be tweaked to use the util.xml BMP version of
the beans (search for SERIALIZABLE in the README) to work correctly
* the CMP version doesn't deploy anymore on the current 3.2 branch
* with the 3.2 branch I get many more spurious esceptions than with 
3.0
* a HashMap in the class CachedConnectionManager seems to be the most
contended lock
* JAWS checks for the existence of a PK before inserting a new row in
the database. This is pretty expensive.
* the LogInterceptor usage of the NDC class makes it a global source 
of
contention
* TxInterceptorCMP suspends and resumes a transaction in all cases,
sometimes even twice. This can be very expensive, especially with
global transactions.

Since I am running the tests on PowerPC Macs and the Apple VM it is
hard to compare the results with other platforms.

Stefan

On Thursday, Jan 23, 2003, at 19:11 US/Pacific, Bill Burke wrote:

Are you getting decent results?  I heard from Scott that you've made
some
improvements.  Need me to merge your changes at all?  Just want to 
know
what's up.

Thanks,


Bill Burke
Chief Architect
JBoss Group, LLC






---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development





---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



RE: [JBoss-dev] RE: how's ecperf going?

2003-01-27 Thread Bill Burke
 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED]]On Behalf Of marc
 fleury
 Sent: Monday, January 27, 2003 11:17 AM
 To: [EMAIL PROTECTED]; 'Stefan Reich'
 Subject: RE: [JBoss-dev] RE: how's ecperf going?


  yes, if you take a look at the code, before the switch
  statement that distinguishes the cases between the different
  transaction attributes, we start by a tx.suspend() and, a few
  lines after, a tx.resume() if it was a REQUIRES tag for example, etc.

 I know I wrote the original version of the code.

 What I argued Nth times is that tx.suspend() should just be implemented
 with

 threadLocalVariable.set(null);

 meaning that we disassociate the thread from the TX.

 The event thread dis-association is not relevant to anyone else, not
 even to the TX.  The TX DOESN'T CARE that it is associated with n
 threads or not.


Actually it MUST care.  The TX needs to interrupt threads on a TX timeout.
But you're right about the performance irrelevance.  There's nothing really
expensive going on, nor should there be.

Bill



---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



Re: [JBoss-dev] RE: how's ecperf going?

2003-01-27 Thread Stefan Reich
In all of the other application servers I have been working on 
TransactionManager.resume() and suspend() are expensive operations, 
since the JTA spec version 1.0.1 (section 3.2.3) requires the TM to 
delist/enlist every resource that takes part in the transaction, which 
is costly. If it is done differently in Jboss on purpose, that's fine, 
I just wanted to make sure it's no oversight.

Stefan
On Monday, Jan 27, 2003, at 13:08 US/Pacific, Bill Burke wrote:

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of 
marc
fleury
Sent: Monday, January 27, 2003 11:17 AM
To: [EMAIL PROTECTED]; 'Stefan Reich'
Subject: RE: [JBoss-dev] RE: how's ecperf going?


yes, if you take a look at the code, before the switch
statement that distinguishes the cases between the different
transaction attributes, we start by a tx.suspend() and, a few
lines after, a tx.resume() if it was a REQUIRES tag for example, etc.


I know I wrote the original version of the code.

What I argued Nth times is that tx.suspend() should just be 
implemented
with

threadLocalVariable.set(null);

meaning that we disassociate the thread from the TX.

The event thread dis-association is not relevant to anyone else, not
even to the TX.  The TX DOESN'T CARE that it is associated with n
threads or not.


Actually it MUST care.  The TX needs to interrupt threads on a TX 
timeout.
But you're right about the performance irrelevance.  There's nothing 
really
expensive going on, nor should there be.

Bill



---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



RE: [JBoss-dev] RE: how's ecperf going?

2003-01-27 Thread marc fleury
 In all of the other application servers I have been working on 
 TransactionManager.resume() and suspend() are expensive operations, 
 since the JTA spec version 1.0.1 (section 3.2.3) requires the TM to 
 delist/enlist every resource that takes part in the 
 transaction, which 
 is costly. If it is done differently in Jboss on purpose, 

IT IS A BUG IN THE SPEC !

I am dead serious.  Also all the discussion sucks and comes from the
name of the API. Suspend() and resume() look like they are Tx lifecycle
operations which require resource delisting??? NO NO NO, resume and
suspend in the scope of what we do in the method is PURELY THREAD
ASSOCIATION, the TX goes on. 

In our code it means resume association suspend association not
suspend TX.

I had called it dissassociateThread() and associateThread() to
emph the fact that all we are looking for is association of thread to
TX and THAT'S IT.   It was changed in subsequent impls.  You are
talking about something else, you are talking about the notion of
suspending THE TRANSACTION. 

Do we have a line?

marcf

Doesn't anyone else see this?
I feel like I am taking crazy pills
-- ZooLander --




---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



Re: [JBoss-dev] RE: how's ecperf going?

2003-01-27 Thread David Jencks
FWIW, I agree 100% with you on this marc

david jencks

On Monday, January 27, 2003, at 05:34 PM, marc fleury wrote:


In all of the other application servers I have been working on
TransactionManager.resume() and suspend() are expensive operations,
since the JTA spec version 1.0.1 (section 3.2.3) requires the TM to
delist/enlist every resource that takes part in the
transaction, which
is costly. If it is done differently in Jboss on purpose,


IT IS A BUG IN THE SPEC !

I am dead serious.  Also all the discussion sucks and comes from the
name of the API. Suspend() and resume() look like they are Tx lifecycle
operations which require resource delisting??? NO NO NO, resume and
suspend in the scope of what we do in the method is PURELY THREAD
ASSOCIATION, the TX goes on.

In our code it means resume association suspend association not
suspend TX.

I had called it dissassociateThread() and associateThread() to
emph the fact that all we are looking for is association of thread 
to
TX and THAT'S IT.   It was changed in subsequent impls.  You are
talking about something else, you are talking about the notion of
suspending THE TRANSACTION.

Do we have a line?

marcf

Doesn't anyone else see this?
I feel like I am taking crazy pills
-- ZooLander --




---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development




---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



Re: [JBoss-dev] RE: how's ecperf going?

2003-01-27 Thread Dain Sundstrom
I completely agree that the extra suspend/ resume should not cause any 
performance degradation.  The problem with that code it is fucking hard 
to read.  Your stare at it for a while going what the fuck is he doing 
here and then you finally realize that they always suspend the tx at 
the beginning of the method.  This code is much easier to read if you 
put an if/else in the outer most element and only touch the transaction 
if you have to.  I made this change when messing around but never got 
to committing it.  Unless there is a real measurable performance 
problem I think we should always favor readability and maintainability 
of code.

-dain

On Monday, January 27, 2003, at 05:40 PM, David Jencks wrote:

FWIW, I agree 100% with you on this marc

david jencks

On Monday, January 27, 2003, at 05:34 PM, marc fleury wrote:


In all of the other application servers I have been working on
TransactionManager.resume() and suspend() are expensive operations,
since the JTA spec version 1.0.1 (section 3.2.3) requires the TM to
delist/enlist every resource that takes part in the
transaction, which
is costly. If it is done differently in Jboss on purpose,


IT IS A BUG IN THE SPEC !

I am dead serious.  Also all the discussion sucks and comes from the
name of the API. Suspend() and resume() look like they are Tx 
lifecycle
operations which require resource delisting??? NO NO NO, resume and
suspend in the scope of what we do in the method is PURELY THREAD
ASSOCIATION, the TX goes on.

In our code it means resume association suspend association not
suspend TX.

I had called it dissassociateThread() and associateThread() to
emph the fact that all we are looking for is association of thread 
to
TX and THAT'S IT.   It was changed in subsequent impls.  You are
talking about something else, you are talking about the notion of
suspending THE TRANSACTION.

Do we have a line?

marcf

Doesn't anyone else see this?
I feel like I am taking crazy pills
-- ZooLander --




---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development




---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development




---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



Re: [JBoss-dev] RE: how's ecperf going?

2003-01-27 Thread David Jencks

On Monday, January 27, 2003, at 08:03 PM, Dain Sundstrom wrote:


I completely agree that the extra suspend/ resume should not cause any 
performance degradation.  The problem with that code it is fucking 
hard to read.  Your stare at it for a while going what the fuck is he 
doing here and then you finally realize that they always suspend the 
tx at the beginning of the method.  This code is much easier to read 
if you put an if/else in the outer most element and only touch the 
transaction if you have to.  I made this change when messing around 
but never got to committing it.  Unless there is a real measurable 
performance problem I think we should always favor readability and 
maintainability of code.

Agreed.  In this case there is a strong performance reason to split the 
code into two interceptors:

client tx interceptor attaches the tx to the invocation only if the tx 
is going to be used (requires, supports and there is a tx).  For 
requires new it removes the tx if attached

[ (for remote invoker only)
invoker xaresource converts tx if it exists into an xid
-transport ---
xid is used to start/identify tx on other jboss instance ONLY IF PRESENT
]
server tx interceptor creates new tx if required and not present.

Now each interceptor is very clear about its responsiblitly.  
Furthermore, the tx is NOTimported into the 2nd jboss vm if it can be 
determined that it won't be doing any work there.  This saves one or 
two remote calls during commit.

david

-dain

On Monday, January 27, 2003, at 05:40 PM, David Jencks wrote:


FWIW, I agree 100% with you on this marc

david jencks

On Monday, January 27, 2003, at 05:34 PM, marc fleury wrote:


In all of the other application servers I have been working on
TransactionManager.resume() and suspend() are expensive operations,
since the JTA spec version 1.0.1 (section 3.2.3) requires the TM to
delist/enlist every resource that takes part in the
transaction, which
is costly. If it is done differently in Jboss on purpose,


IT IS A BUG IN THE SPEC !

I am dead serious.  Also all the discussion sucks and comes from the
name of the API. Suspend() and resume() look like they are Tx 
lifecycle
operations which require resource delisting??? NO NO NO, resume and
suspend in the scope of what we do in the method is PURELY THREAD
ASSOCIATION, the TX goes on.

In our code it means resume association suspend association not
suspend TX.

I had called it dissassociateThread() and associateThread() to
emph the fact that all we are looking for is association of 
thread to
TX and THAT'S IT.   It was changed in subsequent impls.  You are
talking about something else, you are talking about the notion of
suspending THE TRANSACTION.

Do we have a line?

marcf

Doesn't anyone else see this?
I feel like I am taking crazy pills
-- ZooLander --




---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development




---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development




---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development





---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



Re: [JBoss-dev] Re: how's ecperf going?

2003-01-24 Thread David Jencks
Thanks for the update.  Can you let me know which hashmap in 
CachedConnectionManager is causing contention?

Also, I have a plan for 4 anyway to only swap transactions when they 
actually change.  it should be pretty easy to fix in 3/3.2 directly 
also.

thanks
david jencks
On Friday, January 24, 2003, at 08:23 PM, Stefan Reich wrote:

Hi Bill,

I am running ecperf regularly on the 3.0 and 3.2 branches. I 
accumulated a bunch of fixes for scalability and performance problems 
already, plus a few fixes for inconsistent lock usage that I will 
merge soon.

Here are some things I noticed:
* the test fails when I deploy the BMP version, some of the beans that 
have been created don't seem to end up in the database.
* the CMP version must be tweaked to use the util.xml BMP version of 
the beans (search for SERIALIZABLE in the README) to work correctly
* the CMP version doesn't deploy anymore on the current 3.2 branch
* with the 3.2 branch I get many more spurious esceptions than with 3.0
* a HashMap in the class CachedConnectionManager seems to be the most 
contended lock
* JAWS checks for the existence of a PK before inserting a new row in 
the database. This is pretty expensive.
* the LogInterceptor usage of the NDC class makes it a global source 
of contention
* TxInterceptorCMP suspends and resumes a transaction in all cases, 
sometimes even twice. This can be very expensive, especially with 
global transactions.

Since I am running the tests on PowerPC Macs and the Apple VM it is 
hard to compare the results with other platforms.

Stefan

On Thursday, Jan 23, 2003, at 19:11 US/Pacific, Bill Burke wrote:

Are you getting decent results?  I heard from Scott that you've made 
some
improvements.  Need me to merge your changes at all?  Just want to 
know
what's up.

Thanks,


Bill Burke
Chief Architect
JBoss Group, LLC





---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development





---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development