1. Summary
  2. Files
  3. Support
  4. Report Spam
  5. Create account
  6. Log in

Ticket #329 (closed defect: fixed)

Opened 2 years ago

Last modified 17 months ago

B+Tree should delete bloom filter when it is disabled.

Reported by: thompsonbry Owned by: martyncutcher
Priority: major Milestone:
Component: B+Tree Version: TERMS_REFACTOR_BRANCH
Keywords: Cc: martyncutcher, thompsonbry

Description

This issue only shows up with the RWStore which then leaks the storage on the disk.

Change History

Changed 19 months ago by thompsonbry

  • priority changed from major to critical
  • status changed from new to assigned
  • version changed from QUADS_QUERY_BRANCH to TERMS_REFACTOR_BRANCH

This should be done for the 1.1 release.

Changed 19 months ago by thompsonbry

Here are the proposed changes, but this really needs to be chased down in depth.

AbstractBTree#2028

                    // The address at which the filter was last persisted.
                    final long addr = filter.getAddr();
                    
                    if(addr != IRawStore.NULL) {
                    
                        // Delete the last version of the bloom filter.
                        getStore().delete(addr);
                        
                    }
                    

BTree#890

            if (filter != null && filter.isDirty() && filter.isEnabled()) {

                /*
                 * The bloom filter is enabled, is loaded and is dirty, so write
                 * it on the store now.
                 */

                // The old address (if any).
                final long addr = filter.getAddr();
                
                if(addr != IRawStore.NULL) {
                
                    // Delete the old version of the filter.
                    store.delete(addr);
                
                }
                    
                // write the new version of the filter.
                filter.write(store);

            }

Note that we could also delete the old checkpoint record and the old index metadata record at the same point in the BTree class (assuming that the index metadata record was dirty and hence that a new version was written out).

Changed 18 months ago by thompsonbry

  • owner changed from thompsonbry to martyncutcher

Changed 18 months ago by thompsonbry

  • priority changed from critical to major

Changed 17 months ago by thompsonbry

  • status changed from assigned to closed
  • resolution set to fixed

Change sets for RWStore history and persistent memory leaks following code review with MCutcher.

Committed Revision r5809 (against 1.0.x maintenance branch and TERMS_REFACTOR_BRANCH)

@see https://sourceforge.net/apps/trac/bigdata/ticket/217 (BTreeCounters does not track bytes released)
@see https://sourceforge.net/apps/trac/bigdata/ticket/329 (B+Tree should delete bloom filter when it is disabled)
@see https://sourceforge.net/apps/trac/bigdata/ticket/372 (RWStore does not prune commit record index).
@see https://sourceforge.net/apps/trac/bigdata/ticket/375 (Persistent memory leaks (RWStore/DISK))

Note: See TracTickets for help on using tickets.