Hi Dimuthu,

On Fri, Feb 26, 2010 at 9:38 AM, Dimuthu Gamage <[email protected]> wrote:

> Hi,
>
> I think What 'READ_COMMITED' do is, in a case of doing reading, it will
> continue reading the commited data from the tables locked by others. So I
> think what 'READ_COMMITED' guarantee is , if all the operation are 'READ'
> then it will not dead lock. But Apparently we are doing some 'WRITE'
> operations in that test case. so deadlocks are possible.
>
> I'm trying to list the sequence of database accesses for simple GET, PUT,
> DELETE registry operations at here[1]. So we can identify which operation
> can cause the deadlocks.
>

Since we support transactions spanning across multiple operations, this
could be theoretically any N number of operations. What we should be doing
here, is defining a protocol to handle situations causing a deadlock. This
shouldn't result in a performance overhead if this is properly designed and
well written. Also, the benefits are that we will not be loosing
transactions, by means of a retrying logic.

Thanks,
Senaka.

>
> Thanks
> Dimuthu
>
> [1]
> https://spreadsheets.google.com/a/wso2.com/ccc?key=tX5iHIbwTIDDuyF8uwsERiw&hl=en
>
>
> On Fri, Feb 26, 2010 at 9:14 AM, Amila Suriarachchi <[email protected]>wrote:
>
>>
>>
>> On Fri, Feb 26, 2010 at 8:21 AM, Dimuthu Gamage <[email protected]> wrote:
>>
>>>
>>>
>>> On Fri, Feb 26, 2010 at 7:50 AM, Amila Suriarachchi <[email protected]>wrote:
>>>
>>>>
>>>>
>>>> On Wed, Feb 24, 2010 at 12:03 PM, Sumedha Rubasinghe 
>>>> <[email protected]>wrote:
>>>>
>>>>>
>>>>> On Wed, Feb 24, 2010 at 11:57 AM, Ruwan Linton <[email protected]> wrote:
>>>>>
>>>>>> Senaka Fernando wrote:
>>>>>> > This could be due to overlapping transactions in this particular
>>>>>> > component that attempts to write to the registry at once.
>>>>>> So does this mean that Registry cannot handle concurrent connections
>>>>>> to
>>>>>> a particular registry resource/collection? Well, even in that case it
>>>>>> shouldn't deadlock :-(
>>>>>>
>>>>>
>>>>> If an insert (write) happens the database locks the table allowing only
>>>>> read. So the only option available for us is to speed up write operation.
>>>>> working on it..
>>>>>
>>>>
>>>> hi Sumedha,
>>>>
>>>> What is the transaction isolation level you use for these transactions?
>>>>
>>>
>>> It is read committed.
>>>
>> Do you know why this deadlocks occur?. At this isolation level
>> transactions do not have to lock the tables isn't it?
>>
>> Amila.
>>
>>
>>> Thanks
>>> Dimuthu
>>>
>>>>
>>>> Amila.
>>>>
>>>>>
>>>>> /sumedha
>>>>>
>>>>>
>>>>>> Thanks,
>>>>>> Ruwan
>>>>>> >
>>>>>> > Thanks,
>>>>>> > Senaka.
>>>>>> >
>>>>>> > On Wed, Feb 24, 2010 at 11:28 AM, Hiranya Jayathilaka
>>>>>> > <[email protected] <mailto:[email protected]>> wrote:
>>>>>> >
>>>>>> >     Following exception encountered in the ESB while updating a
>>>>>> proxy
>>>>>> >     service:
>>>>>> >
>>>>>> >
>>>>>> >     Exception in thread "Thread-23"
>>>>>> >
>>>>>> org.wso2.carbon.mediation.initializer.persistence.ServiceBusPersistenceException:
>>>>>> >     Error while saving mediation configuration changes
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.mediation.initializer.persistence.MediationPersistenceManager.handleException(MediationPersistenceManager.java:278)
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.mediation.initializer.persistence.MediationPersistenceManager.access$1200(MediationPersistenceManager.java:48)
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.mediation.initializer.persistence.MediationPersistenceManager$MediationPersistenceWorker.run(MediationPersistenceManager.java:320)
>>>>>> >     Caused by:
>>>>>> >
>>>>>> org.wso2.carbon.mediation.initializer.persistence.ServiceBusPersistenceException:
>>>>>> >     Unable to persist the proxy service in the path :
>>>>>> >     /repository/synapse/proxy-services/FooProxy
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.mediation.initializer.persistence.registry.AbstractRegistryStore.handleException(AbstractRegistryStore.java:101)
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.mediation.initializer.persistence.registry.ProxyServiceRegistryStore.persistElement(ProxyServiceRegistryStore.java:72)
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.mediation.initializer.persistence.AbstractStore.saveToRegistry(AbstractStore.java:154)
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.mediation.initializer.persistence.AbstractStore.save(AbstractStore.java:82)
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.mediation.initializer.persistence.MediationPersistenceManager.persistElement(MediationPersistenceManager.java:335)
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.mediation.initializer.persistence.MediationPersistenceManager.access$1000(MediationPersistenceManager.java:48)
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.mediation.initializer.persistence.MediationPersistenceManager$MediationPersistenceWorker.run(MediationPersistenceManager.java:314)
>>>>>> >     Caused by:
>>>>>> >     org.wso2.carbon.registry.core.exceptions.RegistryException:
>>>>>> Unable
>>>>>> >     to persist element
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.mediation.initializer.persistence.registry.AbstractRegistryStore.persistElement(AbstractRegistryStore.java:95)
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.mediation.initializer.persistence.registry.ProxyServiceRegistryStore.persistElement(ProxyServiceRegistryStore.java:69)
>>>>>> >     ... 5 more
>>>>>> >     Caused by:
>>>>>> >     org.wso2.carbon.registry.core.exceptions.RegistryException:
>>>>>> Failed
>>>>>> >     to add log entry for resource
>>>>>> >     /_system/config/repository/synapse/proxy-services. Deadlock
>>>>>> >     detected. The current transaction was rolled back. Details:
>>>>>> >     Session #9 (user: WSO2CARBON) is waiting to lock
>>>>>> >     PUBLIC.REG_RESOURCE while locking PUBLIC.REG_ASSOCIATION
>>>>>> >     (exclusive), PUBLIC.REG_LOG (exclusive).
>>>>>> >     Session #12 (user: WSO2CARBON) is waiting to lock PUBLIC.REG_LOG
>>>>>> >     while locking PUBLIC.REG_CONTENT_HISTORY (exclusive),
>>>>>> >     PUBLIC.REG_RESOURCE_HISTORY (exclusive), PUBLIC.REG_RESOURCE
>>>>>> >     (exclusive), PUBLIC.REG_CONTENT (exclusive), PUBLIC.REG_SNAPSHOT
>>>>>> >     (exclusive).; SQL statement:
>>>>>> >     INSERT INTO REG_LOG (REG_PATH, REG_USER_ID, REG_LOGGED_TIME,
>>>>>> >     REG_ACTION, REG_ACTION_DATA, REG_TENANT_ID) VALUES (?, ?, ?, ?,
>>>>>> ?,
>>>>>> >     ?) [40001-112]
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.registry.core.jdbc.dao.LogsDAO.addLog(LogsDAO.java:79)
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.registry.core.jdbc.Repository.update(Repository.java:966)
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.registry.core.jdbc.Repository.updateParent(Repository.java:947)
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.registry.core.jdbc.Repository.delete(Repository.java:403)
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.delete(EmbeddedRegistry.java:807)
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.registry.core.session.UserRegistry.delete(UserRegistry.java:625)
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.mediation.initializer.persistence.registry.AbstractRegistryStore.persistElement(AbstractRegistryStore.java:79)
>>>>>> >     ... 6 more
>>>>>> >     Caused by: org.h2.jdbc.JdbcSQLException: Deadlock detected. The
>>>>>> >     current transaction was rolled back. Details:
>>>>>> >     Session #9 (user: WSO2CARBON) is waiting to lock
>>>>>> >     PUBLIC.REG_RESOURCE while locking PUBLIC.REG_ASSOCIATION
>>>>>> >     (exclusive), PUBLIC.REG_LOG (exclusive).
>>>>>> >     Session #12 (user: WSO2CARBON) is waiting to lock PUBLIC.REG_LOG
>>>>>> >     while locking PUBLIC.REG_CONTENT_HISTORY (exclusive),
>>>>>> >     PUBLIC.REG_RESOURCE_HISTORY (exclusive), PUBLIC.REG_RESOURCE
>>>>>> >     (exclusive), PUBLIC.REG_CONTENT (exclusive), PUBLIC.REG_SNAPSHOT
>>>>>> >     (exclusive).; SQL statement:
>>>>>> >     INSERT INTO REG_LOG (REG_PATH, REG_USER_ID, REG_LOGGED_TIME,
>>>>>> >     REG_ACTION, REG_ACTION_DATA, REG_TENANT_ID) VALUES (?, ?, ?, ?,
>>>>>> ?,
>>>>>> >     ?) [40001-112]
>>>>>> >     at org.h2.message.Message.getSQLException(Message.java:107)
>>>>>> >     at org.h2.message.Message.getSQLException(Message.java:118)
>>>>>> >     at org.h2.message.Message.getSQLException(Message.java:77)
>>>>>> >     at org.h2.table.TableData.doLock(TableData.java:428)
>>>>>> >     at org.h2.table.TableData.lock(TableData.java:375)
>>>>>> >     at org.h2.command.dml.Insert.update(Insert.java:99)
>>>>>> >     at
>>>>>> org.h2.command.CommandContainer.update(CommandContainer.java:71)
>>>>>> >     at org.h2.command.Command.executeUpdate(Command.java:207)
>>>>>> >     at
>>>>>> >
>>>>>> org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:139)
>>>>>> >     at
>>>>>> >
>>>>>> org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:128)
>>>>>> >     at
>>>>>> >
>>>>>> org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
>>>>>> >     at
>>>>>> >
>>>>>> org.wso2.carbon.registry.core.jdbc.dao.LogsDAO.addLog(LogsDAO.java:72)
>>>>>> >     ... 12 more
>>>>>> >
>>>>>> >     Thanks
>>>>>> >     --
>>>>>> >     Hiranya Jayathilaka
>>>>>> >     Software Engineer;
>>>>>> >     WSO2 Inc.;  http://wso2.org
>>>>>> >     E-mail: [email protected] <mailto:[email protected]>;  Mobile:
>>>>>> +94
>>>>>> >     77 633 3491
>>>>>> >     Blog: http://techfeast-hiranya.blogspot.com
>>>>>> >
>>>>>> >     _______________________________________________
>>>>>> >     Carbon-dev mailing list
>>>>>> >     [email protected] <mailto:[email protected]>
>>>>>> >     https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> > --
>>>>>> > Senaka Fernando
>>>>>> > Software Engineer
>>>>>> > WSO2 Inc.
>>>>>> > E-mail: senaka AT wso2.com <http://wso2.com>;  Mobile: +94 77 322
>>>>>> 1818
>>>>>> >
>>>>>> > http://www.wso2.com/ - "Lean . Enterprise . Middleware"
>>>>>> >
>>>>>> ------------------------------------------------------------------------
>>>>>> >
>>>>>> > _______________________________________________
>>>>>> > Carbon-dev mailing list
>>>>>> > [email protected]
>>>>>> > https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>>> >
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Ruwan Linton
>>>>>> Technical Lead & Product Manager; WSO2 ESB; http://wso2.org/esb
>>>>>> WSO2 Inc.; http://wso2.org
>>>>>> email: [email protected]; cell: +94 77 341 3097
>>>>>> blog: http://blog.ruwan.org
>>>>>>
>>>>>> Lean . Enterprise . Middleware
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Carbon-dev mailing list
>>>>>> [email protected]
>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Carbon-dev mailing list
>>>>> [email protected]
>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> Carbon-dev mailing list
>>>> [email protected]
>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Carbon-dev mailing list
>>> [email protected]
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>
>>>
>>
>> _______________________________________________
>> Carbon-dev mailing list
>> [email protected]
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>
>>
>
> _______________________________________________
> Carbon-dev mailing list
> [email protected]
> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>
>


-- 
Senaka Fernando
Software Engineer
WSO2 Inc.
E-mail: senaka AT wso2.com;  Mobile: +94 77 322 1818

http://www.wso2.com/ - "Lean . Enterprise . Middleware"
_______________________________________________
Carbon-dev mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev

Reply via email to