<!-- 
RSS generated by JIRA (5.2.7#850-sha1:b2af0c8dc8537b36121c6a579fabbdf79fc919e5) at Sat May 25 16:44:14 UTC 2013

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
For example:
http://www.doctrine-project.org/jira/si/jira.issueviews:issue-xml/DDC-2179/DDC-2179.xml?field=key&field=summary
-->
<rss version="0.92" >
<channel>
    <title>Doctrine Project</title>
    <link>http://www.doctrine-project.org/jira</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>5.2.7</version>
        <build-number>850</build-number>
        <build-date>21-02-2013</build-date>
    </build-info>

<item>
            <title>[DDC-2179] Transactions should sent in group not chunked</title>
                <link>http://www.doctrine-project.org/jira/browse/DDC-2179</link>
                <project id="10032" key="DDC">Doctrine 2 - ORM</project>
                        <description>&lt;p&gt;In UnitOfWork::commit() it seems that a transaction is done like this:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;will send separate queries for transaction start&lt;/li&gt;
	&lt;li&gt;compute the queries/send them to the db driver&lt;/li&gt;
	&lt;li&gt;execute the commit statement&lt;/li&gt;
	&lt;li&gt;optionally execute rollback&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;The question would be, should my webserver have some issues with resources, wouldn&apos;t this part of the code be a pain for the DB?&lt;/p&gt;

&lt;p&gt;I don&apos;t know how mysql, for example, handles sending the transaction in chunks  as opposed to sending it in 2/3 statements ( begin + ops and commit / + revert in case of failure) or in mySQL,l the transaction is evaluated on COMMIT statement only?&lt;/p&gt;

&lt;p&gt;If my assumption about how MySQL works, locking everything as soon as the statement is on the server, then shouldn&apos;t Doctrine use a internal buffer for sending transactions to the DB driver in order to avoid all sorts of problems that appear in high concurency scenarios?&lt;/p&gt;


&lt;p&gt;Best regards.&lt;/p&gt;</description>
                <environment>MySQL 5.5 / Percona</environment>
            <key id="14282">DDC-2179</key>
            <summary>Transactions should sent in group not chunked</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="2" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/critical.png">Critical</priority>
                    <status id="6" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/closed.png">Closed</status>
                    <resolution id="6">Invalid</resolution>
                    <security id="10000">All</security>
                        <assignee username="ocramius">Marco Pivetta</assignee>
                                <reporter username="dlsniper">Florin Patan</reporter>
                        <labels>
                        <label>unitofwork</label>
                    </labels>
                <created>Thu, 29 Nov 2012 22:16:37 +0000</created>
                <updated>Fri, 30 Nov 2012 14:31:16 +0000</updated>
                    <resolved>Fri, 30 Nov 2012 14:28:10 +0000</resolved>
                            <version>2.2</version>
                <version>2.3</version>
                <version>Git Master</version>
                                                <component>Mapping Drivers</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>2</watches>
                        <comments>
                    <comment id="19080" author="ocramius" created="Fri, 30 Nov 2012 13:21:29 +0000"  >&lt;p&gt;Invalid IMO. This is an over-complication that (in such high load scenarios) is handled by clustering/load balancing. Not a problem of the ORM, since smashing all statements together will just make it impossible to trap any problems.&lt;/p&gt;</comment>
                    <comment id="19082" author="ocramius" created="Fri, 30 Nov 2012 14:28:10 +0000"  >&lt;p&gt;This performance improvement has been discussed directly on IRC.&lt;/p&gt;

&lt;p&gt;The original problem is related to deadlocks and small transactions, which is not anyway solved by this issue.&lt;/p&gt;

&lt;p&gt;Otherwise, this improvement requires a PoC that shows that it is possible to have exceptions still showing the query that caused the failure.&lt;/p&gt;</comment>
                    <comment id="19083" author="ocramius" created="Fri, 30 Nov 2012 14:31:16 +0000"  >&lt;p&gt;Sorry, was unclear. I basically mean that any approach squashing the queries into a single chunk sent to the DB should also allow us to get computed insert IDs and eventual exceptions should bubble up with the query that caused them.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>
</channel>
</rss>