[JBoss JIRA] (DROOLS-4056) DMN Editor: Keyboard shortcut functionality on mouse initiated focus.
by Jozef Marko (Jira)
[ https://issues.jboss.org/browse/DROOLS-4056?page=com.atlassian.jira.plugi... ]
Jozef Marko commented on DROOLS-4056:
-------------------------------------
Ok, [~dadossan] reading last comment from [~uxdlc] I think we can close this jira.
> DMN Editor: Keyboard shortcut functionality on mouse initiated focus.
> ---------------------------------------------------------------------
>
> Key: DROOLS-4056
> URL: https://issues.jboss.org/browse/DROOLS-4056
> Project: Drools
> Issue Type: Bug
> Components: DMN Editor
> Reporter: Elizabeth Clayton
> Assignee: Daniel José dos Santos
> Priority: Major
> Labels: Field, FieldEnablementFeedback, UX, drools-tools
> Attachments: ctrls.gif
>
>
> Keyboard shortcut works only when arrow keys are used to focus on the DMN type element. If the user start editing a field with mouse and type "CTRL-S" to save it, the shortcut does not work.
> Note: Team invested CTRL-S, but there was some potential conflict with built in browser controls.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 10 months
[JBoss JIRA] (DROOLS-4056) DMN Editor: Keyboard shortcut functionality on mouse initiated focus.
by Sarah Rambacher (Jira)
[ https://issues.jboss.org/browse/DROOLS-4056?page=com.atlassian.jira.plugi... ]
Sarah Rambacher commented on DROOLS-4056:
-----------------------------------------
The case of hovering over a row and then switching to the keyboard to hit a shortcut to edit it seems unlikely. Right now it looks like the one that is selected via the up and down keys will go into edit mode with ctrl-E, save with ctrl-S, and cancel out with Esc, so I think that is working ok.
(That said, tab focus order is not working well at all, which is how a user would try to get to the edit/save/cancel buttons if they don't know about the shortcuts, but that's for another day)
> DMN Editor: Keyboard shortcut functionality on mouse initiated focus.
> ---------------------------------------------------------------------
>
> Key: DROOLS-4056
> URL: https://issues.jboss.org/browse/DROOLS-4056
> Project: Drools
> Issue Type: Bug
> Components: DMN Editor
> Reporter: Elizabeth Clayton
> Assignee: Daniel José dos Santos
> Priority: Major
> Labels: Field, FieldEnablementFeedback, UX, drools-tools
> Attachments: ctrls.gif
>
>
> Keyboard shortcut works only when arrow keys are used to focus on the DMN type element. If the user start editing a field with mouse and type "CTRL-S" to save it, the shortcut does not work.
> Note: Team invested CTRL-S, but there was some potential conflict with built in browser controls.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 10 months
[JBoss JIRA] (WFLY-12581) Optimize distributed web/ejb expiration schedulers
by Paul Ferraro (Jira)
[ https://issues.jboss.org/browse/WFLY-12581?page=com.atlassian.jira.plugin... ]
Paul Ferraro updated WFLY-12581:
--------------------------------
Description:
WF18 added a new expiration scheduler implementation for SFSBs specifically optimized for non-distributed environments. The key features of this implementations are:
* Uses a single scheduled task instead of a scheduled task per SFSB
* Uses a double-linked list to track SFSBs to be expired
The use of a linked queue is based on the following assumptions:
# All SFSB using a given scheduler share the same @StatefulTimeout
# A given call to Scheduler.schedule(...) is always the last item to be scheduled
Distributed SFSBs cannot use the same implementation because the second assumption is not valid, as a member may assume the responsibility of expiring a SFSB previously owned by another member. They can, however, leverage the strategy of using a single scheduled task instead of a task per SFSB. Due to the nature of the scheduler, that most scheduled tasks will be cancelled/removed and rescheduled, this strategy outperforms the current implementation.
This jira proposes the following:
* Generalize the Scheduler interface for reuse between SFSBs and web sessions.
* Generalize the new local scheduler implementation such that the same scheduler can support both local and distributed SFSBs using different queue implementations for tracking scheduled items
* Distributed use case uses a DelayQueue, which has O(log N) add/remove characteristics
* Replace ExpirationTracker with a ConcurrentDirectDeque to support local case, which has O(1) add/remove characteristics
** ConcurrentDirectDeque outperforms ExpirationTracker under concurrent load
Local web session expiration cannot use the same expiration scheduler used by local SFSBs because the first assumption is not valid, since a given web session can override the default max inactive interval. However, we can still optimize the local web session case by delegating expiration to the PriorityBlockingQueue-based implementation if the session uses a non-default max inactive interval, and to the ConcurrentDirectDeque-based implementation if the session uses the default max inactive interval.
was:
WF18 added a new expiration scheduler implementation for SFSBs specifically optimized for non-distributed environments. The key features of this implementations are:
* Uses a single scheduled task instead of a scheduled task per SFSB
* Uses a double-linked list to track SFSBs to be expired
The use of a linked queue is based on the following assumptions:
# All SFSB using a given scheduler share the same @StatefulTimeout
# A given call to Scheduler.schedule(...) is always the last item to be scheduled
Distributed SFSBs cannot use the same implementation because the second assumption is not valid, as a member may assume the responsibility of expiring a SFSB previously owned by another member. They can, however, leverage the strategy of using a single scheduled task instead of a task per SFSB. Due to the nature of the scheduler, that most scheduled tasks will be cancelled/removed and rescheduled, this strategy outperforms the current implementation.
This jira proposes the following:
* Generalize the Scheduler interface for reuse between SFSBs and web sessions.
* Generalize the new local scheduler implementation such that the same scheduler can support both local and distributed SFSBs using different queue implementations for tracking scheduled items
* Distributed use case uses a PriorityBlockingQueue, which has O(log N) add/remove characteristics
* Replace ExpirationTracker with a ConcurrentDirectDeque to support local case, which has O(1) add/remove characteristics
** ConcurrentDirectDeque outperforms ExpirationTracker under concurrent load
Local web session expiration cannot use the same expiration scheduler used by local SFSBs because the first assumption is not valid, since a given web session can override the default max inactive interval. However, we can still optimize the local web session case by delegating expiration to the PriorityBlockingQueue-based implementation if the session uses a non-default max inactive interval, and to the ConcurrentDirectDeque-based implementation if the session uses the default max inactive interval.
> Optimize distributed web/ejb expiration schedulers
> --------------------------------------------------
>
> Key: WFLY-12581
> URL: https://issues.jboss.org/browse/WFLY-12581
> Project: WildFly
> Issue Type: Enhancement
> Components: Clustering
> Affects Versions: 18.0.0.Beta1
> Reporter: Paul Ferraro
> Assignee: Paul Ferraro
> Priority: Major
> Attachments: Schedulers for distributed workloads.png, Schedulers for local workloads.png
>
>
> WF18 added a new expiration scheduler implementation for SFSBs specifically optimized for non-distributed environments. The key features of this implementations are:
> * Uses a single scheduled task instead of a scheduled task per SFSB
> * Uses a double-linked list to track SFSBs to be expired
> The use of a linked queue is based on the following assumptions:
> # All SFSB using a given scheduler share the same @StatefulTimeout
> # A given call to Scheduler.schedule(...) is always the last item to be scheduled
> Distributed SFSBs cannot use the same implementation because the second assumption is not valid, as a member may assume the responsibility of expiring a SFSB previously owned by another member. They can, however, leverage the strategy of using a single scheduled task instead of a task per SFSB. Due to the nature of the scheduler, that most scheduled tasks will be cancelled/removed and rescheduled, this strategy outperforms the current implementation.
> This jira proposes the following:
> * Generalize the Scheduler interface for reuse between SFSBs and web sessions.
> * Generalize the new local scheduler implementation such that the same scheduler can support both local and distributed SFSBs using different queue implementations for tracking scheduled items
> * Distributed use case uses a DelayQueue, which has O(log N) add/remove characteristics
> * Replace ExpirationTracker with a ConcurrentDirectDeque to support local case, which has O(1) add/remove characteristics
> ** ConcurrentDirectDeque outperforms ExpirationTracker under concurrent load
> Local web session expiration cannot use the same expiration scheduler used by local SFSBs because the first assumption is not valid, since a given web session can override the default max inactive interval. However, we can still optimize the local web session case by delegating expiration to the PriorityBlockingQueue-based implementation if the session uses a non-default max inactive interval, and to the ConcurrentDirectDeque-based implementation if the session uses the default max inactive interval.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 10 months
[JBoss JIRA] (WFLY-12581) Optimize distributed web/ejb expiration schedulers
by Paul Ferraro (Jira)
[ https://issues.jboss.org/browse/WFLY-12581?page=com.atlassian.jira.plugin... ]
Paul Ferraro updated WFLY-12581:
--------------------------------
Attachment: (was: Schedulers for local workloads.png)
> Optimize distributed web/ejb expiration schedulers
> --------------------------------------------------
>
> Key: WFLY-12581
> URL: https://issues.jboss.org/browse/WFLY-12581
> Project: WildFly
> Issue Type: Enhancement
> Components: Clustering
> Affects Versions: 18.0.0.Beta1
> Reporter: Paul Ferraro
> Assignee: Paul Ferraro
> Priority: Major
> Attachments: Schedulers for distributed workloads.png, Schedulers for local workloads.png
>
>
> WF18 added a new expiration scheduler implementation for SFSBs specifically optimized for non-distributed environments. The key features of this implementations are:
> * Uses a single scheduled task instead of a scheduled task per SFSB
> * Uses a double-linked list to track SFSBs to be expired
> The use of a linked queue is based on the following assumptions:
> # All SFSB using a given scheduler share the same @StatefulTimeout
> # A given call to Scheduler.schedule(...) is always the last item to be scheduled
> Distributed SFSBs cannot use the same implementation because the second assumption is not valid, as a member may assume the responsibility of expiring a SFSB previously owned by another member. They can, however, leverage the strategy of using a single scheduled task instead of a task per SFSB. Due to the nature of the scheduler, that most scheduled tasks will be cancelled/removed and rescheduled, this strategy outperforms the current implementation.
> This jira proposes the following:
> * Generalize the Scheduler interface for reuse between SFSBs and web sessions.
> * Generalize the new local scheduler implementation such that the same scheduler can support both local and distributed SFSBs using different queue implementations for tracking scheduled items
> * Distributed use case uses a PriorityBlockingQueue, which has O(log N) add/remove characteristics
> * Replace ExpirationTracker with a ConcurrentDirectDeque to support local case, which has O(1) add/remove characteristics
> ** ConcurrentDirectDeque outperforms ExpirationTracker under concurrent load
> Local web session expiration cannot use the same expiration scheduler used by local SFSBs because the first assumption is not valid, since a given web session can override the default max inactive interval. However, we can still optimize the local web session case by delegating expiration to the PriorityBlockingQueue-based implementation if the session uses a non-default max inactive interval, and to the ConcurrentDirectDeque-based implementation if the session uses the default max inactive interval.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 10 months
[JBoss JIRA] (WFLY-12581) Optimize distributed web/ejb expiration schedulers
by Paul Ferraro (Jira)
[ https://issues.jboss.org/browse/WFLY-12581?page=com.atlassian.jira.plugin... ]
Paul Ferraro updated WFLY-12581:
--------------------------------
Attachment: Schedulers for local workloads.png
> Optimize distributed web/ejb expiration schedulers
> --------------------------------------------------
>
> Key: WFLY-12581
> URL: https://issues.jboss.org/browse/WFLY-12581
> Project: WildFly
> Issue Type: Enhancement
> Components: Clustering
> Affects Versions: 18.0.0.Beta1
> Reporter: Paul Ferraro
> Assignee: Paul Ferraro
> Priority: Major
> Attachments: Schedulers for distributed workloads.png, Schedulers for local workloads.png
>
>
> WF18 added a new expiration scheduler implementation for SFSBs specifically optimized for non-distributed environments. The key features of this implementations are:
> * Uses a single scheduled task instead of a scheduled task per SFSB
> * Uses a double-linked list to track SFSBs to be expired
> The use of a linked queue is based on the following assumptions:
> # All SFSB using a given scheduler share the same @StatefulTimeout
> # A given call to Scheduler.schedule(...) is always the last item to be scheduled
> Distributed SFSBs cannot use the same implementation because the second assumption is not valid, as a member may assume the responsibility of expiring a SFSB previously owned by another member. They can, however, leverage the strategy of using a single scheduled task instead of a task per SFSB. Due to the nature of the scheduler, that most scheduled tasks will be cancelled/removed and rescheduled, this strategy outperforms the current implementation.
> This jira proposes the following:
> * Generalize the Scheduler interface for reuse between SFSBs and web sessions.
> * Generalize the new local scheduler implementation such that the same scheduler can support both local and distributed SFSBs using different queue implementations for tracking scheduled items
> * Distributed use case uses a PriorityBlockingQueue, which has O(log N) add/remove characteristics
> * Replace ExpirationTracker with a ConcurrentDirectDeque to support local case, which has O(1) add/remove characteristics
> ** ConcurrentDirectDeque outperforms ExpirationTracker under concurrent load
> Local web session expiration cannot use the same expiration scheduler used by local SFSBs because the first assumption is not valid, since a given web session can override the default max inactive interval. However, we can still optimize the local web session case by delegating expiration to the PriorityBlockingQueue-based implementation if the session uses a non-default max inactive interval, and to the ConcurrentDirectDeque-based implementation if the session uses the default max inactive interval.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 10 months
[JBoss JIRA] (WFLY-12581) Optimize distributed web/ejb expiration schedulers
by Paul Ferraro (Jira)
[ https://issues.jboss.org/browse/WFLY-12581?page=com.atlassian.jira.plugin... ]
Paul Ferraro commented on WFLY-12581:
-------------------------------------
Attached some perf comparisons of new scheduler implementations vs current implementations for both distributed and local workloads.
> Optimize distributed web/ejb expiration schedulers
> --------------------------------------------------
>
> Key: WFLY-12581
> URL: https://issues.jboss.org/browse/WFLY-12581
> Project: WildFly
> Issue Type: Enhancement
> Components: Clustering
> Affects Versions: 18.0.0.Beta1
> Reporter: Paul Ferraro
> Assignee: Paul Ferraro
> Priority: Major
> Attachments: Schedulers for distributed workloads.png, Schedulers for local workloads.png
>
>
> WF18 added a new expiration scheduler implementation for SFSBs specifically optimized for non-distributed environments. The key features of this implementations are:
> * Uses a single scheduled task instead of a scheduled task per SFSB
> * Uses a double-linked list to track SFSBs to be expired
> The use of a linked queue is based on the following assumptions:
> # All SFSB using a given scheduler share the same @StatefulTimeout
> # A given call to Scheduler.schedule(...) is always the last item to be scheduled
> Distributed SFSBs cannot use the same implementation because the second assumption is not valid, as a member may assume the responsibility of expiring a SFSB previously owned by another member. They can, however, leverage the strategy of using a single scheduled task instead of a task per SFSB. Due to the nature of the scheduler, that most scheduled tasks will be cancelled/removed and rescheduled, this strategy outperforms the current implementation.
> This jira proposes the following:
> * Generalize the Scheduler interface for reuse between SFSBs and web sessions.
> * Generalize the new local scheduler implementation such that the same scheduler can support both local and distributed SFSBs using different queue implementations for tracking scheduled items
> * Distributed use case uses a PriorityBlockingQueue, which has O(log N) add/remove characteristics
> * Replace ExpirationTracker with a ConcurrentDirectDeque to support local case, which has O(1) add/remove characteristics
> ** ConcurrentDirectDeque outperforms ExpirationTracker under concurrent load
> Local web session expiration cannot use the same expiration scheduler used by local SFSBs because the first assumption is not valid, since a given web session can override the default max inactive interval. However, we can still optimize the local web session case by delegating expiration to the PriorityBlockingQueue-based implementation if the session uses a non-default max inactive interval, and to the ConcurrentDirectDeque-based implementation if the session uses the default max inactive interval.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 10 months
[JBoss JIRA] (WFLY-12581) Optimize distributed web/ejb expiration schedulers
by Paul Ferraro (Jira)
[ https://issues.jboss.org/browse/WFLY-12581?page=com.atlassian.jira.plugin... ]
Paul Ferraro updated WFLY-12581:
--------------------------------
Attachment: Schedulers for distributed workloads.png
Schedulers for local workloads.png
> Optimize distributed web/ejb expiration schedulers
> --------------------------------------------------
>
> Key: WFLY-12581
> URL: https://issues.jboss.org/browse/WFLY-12581
> Project: WildFly
> Issue Type: Enhancement
> Components: Clustering
> Affects Versions: 18.0.0.Beta1
> Reporter: Paul Ferraro
> Assignee: Paul Ferraro
> Priority: Major
> Attachments: Schedulers for distributed workloads.png, Schedulers for local workloads.png
>
>
> WF18 added a new expiration scheduler implementation for SFSBs specifically optimized for non-distributed environments. The key features of this implementations are:
> * Uses a single scheduled task instead of a scheduled task per SFSB
> * Uses a double-linked list to track SFSBs to be expired
> The use of a linked queue is based on the following assumptions:
> # All SFSB using a given scheduler share the same @StatefulTimeout
> # A given call to Scheduler.schedule(...) is always the last item to be scheduled
> Distributed SFSBs cannot use the same implementation because the second assumption is not valid, as a member may assume the responsibility of expiring a SFSB previously owned by another member. They can, however, leverage the strategy of using a single scheduled task instead of a task per SFSB. Due to the nature of the scheduler, that most scheduled tasks will be cancelled/removed and rescheduled, this strategy outperforms the current implementation.
> This jira proposes the following:
> * Generalize the Scheduler interface for reuse between SFSBs and web sessions.
> * Generalize the new local scheduler implementation such that the same scheduler can support both local and distributed SFSBs using different queue implementations for tracking scheduled items
> * Distributed use case uses a PriorityBlockingQueue, which has O(log N) add/remove characteristics
> * Replace ExpirationTracker with a ConcurrentDirectDeque to support local case, which has O(1) add/remove characteristics
> ** ConcurrentDirectDeque outperforms ExpirationTracker under concurrent load
> Local web session expiration cannot use the same expiration scheduler used by local SFSBs because the first assumption is not valid, since a given web session can override the default max inactive interval. However, we can still optimize the local web session case by delegating expiration to the PriorityBlockingQueue-based implementation if the session uses a non-default max inactive interval, and to the ConcurrentDirectDeque-based implementation if the session uses the default max inactive interval.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 10 months