[JBoss JIRA] (ISPN-3858) RHQ management -- [RecoveryAdmin] forceCommit operation call throws NumberFormatException
by Mircea Markus (JIRA)
[ https://issues.jboss.org/browse/ISPN-3858?page=com.atlassian.jira.plugin.... ]
Mircea Markus updated ISPN-3858:
--------------------------------
Component/s: JMX, reporting and management
> RHQ management -- [RecoveryAdmin] forceCommit operation call throws NumberFormatException
> -----------------------------------------------------------------------------------------
>
> Key: ISPN-3858
> URL: https://issues.jboss.org/browse/ISPN-3858
> Project: Infinispan
> Issue Type: Bug
> Components: JMX, reporting and management
> Affects Versions: 6.0.0.Final
> Reporter: Tomas Sykora
> Assignee: Mircea Markus
> Attachments: recoveryAdminForceCommitByInternalIdNumFormatException.txt
>
>
> Operation ShowInDoubtTransactions is working and it is possible to identify internal IDs of in doubt transactions.
> Operation force rollback by internal id is working as well.
> Remove recovery info by internal id is working as well.
> However, operation force commit by internal id is throwing java.lang.NumberFormatException: For input string: "1125908496777218" etc., see attached file with full stack trace.
> "Bonus" question: how can we externally (from jon gui? somewhere else?) identify properties for commit/rollback operations using Xid?
> i.e.: Format Id, Global Tx Id and Branch Qualifier?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 3 months
[JBoss JIRA] (ISPN-3664) Improve write command processing
by Mircea Markus (JIRA)
[ https://issues.jboss.org/browse/ISPN-3664?page=com.atlassian.jira.plugin.... ]
Mircea Markus updated ISPN-3664:
--------------------------------
Component/s: Core
> Improve write command processing
> --------------------------------
>
> Key: ISPN-3664
> URL: https://issues.jboss.org/browse/ISPN-3664
> Project: Infinispan
> Issue Type: Enhancement
> Components: Core
> Affects Versions: 6.0.0.CR1
> Reporter: Pedro Ruivo
> Assignee: Pedro Ruivo
> Fix For: 7.0.0.Final
>
>
> Major refactorization of the write command with the following goals:
> -> Base WriteCommand: all the write command has the same workflow through the interceptor chain
> -> Create a concrete WriteCommand for each operation (put, remove, replace, replaceIfEquals, removeIfEquals, putIfAbsent)
> -> Extend the interceptor chain to process each one of the command and add a new "visitWriteCommand", that is invoked by the default visitX methods.
> -> (minor) change the GetKeyValueCommand to ReadCommand to make name "compatible" with WriteCommand.
> Note that most of the interceptor only needs to implement the visitWriteCommand because all the write command has the same execution flow. The basic flow of the write commands are: (non-tx) lock, fetch value (cachestore/remote), check condition and apply change. for tx mode, lock (if pessimistic), fetch value (cache loader, remote, etc), apply change and add it to the transaction (if successful)
> Also, another advantage is the simplification of the EntryFactory because if we think a little about it, independent of the write command we need to wrap the entry anyway.
> Suggested implementation
> {code:java}
> class abstract WriteCommand
> Object key, Object newValue
> boolen match(Object currentValue) //true by default
> boolean needsRemoteGetBeforeWrite() //true by default
> object perform() //common implementation like: if (match(entry.getValue()) then entry.setValue(newValue); entry.setChanged(true); entry.setRemoved(newValue == null)}
> {code}
> * Concrete implementations*
> {code:java}
> {PutCommand|RemoveCommand} extends WriteCommand
> ovewrite needsRemoteGetBeforeWrite() {return !flags.contains(IGNORE_RETURN_VALUE)}
> ReplaceIfPresentCommand extends WriteCommand
> ovewrite match(Object currentValue) {return currentValue != null}
> PutIfAbsentCommand extends WriteCommand
> ovewrite match(Object currentValue) {return currentValue == null}
> {code}
> * Special base class for operation with expected value to compare*
> {code:java}
> class abstract AdvancedWriteCommand extends WriteCommand
> Object expectedValue
> match(Object currentValue) {return currentValue.equals(expectedValue)}
> {RemoveIfEquals|ReplaceIfEquals} extends AdvancedWriteCommand //no different implementation needed.
> {code}
> ps: I'm going to open the discussion in the dev mailing list...
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 3 months
[JBoss JIRA] (ISPN-3336) Extended Statistics check list
by Mircea Markus (JIRA)
[ https://issues.jboss.org/browse/ISPN-3336?page=com.atlassian.jira.plugin.... ]
Mircea Markus updated ISPN-3336:
--------------------------------
Labels: core (was: )
> Extended Statistics check list
> ------------------------------
>
> Key: ISPN-3336
> URL: https://issues.jboss.org/browse/ISPN-3336
> Project: Infinispan
> Issue Type: Task
> Reporter: Pedro Ruivo
> Assignee: Pedro Ruivo
> Priority: Critical
> Labels: core
> Fix For: 7.0.0.Alpha1
>
>
> * add documentation
> * check for duplicate stats;
> * check for not exposed statistics
> * try to improve the code (reduce the number of access to the CHM)
> * add tests to check if they are exported via JMX correctly
> * failing test: OptimisticLockingTxClusterExtendedStatisticLogicTest.testWriteSkewOnNonOwner
> * failing test: PessimisticLockingTxClusterExtendedStatisticLogicTest.testDeadlockOnNonOwnerWithRemoteTx
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 3 months