You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Sergey Kozlov (JIRA)" <ji...@apache.org> on 2019/06/03 12:28:00 UTC

[jira] [Commented] (IGNITE-11835) Support JMX/control.sh API for page lock dump

    [ https://issues.apache.org/jira/browse/IGNITE-11835?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16854537#comment-16854537 ] 

Sergey Kozlov commented on IGNITE-11835:
----------------------------------------

[~DmitriyGovorukhin]
I would like to suggest to improve new commands for {{control.sh}}:
{noformat}
--diagnostic pageLocks dump [--path {path_to_file}] [--all|nodeId1,nodeId2,..|consistentId1,consistentId2,..]
--diagnostic pageLocks dump_log [--all|nodeId1,nodeId2,..|consistentId1,consistentId2,..]
{noformat}

> 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 pageLocks dump // Save dump to file generated in IGNITE_HOME/work dir.
> --diagnostic pageLocks dump log // Print dump to console on node.
> --diagnostic pageLocks dump {path} // Save dump to specific path.
> --diagnostic pageLocks dump -a  or --all //  Dump on all nodes.
> --diagnostic pageLocks dump {UUID} {UUID}.... or {constId} {constId} // Dump on subset nodes.
> {code}
> HeapArrayLockStack and HeapArrayLockStack output:
> org.apache.ignite.internal.processors.cache.persistence.diagnostic.PageLockStackTest#testThreeReadPageLock_3
> {code}
> Locked pages = []
> Locked pages stack: main time=(1559050284306, 2019-05-28 16:31:24.306)
> 	-> Try Read lock structureId=123 pageId=1 [pageIdHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
> Locked pages = [1(r=1|w=0)]
> Locked pages stack: main time=(1559050284393, 2019-05-28 16:31:24.393)
> 	Read lock structureId=123 pageId=1 [pageIdHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
> Locked pages = [1(r=1|w=0)]
> Locked pages stack: main time=(1559050284394, 2019-05-28 16:31:24.394)
> 	-> Try Read lock structureId=123 pageId=11 [pageIdHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
> 	Read lock structureId=123 pageId=1 [pageIdHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
> Locked pages = [11(r=1|w=0),1(r=1|w=0)]
> Locked pages stack: main time=(1559050284394, 2019-05-28 16:31:24.394)
> 	Read lock structureId=123 pageId=11 [pageIdHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
> 	Read lock structureId=123 pageId=1 [pageIdHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
> Locked pages = [1(r=1|w=0)]
> Locked pages stack: main time=(1559050284394, 2019-05-28 16:31:24.394)
> 	Read lock structureId=123 pageId=1 [pageIdHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
> Locked pages = [1(r=1|w=0)]
> Locked pages stack: main time=(1559050284394, 2019-05-28 16:31:24.394)
> 	-> Try Read lock structureId=123 pageId=111 [pageIdHex=000000000000006f, partId=111, pageIdx=111, flags=00000000]
> 	Read lock structureId=123 pageId=1 [pageIdHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
> Locked pages = [111(r=1|w=0),1(r=1|w=0)]
> Locked pages stack: main time=(1559050284394, 2019-05-28 16:31:24.394)
> 	Read lock structureId=123 pageId=111 [pageIdHex=000000000000006f, partId=111, pageIdx=111, flags=00000000]
> 	Read lock structureId=123 pageId=1 [pageIdHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
> Locked pages = [1(r=1|w=0)]
> Locked pages stack: main time=(1559050284394, 2019-05-28 16:31:24.394)
> 	Read lock structureId=123 pageId=1 [pageIdHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
> Locked pages = []
> Locked pages stack: main time=(1559050284394, 2019-05-28 16:31:24.394)
> {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)