Hi Christopher,
Just curious whether this is normal:
I very frequently get strange transaction numbers, that aren't
monotonically increasing. For example, on a server that has only had
a few statements go by:
...
2007-12-19 10:00:42,215 [INFO] pILS Commit transaction 113
2007-12-19 10:00:42,296 [INFO] pILS B 562949953421407
2007-12-19 10:00:42,296 [INFO] pILS S 562949953421407 562949953421407
select ...
2007-12-19 10:00:42,364 [INFO] pILS C 562949953421407
2007-12-19 10:00:42,477 [INFO] pILS W 115 115 insert into foo (bar)
values (1)
2007-12-19 10:00:42,534 [INFO] pILS B 562949953421408
2007-12-19 10:00:42,535 [INFO] pILS W 562949953421408 562949953421408
insert into foo (bar) values (2)
2007-12-19 10:00:42,559 [INFO] pILS W 562949953421408 562949953421408
insert into foo (bar) values (2)
2007-12-19 10:00:42,585 [INFO] pILS Commit transaction 115
2007-12-19 10:00:42,650 [INFO] pILS C 562949953421408
...
I've truncated the sql statements for clarity. In this case, I have
two RAIDb-1 servers for the same vdb, each receiving traffic from a
number of clients simultaneously. This is part of the log for just
one server. Note that I never actually see a "B 115" or a "C 115" on
this host, which I would expect, but I do see it on the other host,
and likewise, on the other host I never see a log message saying "B
562949953421408" or "C 562949953421408". Maybe that's normal. It's
almost like one host is using a different starting point for
transaction numbers than the other...
1. Are the strange transaction numbers normal?
Yes, actually the transaction numbers are encoded on 64 bits. You can
find the comments in the code of the DistributedRequestManager class:
/**
* Effective controllerIds are on the upper 16 bits of a long (64 bits).
* Distributed transaction ids (longs) are layed out as
[ControllerId(16bits) |
* LocalTransactionId(64bits)]. <br/>This constant used in
* DistributedVirtualDatabase.
*/
This way depending on which controller your request arrives, it will be
assigned a different transaction id.
2. It is normal to see writes twice in my logs, right? The request
comes in from the client, which gets logged, and then the request is
broadcast to everyone include the sender, which receives it and logs
it again.
Actually it's hard to tell from this log. Multiple loggers might log the
request and each controller will log it as well. So depending on what
this log file represents and which logger logs this entries, that might
be normal ... or not!
Hope this helps,
Emmanuel
--
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