You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by mi...@apache.org on 2005/06/08 03:24:36 UTC
svn commit: r189485 - in
/incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index:
B2I.java B2IController.java B2ICostController.java B2IForwardScan.java
B2IMaxScan.java B2INoLocking.java B2IRowLocking2.java B2IRowLocking3.java
D_B2IController.java
Author: mikem
Date: Tue Jun 7 18:24:35 2005
New Revision: 189485
URL: http://svn.apache.org/viewcvs?rev=189485&view=rev
Log:
more improvements to index directory javadoc.
Modified:
incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2I.java
incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IController.java
incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2ICostController.java
incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IForwardScan.java
incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IMaxScan.java
incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2INoLocking.java
incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IRowLocking2.java
incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IRowLocking3.java
incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/D_B2IController.java
Modified: incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2I.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2I.java?rev=189485&r1=189484&r2=189485&view=diff
==============================================================================
--- incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2I.java (original)
+++ incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2I.java Tue Jun 7 18:24:35 2005
@@ -1052,6 +1052,3 @@
localReadExternal(in);
}
}
-
-
-
Modified: incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IController.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IController.java?rev=189485&r1=189484&r2=189485&view=diff
==============================================================================
--- incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IController.java (original)
+++ incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IController.java Tue Jun 7 18:24:35 2005
@@ -47,11 +47,14 @@
import org.apache.derby.iapi.services.io.FormatableBitSet;
/**
+ * Controller used to insert rows into a secondary index.
+ *
* Implements the ConglomerateController interface for the B-Tree index
- * access method. The primary use of this interface is to insert rows
- * into the tree.
- * <p>
- * A B2I controller object corresponds to an open B-Tree secondary index.
+ * access method.
+ *
+ * Note most work of this class is inherited from the generic btree
+ * implementation. This class initializes the top level object and deals with
+ * locking information specific to a secondary index implementation of a btree.
*/
public class B2IController extends BTreeController
{
Modified: incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2ICostController.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2ICostController.java?rev=189485&r1=189484&r2=189485&view=diff
==============================================================================
--- incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2ICostController.java (original)
+++ incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2ICostController.java Tue Jun 7 18:24:35 2005
@@ -37,15 +37,21 @@
/**
+ * Controller used to provide cost estimates to optimizer about secondary index
+ * data access.
+ *
* Implements the StoreCostController interface for the B-Tree index
* implementation. The primary use of this interface is to provide costs
* used by the query optimizer to use when choosing query plans. Provides
* costs of things like fetch one row, how many rows in conglomerate, how
* many rows between these 2 keys.
+ *
+ * Note most work of this class is inherited from the generic btree
+ * implementation. This class initializes the top level object and deals with
+ * locking information specific to a secondary index implementation of a btree.
*/
public class B2ICostController extends BTreeCostController
{
-
/*
** Fields of B2IController.
*/
Modified: incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IForwardScan.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IForwardScan.java?rev=189485&r1=189484&r2=189485&view=diff
==============================================================================
--- incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IForwardScan.java (original)
+++ incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IForwardScan.java Tue Jun 7 18:24:35 2005
@@ -51,8 +51,20 @@
/**
- A B2I controller object is the concrete class which corresponds to an open
- b-tree secondary index.
+The btree secondary index implementation of ScanManager which provides reading
+and deleting of entries in the btree secondary index.
+
+This supports setting up and
+iterating through a set of rows while providing a start key, stop key,
+and a set of AND and OR qualifiers to skip unwanted rows. Currently
+derby only supports forward scans (but individual columns can have
+descending order). This interface is also used to delete rows from
+the conglomerate. Note that update is not supported, it must be
+implemented as a delete, followed by an insert.
+
+Note most work of this class is inherited from the generic btree implementation.
+This class initializes the top level object and deals with locking information
+specific to a secondary index implementation of a btree.
**/
Modified: incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IMaxScan.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IMaxScan.java?rev=189485&r1=189484&r2=189485&view=diff
==============================================================================
--- incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IMaxScan.java (original)
+++ incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IMaxScan.java Tue Jun 7 18:24:35 2005
@@ -48,9 +48,14 @@
import org.apache.derby.impl.store.access.conglomerate.ConglomerateUtil;
/**
+Scan used to find maximum value in the secondary index.
- A B2I controller object is the concrete class which corresponds to an open
- b-tree secondary index.
+This class implements an optimized interface to find the maximum row,
+for a set of rows between an input start and stop key.
+
+Note most work of this class is inherited from the generic btree implementation.
+This class initializes the top level object and deals with locking information
+specific to a secondary index implementation of a btree.
**/
Modified: incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2INoLocking.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2INoLocking.java?rev=189485&r1=189484&r2=189485&view=diff
==============================================================================
--- incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2INoLocking.java (original)
+++ incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2INoLocking.java Tue Jun 7 18:24:35 2005
@@ -44,7 +44,19 @@
import org.apache.derby.impl.store.access.btree.BTreeRowPosition;
import org.apache.derby.impl.store.access.btree.WaitError;
+
/**
+
+Secondary index locking policy that does no locking.
+<p>
+This is used when the caller knows that logical locks are already obtained
+so need not be requested again. For instance when inserting a row into
+an index, a X row lock has already been obtained when the row was inserted
+into the base table, so there is no need to get another lock in the
+secondary index.
+<p>
+This class overrides all interfaces of BTreeLockingPolicy making them
+no-ops.
**/
Modified: incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IRowLocking2.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IRowLocking2.java?rev=189485&r1=189484&r2=189485&view=diff
==============================================================================
--- incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IRowLocking2.java (original)
+++ incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IRowLocking2.java Tue Jun 7 18:24:35 2005
@@ -47,6 +47,13 @@
/**
+The btree locking policy which implements read committed isolation level.
+
+It inherits all functionality from B2IRowLockingRR (repeatable read) except
+that it releases read locks after obtaining them. It provides a single
+implementation of unlockScanRecordAfterRead() which releases a read lock
+after it has been locked and processed.
+
**/
class B2IRowLocking2 extends B2IRowLockingRR implements BTreeLockingPolicy
Modified: incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IRowLocking3.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IRowLocking3.java?rev=189485&r1=189484&r2=189485&view=diff
==============================================================================
--- incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IRowLocking3.java (original)
+++ incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IRowLocking3.java Tue Jun 7 18:24:35 2005
@@ -51,8 +51,12 @@
/**
-**/
+Implements the jdbc serializable isolation level using row locks.
+<p>
+Holds read and write locks until end of transaction.
+Obtains previous key locks to protect from phantom reads.
+**/
class B2IRowLocking3 implements BTreeLockingPolicy
{
Modified: incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/D_B2IController.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/D_B2IController.java?rev=189485&r1=189484&r2=189485&view=diff
==============================================================================
--- incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/D_B2IController.java (original)
+++ incubator/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/D_B2IController.java Tue Jun 7 18:24:35 2005
@@ -22,6 +22,19 @@
import org.apache.derby.impl.store.access.btree.D_BTreeController;
+/**
+
+Debugging class used to print debug information about a B2I.
+
+Code here can be used in SANE development builds but the class is not necessary
+for a release so does not add footprint to a customer release.
+See the DiagnosticableGeneric interface for more information.
+
+Note that all the real work currently is inherited from
+it's parent, but this class needs to exist as the diagnostic interface
+requires a class names D_XXX to provide information about XXX.
+
+**/
public class D_B2IController extends D_BTreeController
{