ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dmitriy Govorukhin (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (IGNITE-11835) Support JMX/control.sh API for page lock dump
Date Tue, 28 May 2019 13:24:00 GMT

     [ https://issues.apache.org/jira/browse/IGNITE-11835?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Dmitriy Govorukhin updated IGNITE-11835:
----------------------------------------
    Description: 
Support JMX/control.sh API for page lock dump

JMX
{code}
public interface PageLockMXBean  {
    String dumpLocks();

    void dumpLocksToLog();

    String dumpLocksToFile();

    String dumpLocksToFile(String path);
}
{code}

control.sh
{code}
--diagnostic pageLocksTracker dump // Return dump in string format.
--diagnostic pageLocksTracker dump log // Print dump to console on node.
--diagnostic pageLocksTracker dump file // Save dump to file generated in IGNITE_HOME dir.
--diagnostic pageLocksTracker dump file {path} // Save dump to specific path.
{code}

HeapArrayLockStack and HeapArrayLockStack output:
org.apache.ignite.internal.processors.cache.persistence.diagnostic.PageLockStackTest#testThreeReadPageLock_3
{code}
1. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
	-> try read lock, pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]

2. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]

3. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
	-> try read lock, pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]

4. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
	1 pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]

5. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
	-> try read lock, pageId=111 [pageIdxHex=000000000000006f, partId=111, pageIdx=111, flags=00000000]
	1 pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]

6. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
	2 pageId=111 [pageIdxHex=000000000000006f, partId=111, pageIdx=111, flags=00000000]
	1 pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]

7. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
	2 pageId=111 [pageIdxHex=000000000000006f, partId=111, pageIdx=111, flags=00000000]
	1 -
	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]

8. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
{code}

HeapArrayLockLog and OffHeapLockLog
org.apache.ignite.internal.processors.cache.persistence.diagnostic.PageLockLogTest#testThreeReadPageLock_3
{code}
Locked pages = []
Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
-> Try Read lock nextOpPageId=1, nextOpStructureId=123 [pageIdHex=0000000000000001, partId=1,
pageIdx=1, flags=00000000]


Locked pages = [1(r=1|w=0)]
Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]


Locked pages = [1(r=1|w=0)]
Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
-> Try Read lock nextOpPageId=11, nextOpStructureId=123 [pageIdHex=000000000000000b, partId=11,
pageIdx=11, flags=00000000]


Locked pages = [1(r=1|w=0),11(r=1|w=0)]
Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b, partId=11, pageIdx=11,
flags=00000000]


Locked pages = [1(r=1|w=0)]
Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b, partId=11, pageIdx=11,
flags=00000000]
L=1 <- Read unlock pageId=11, structureId=123 [pageIdHex=000000000000000b, partId=11, pageIdx=11,
flags=00000000]


Locked pages = [1(r=1|w=0)]
Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b, partId=11, pageIdx=11,
flags=00000000]
L=1 <- Read unlock pageId=11, structureId=123 [pageIdHex=000000000000000b, partId=11, pageIdx=11,
flags=00000000]
-> Try Read lock nextOpPageId=111, nextOpStructureId=123 [pageIdHex=000000000000006f, partId=111,
pageIdx=111, flags=00000000]


Locked pages = [1(r=1|w=0),111(r=1|w=0)]
Locked pages log: main time=(1559049634783, 2019-05-28 16:20:34.783)
L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b, partId=11, pageIdx=11,
flags=00000000]
L=1 <- Read unlock pageId=11, structureId=123 [pageIdHex=000000000000000b, partId=11, pageIdx=11,
flags=00000000]
L=2 -> Read lock pageId=111, structureId=123 [pageIdHex=000000000000006f, partId=111, pageIdx=111,
flags=00000000]


Locked pages = [1(r=1|w=0)]
Locked pages log: main time=(1559049634783, 2019-05-28 16:20:34.783)
L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b, partId=11, pageIdx=11,
flags=00000000]
L=1 <- Read unlock pageId=11, structureId=123 [pageIdHex=000000000000000b, partId=11, pageIdx=11,
flags=00000000]
L=2 -> Read lock pageId=111, structureId=123 [pageIdHex=000000000000006f, partId=111, pageIdx=111,
flags=00000000]
L=1 <- Read unlock pageId=111, structureId=123 [pageIdHex=000000000000006f, partId=111,
pageIdx=111, flags=00000000]

{code}


  was:
Support JMX/control.sh API for page lock dump

JMX
{code}
public interface PageLockMXBean  {
    String dumpLocks();

    void dumpLocksToLog();

    String dumpLocksToFile();

    String dumpLocksToFile(String path);
}
{code}

control.sh
{code}
--diagnostic pageLocksTracker dump // Return dump in string format.
--diagnostic pageLocksTracker dump log // Print dump to console on node.
--diagnostic pageLocksTracker dump file // Save dump to file generated in IGNITE_HOME dir.
--diagnostic pageLocksTracker dump file {path} // Save dump to specific path.
{code}

HeapArrayLockStack and HeapArrayLockStack output:
org.apache.ignite.internal.processors.cache.persistence.diagnostic.PageLockStackTest#testThreeReadPageLock_3
{code}
1. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
	-> try read lock, pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]

2. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]

3. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
	-> try read lock, pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]

4. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
	1 pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]

5. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
	-> try read lock, pageId=111 [pageIdxHex=000000000000006f, partId=111, pageIdx=111, flags=00000000]
	1 pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]

6. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
	2 pageId=111 [pageIdxHex=000000000000006f, partId=111, pageIdx=111, flags=00000000]
	1 pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]

7. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
	2 pageId=111 [pageIdxHex=000000000000006f, partId=111, pageIdx=111, flags=00000000]
	1 -
	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]

8. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
{code}

HeapArrayLockLog and OffHeapLockLog
org.apache.ignite.internal.processors.cache.persistence.diagnostic.PageLockLogTest#testThreeReadPageLock_3
{code}
1. Step
main
locked pages = []
-> Try read lock     nextOpPageId=1, nextOpStructureId=123 [pageIdxHex=0000000000000001,
partId=1, pageIdx=1, flags=00000000]

2. Step
main
locked pages = [1(r=1|w=0)]
L=1 -> Read lock     nextOpPageId=1, nextOpCacheId=123 [pageIdxHex=0000000000000001, partId=1,
pageIdx=1, flags=00000000]

3. Step
main
locked pages = [1(r=1|w=0)]
L=1 -> Read lock     nextOpPageId=1, nextOpCacheId=123 [pageIdxHex=0000000000000001, partId=1,
pageIdx=1, flags=00000000]
-> Try read lock     nextOpPageId=11, nextOpStructureId=123 [pageIdxHex=000000000000000b,
partId=11, pageIdx=11, flags=00000000]

4. Step
main
locked pages = [1(r=1|w=0),11(r=1|w=0)]
L=1 -> Read lock     nextOpPageId=1, nextOpCacheId=123 [pageIdxHex=0000000000000001, partId=1,
pageIdx=1, flags=00000000]
L=2 -> Read lock     nextOpPageId=11, nextOpCacheId=123 [pageIdxHex=000000000000000b, partId=11,
pageIdx=11, flags=00000000]

5. Step
main
locked pages = [1(r=1|w=0),11(r=1|w=0)]
L=1 -> Read lock     nextOpPageId=1, nextOpCacheId=123 [pageIdxHex=0000000000000001, partId=1,
pageIdx=1, flags=00000000]
L=2 -> Read lock     nextOpPageId=11, nextOpCacheId=123 [pageIdxHex=000000000000000b, partId=11,
pageIdx=11, flags=00000000]
-> Try read lock     nextOpPageId=111, nextOpStructureId=123 [pageIdxHex=000000000000006f,
partId=111, pageIdx=111, flags=00000000]

6. Step
main
locked pages = [1(r=1|w=0),11(r=1|w=0),111(r=1|w=0)]
L=1 -> Read lock     nextOpPageId=1, nextOpCacheId=123 [pageIdxHex=0000000000000001, partId=1,
pageIdx=1, flags=00000000]
L=2 -> Read lock     nextOpPageId=11, nextOpCacheId=123 [pageIdxHex=000000000000000b, partId=11,
pageIdx=11, flags=00000000]
L=3 -> Read lock     nextOpPageId=111, nextOpCacheId=123 [pageIdxHex=000000000000006f,
partId=111, pageIdx=111, flags=00000000]

7. Step
main
locked pages = [1(r=1|w=0),111(r=1|w=0)]
L=1 -> Read lock     nextOpPageId=1, nextOpCacheId=123 [pageIdxHex=0000000000000001, partId=1,
pageIdx=1, flags=00000000]
L=2 -> Read lock     nextOpPageId=11, nextOpCacheId=123 [pageIdxHex=000000000000000b, partId=11,
pageIdx=11, flags=00000000]
L=3 -> Read lock     nextOpPageId=111, nextOpCacheId=123 [pageIdxHex=000000000000006f,
partId=111, pageIdx=111, flags=00000000]
L=2 <- Read unlock   nextOpPageId=11, nextOpCacheId=123 [pageIdxHex=000000000000000b, partId=11,
pageIdx=11, flags=00000000]

8. Step
main
locked pages = [1(r=1|w=0)]
L=1 -> Read lock     nextOpPageId=1, nextOpCacheId=123 [pageIdxHex=0000000000000001, partId=1,
pageIdx=1, flags=00000000]
L=2 -> Read lock     nextOpPageId=11, nextOpCacheId=123 [pageIdxHex=000000000000000b, partId=11,
pageIdx=11, flags=00000000]
L=3 -> Read lock     nextOpPageId=111, nextOpCacheId=123 [pageIdxHex=000000000000006f,
partId=111, pageIdx=111, flags=00000000]
L=2 <- Read unlock   nextOpPageId=11, nextOpCacheId=123 [pageIdxHex=000000000000000b, partId=11,
pageIdx=11, flags=00000000]
L=1 <- Read unlock   nextOpPageId=111, nextOpCacheId=123 [pageIdxHex=000000000000006f,
partId=111, pageIdx=111, flags=00000000]

9. Step
main
locked pages = []

{code}



> Support JMX/control.sh API for page lock dump
> ---------------------------------------------
>
>                 Key: IGNITE-11835
>                 URL: https://issues.apache.org/jira/browse/IGNITE-11835
>             Project: Ignite
>          Issue Type: Sub-task
>            Reporter: Dmitriy Govorukhin
>            Assignee: Dmitriy Govorukhin
>            Priority: Major
>             Fix For: 2.8
>
>
> Support JMX/control.sh API for page lock dump
> JMX
> {code}
> public interface PageLockMXBean  {
>     String dumpLocks();
>     void dumpLocksToLog();
>     String dumpLocksToFile();
>     String dumpLocksToFile(String path);
> }
> {code}
> control.sh
> {code}
> --diagnostic pageLocksTracker dump // Return dump in string format.
> --diagnostic pageLocksTracker dump log // Print dump to console on node.
> --diagnostic pageLocksTracker dump file // Save dump to file generated in IGNITE_HOME
dir.
> --diagnostic pageLocksTracker dump file {path} // Save dump to specific path.
> {code}
> HeapArrayLockStack and HeapArrayLockStack output:
> org.apache.ignite.internal.processors.cache.persistence.diagnostic.PageLockStackTest#testThreeReadPageLock_3
> {code}
> 1. Step
> main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
> 	-> try read lock, pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
> 2. Step
> main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
> 	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
> 3. Step
> main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
> 	-> try read lock, pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11,
flags=00000000]
> 	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
> 4. Step
> main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
> 	1 pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
> 	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
> 5. Step
> main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
> 	-> try read lock, pageId=111 [pageIdxHex=000000000000006f, partId=111, pageIdx=111,
flags=00000000]
> 	1 pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
> 	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
> 6. Step
> main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
> 	2 pageId=111 [pageIdxHex=000000000000006f, partId=111, pageIdx=111, flags=00000000]
> 	1 pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
> 	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
> 7. Step
> main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
> 	2 pageId=111 [pageIdxHex=000000000000006f, partId=111, pageIdx=111, flags=00000000]
> 	1 -
> 	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
> 8. Step
> main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
> 	0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
> {code}
> HeapArrayLockLog and OffHeapLockLog
> org.apache.ignite.internal.processors.cache.persistence.diagnostic.PageLockLogTest#testThreeReadPageLock_3
> {code}
> Locked pages = []
> Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
> -> Try Read lock nextOpPageId=1, nextOpStructureId=123 [pageIdHex=0000000000000001,
partId=1, pageIdx=1, flags=00000000]
> Locked pages = [1(r=1|w=0)]
> Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
> L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001, partId=1,
pageIdx=1, flags=00000000]
> Locked pages = [1(r=1|w=0)]
> Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
> L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001, partId=1,
pageIdx=1, flags=00000000]
> -> Try Read lock nextOpPageId=11, nextOpStructureId=123 [pageIdHex=000000000000000b,
partId=11, pageIdx=11, flags=00000000]
> Locked pages = [1(r=1|w=0),11(r=1|w=0)]
> Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
> L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001, partId=1,
pageIdx=1, flags=00000000]
> L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b, partId=11,
pageIdx=11, flags=00000000]
> Locked pages = [1(r=1|w=0)]
> Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
> L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001, partId=1,
pageIdx=1, flags=00000000]
> L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b, partId=11,
pageIdx=11, flags=00000000]
> L=1 <- Read unlock pageId=11, structureId=123 [pageIdHex=000000000000000b, partId=11,
pageIdx=11, flags=00000000]
> Locked pages = [1(r=1|w=0)]
> Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
> L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001, partId=1,
pageIdx=1, flags=00000000]
> L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b, partId=11,
pageIdx=11, flags=00000000]
> L=1 <- Read unlock pageId=11, structureId=123 [pageIdHex=000000000000000b, partId=11,
pageIdx=11, flags=00000000]
> -> Try Read lock nextOpPageId=111, nextOpStructureId=123 [pageIdHex=000000000000006f,
partId=111, pageIdx=111, flags=00000000]
> Locked pages = [1(r=1|w=0),111(r=1|w=0)]
> Locked pages log: main time=(1559049634783, 2019-05-28 16:20:34.783)
> L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001, partId=1,
pageIdx=1, flags=00000000]
> L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b, partId=11,
pageIdx=11, flags=00000000]
> L=1 <- Read unlock pageId=11, structureId=123 [pageIdHex=000000000000000b, partId=11,
pageIdx=11, flags=00000000]
> L=2 -> Read lock pageId=111, structureId=123 [pageIdHex=000000000000006f, partId=111,
pageIdx=111, flags=00000000]
> Locked pages = [1(r=1|w=0)]
> Locked pages log: main time=(1559049634783, 2019-05-28 16:20:34.783)
> L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001, partId=1,
pageIdx=1, flags=00000000]
> L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b, partId=11,
pageIdx=11, flags=00000000]
> L=1 <- Read unlock pageId=11, structureId=123 [pageIdHex=000000000000000b, partId=11,
pageIdx=11, flags=00000000]
> L=2 -> Read lock pageId=111, structureId=123 [pageIdHex=000000000000006f, partId=111,
pageIdx=111, flags=00000000]
> L=1 <- Read unlock pageId=111, structureId=123 [pageIdHex=000000000000006f, partId=111,
pageIdx=111, flags=00000000]
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message