db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kathey Marsden (Updated) (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DERBY-5473) Index growth can occur with update of ever increasing values
Date Tue, 15 Nov 2011 17:58:51 GMT

     [ https://issues.apache.org/jira/browse/DERBY-5473?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Kathey Marsden updated DERBY-5473:
----------------------------------

           Description: 
On a table with an  BIGINT Index that is updated quickly with  every increasing values  the
index can grow and space not be reclaimed.

Attaching a reproduction for this issue ReproIdxGrowth.

The program has a single thread that iteratively updates 5 rows in a table with a time value.
 PreparedStatement ps = conn.prepareStatement(
        "UPDATE T SET LAST_SYNC_TIME = ?, NUM_SYNCS = ? WHERE ACCOUNT_ID = ?");

        ResultSet rs = s.executeQuery("SELECT ACCOUNT_ID, NUM_SYNCS FROM  T");
        while( rs.next()) {
            int account = rs.getInt(1);
            int prevNumSync = rs.getInt(1);
            ps.setLong(1, new Date().getTime());
            ps.setInt(2,prevNumSync++);
            ps.setInt(3, account);
            ps.executeUpdate();
        }

After 50,000 iterations we end up with 150 pages allocated for the just the 5 rows, possibly
because it cannot get the table lock to rebalance the tree.


  was:
Attaching a reproduction for this issue ReproIdxGrowth.

The program has a single thread that iteratively updates 5 rows in a table with a time value.
 PreparedStatement ps = conn.prepareStatement(
        "UPDATE T SET LAST_SYNC_TIME = ?, NUM_SYNCS = ? WHERE ACCOUNT_ID = ?");

        ResultSet rs = s.executeQuery("SELECT ACCOUNT_ID, NUM_SYNCS FROM  T");
        while( rs.next()) {
            int account = rs.getInt(1);
            int prevNumSync = rs.getInt(1);
            ps.setLong(1, new Date().getTime());
            ps.setInt(2,prevNumSync++);
            ps.setInt(3, account);
            ps.executeUpdate();
        }

After 50,000 iterations we end up with 150 pages allocated for the just the 5 rows, possibly
because it cannot get the table lock to rebalance the tree.


      Issue & fix info: High Value Fix,Repro attached
    Bug behavior facts: Seen in production
               Summary: Index growth can occur with update of ever increasing values   (was:
Index growth can occur with update of ever increasing values i)
    
> Index growth can occur with update of ever increasing values 
> -------------------------------------------------------------
>
>                 Key: DERBY-5473
>                 URL: https://issues.apache.org/jira/browse/DERBY-5473
>             Project: Derby
>          Issue Type: Bug
>          Components: Store
>            Reporter: Kathey Marsden
>         Attachments: ReproIdxGrowth.java
>
>
> On a table with an  BIGINT Index that is updated quickly with  every increasing values
 the index can grow and space not be reclaimed.
> Attaching a reproduction for this issue ReproIdxGrowth.
> The program has a single thread that iteratively updates 5 rows in a table with a time
value.
>  PreparedStatement ps = conn.prepareStatement(
>         "UPDATE T SET LAST_SYNC_TIME = ?, NUM_SYNCS = ? WHERE ACCOUNT_ID = ?");
>         ResultSet rs = s.executeQuery("SELECT ACCOUNT_ID, NUM_SYNCS FROM  T");
>         while( rs.next()) {
>             int account = rs.getInt(1);
>             int prevNumSync = rs.getInt(1);
>             ps.setLong(1, new Date().getTime());
>             ps.setInt(2,prevNumSync++);
>             ps.setInt(3, account);
>             ps.executeUpdate();
>         }
> After 50,000 iterations we end up with 150 pages allocated for the just the 5 rows, possibly
because it cannot get the table lock to rebalance the tree.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message