cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Ellis (JIRA)" <>
Subject [jira] Commented: (CASSANDRA-414) remove sstableLock
Date Fri, 11 Sep 2009 03:38:57 GMT


Jonathan Ellis commented on CASSANDRA-414:

Yeah, it's a little subtle.  The article I linked is a good explanation, the javadoc alone
isn't sufficient or at least wasn't for me.

A Reference of any type has a get() method that returns the actual referent.  Here that would
be the SSTR.  But ReferenceQueue holds the Reference wrapper, not the actual SSTRs.  (When
you pass a RQ to the Reference constructor, the Reference will be enqueued on that RQ when
its referent is GC'd.  The referent itself already GC'd or in the process of being GC'd so
it can't be put on the RQ or you would get back to the Bad Old Days of finalizer resurrection

Now, if the referent is no longer live, get() will return null.  Since the point of the RQ
design is to do cleanup after the object is dead, we subclass PhantomReference and store a
reference to the path, so we don't actually need the SSTR to do the delete.  (In fact for
PR in particular get() _always_ returns null but that is not really essential to understanding
what is going on here.)

> remove sstableLock
> ------------------
>                 Key: CASSANDRA-414
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>             Fix For: 0.5
>         Attachments: 0001-CASSANDRA-414-combine-addToList-and-storeLocation-ren.txt,
0001-CASSANDRA-414-combine-addToList-and-storeLocation-ren.txt, 0001-CASSANDRA-414-combine-addToList-and-storeLocation-ren.txt,
0002-convert-ssTables_-to-a-Set-since-the-filename-is-enca.txt, 0002-remove-sstableLock.-re-order-a-few-ops-so-that-we-can.txt,
0002-remove-sstableLock.-re-order-a-few-ops-so-that-we-can.txt, 0003-Replace-sstableLock-with-SSTableTracker-which-perform.txt

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message