insert-regression-test time doubled with r1409

Bug #912610 reported by Nathan Williams
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Akiban Persistit
Fix Released
Critical
Nathan Williams

Bug Description

The merge proposal describing the change:
https://code.launchpad.net/~yshavit/akiban-server/index_entrycount/+merge/87416

In short, this branch added an Accumulator to every non-primary key index for future statistics related purposes. The insert-regression-test was disabled at the time, so it went unnoticed, due to other MVCC related insert regressions. Confirmed with this revision by running pre and post and also running post with just the updates to the index accumulators commented out.

This test inserts 50k rows into a single root table with 11 columns and 8 indexes. At r1408 the first pass of the test took ~30s and it now takes ~55s.

Also interesting is that the table has an AUTO_INCREMENT column, which appears to triple the time on its own (something like 10s without it). This is most likely because the accumulators snapshot must be computed as the accumulator is a SUM.

Affecting both Persistit and server as the fix will most likely come in the former and will be noticed in the latter.

summary: - insert-regression-test time double with r1409
+ insert-regression-test time doubled with r1409
Changed in akiban-persistit:
status: New → Confirmed
importance: Undecided → Critical
milestone: none → samba
Revision history for this message
Nathan Williams (nwilliams) wrote :

Attached aummulator-benchmark branch contains no fix or test that will go in trunk, but clearly demonstrates the issue at just the Persistit level.

Revision history for this message
Timothy Wegner (timmwegner) wrote : Re: [Bug 912610] Re: insert-regression-test time doubled with r1409

Nice work Nathan

On Thu, Jan 5, 2012 at 10:13 PM, Nathan Williams
<email address hidden>wrote:

> Attached aummulator-benchmark branch contains no fix or test that will
> go in trunk, but clearly demonstrates the issue at just the Persistit
> level.
>
> --
> You received this bug notification because you are a member of Akiban
> Technologies, which is subscribed to the bug report.
> https://bugs.launchpad.net/bugs/912610
>
> Title:
> insert-regression-test time doubled with r1409
>
> Status in Akiban PersistIT Project:
> Confirmed
> Status in Akiban Server Project:
> Confirmed
>
> Bug description:
> The merge proposal describing the change:
>
> https://code.launchpad.net/~yshavit/akiban-server/index_entrycount/+merge/87416
>
> In short, this branch added an Accumulator to every non-primary key
> index for future statistics related purposes. The insert-regression-
> test was disabled at the time, so it went unnoticed, due to other MVCC
> related insert regressions. Confirmed with this revision by running
> pre and post and also running post with just the updates to the index
> accumulators commented out.
>
> This test inserts 50k rows into a single root table with 11 columns
> and 8 indexes. At r1408 the first pass of the test took ~30s and it
> now takes ~55s.
>
> Also interesting is that the table has an AUTO_INCREMENT column, which
> appears to triple the time on its own (something like 10s without it).
> This is most likely because the accumulators snapshot must be computed
> as the accumulator is a SUM.
>
> Affecting both Persistit and server as the fix will most likely come
> in the former and will be noticed in the latter.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/akiban-persistit/+bug/912610/+subscriptions
>

Revision history for this message
Nathan Williams (nwilliams) wrote :

With the no-accumulators-table-indexes branch, the time from insert-regression-test is back to the 1408 levels.

I've confirmed that we would be back to pre-mvcc levels if the table being tested had no AUTO_INCREMENT declaration. The fix for this will probably come from Peter or I as a Persistit change, hopefully sometime today.

Revision history for this message
Nathan Williams (nwilliams) wrote :

The attached persistit branch has relevant fixes to bring insert-regression-test within reasonable levels of pre-MVCC performance.

The timings, when it goes in, should be something like:
Single row inserts w/no cache: 15.2s
Single row inserts w/cache: 10.7s
Bulk inserts w/cache: 8.4s

It will be marked as a regression by the Jenkins job (previous numbers were something like 14.5s, 8.8s, and 6s) but a bar reset would seem reasonable to me.

Changed in akiban-persistit:
status: Confirmed → Fix Committed
Changed in akiban-server:
status: Confirmed → Fix Committed
Changed in akiban-persistit:
assignee: nobody → Nathan Williams (nwilliams)
Changed in akiban-server:
assignee: nobody → Nathan Williams (nwilliams)
Revision history for this message
Nathan Williams (nwilliams) wrote :

With both branches in trunk the times are now back to pre-mvcc levels, enough so that it wasn't marked as a regression. I ran the test 20 times (literally, I have nothing else to do on Friday nights) and green all the way.

Changed in akiban-persistit:
status: Fix Committed → Fix Released
Changed in akiban-server:
status: Fix Committed → Fix Released
information type: Private → Public
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.