You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by pp...@apache.org on 2007/12/27 00:44:13 UTC
svn commit: r606974 - in /labs/fluid/slice/src/site/apt: download.apt
index.apt manual.apt release_notes.apt
Author: ppoddar
Date: Wed Dec 26 15:43:54 2007
New Revision: 606974
URL: http://svn.apache.org/viewvc?rev=606974&view=rev
Log:
Automatic collocation by cascading relations
Added:
labs/fluid/slice/src/site/apt/release_notes.apt
Modified:
labs/fluid/slice/src/site/apt/download.apt
labs/fluid/slice/src/site/apt/index.apt
labs/fluid/slice/src/site/apt/manual.apt
Modified: labs/fluid/slice/src/site/apt/download.apt
URL: http://svn.apache.org/viewvc/labs/fluid/slice/src/site/apt/download.apt?rev=606974&r1=606973&r2=606974&view=diff
==============================================================================
--- labs/fluid/slice/src/site/apt/download.apt (original)
+++ labs/fluid/slice/src/site/apt/download.apt Wed Dec 26 15:43:54 2007
@@ -2,13 +2,15 @@
Slice is available as a single jar.
-*----------+---------------------------------------------------------------*
-| Version | Download
-*----------+---------------------------------------------------------------*
-| 0.1.0 | {{{http://svn.apache.org/repos/asf/labs/fluid/slice/openjpa-slice-0.1.0-SNAPSHOT.jar}openjpa-slice-0.1.0-SNAPSHOT.jar}} |
-*----------+---------------------------------------------------------------*
-| 0.2.0 | {{{http://svn.apache.org/repos/asf/labs/fluid/slice/openjpa-slice-0.2.0-SNAPSHOT.jar}openjpa-slice-0.2.0-SNAPSHOT.jar}} |
-*----------+---------------------------------------------------------------*
+*----------*---------------------------------------------------------------*---------------------*
+| Version | Download | Release Note
+*----------*---------------------------------------------------------------*---------------------*
+| 0.3.0 | {{{http://svn.apache.org/repos/asf/labs/fluid/slice/openjpa-slice-0.3.0-SNAPSHOT.jar}openjpa-slice-0.3.0-SNAPSHOT.jar}} | {{{release_notes.html#0.3.0}Release Note}} |
+*----------*---------------------------------------------------------------*---------------------*
+| 0.2.0 | {{{http://svn.apache.org/repos/asf/labs/fluid/slice/openjpa-slice-0.2.0-SNAPSHOT.jar}openjpa-slice-0.2.0-SNAPSHOT.jar}} | {{{release_notes.html#0.2.0}Release Note}} |
+*----------*---------------------------------------------------------------*---------------------*
+| 0.1.0 | {{{http://svn.apache.org/repos/asf/labs/fluid/slice/openjpa-slice-0.1.0-SNAPSHOT.jar}openjpa-slice-0.1.0-SNAPSHOT.jar}} | {{{release_notes.html#0.1.0}Release Note}} |
+*----------*---------------------------------------------------------------*---------------------*
* Get the source code
@@ -43,4 +45,6 @@
[[a]] edit <<<src/test/resources/META-INF/persistence.xml>>> accordingly
[[b]] add \<dependency\> in <<<pom.xml>>> for the database driver being
- used.
\ No newline at end of file
+ used.
+
+
\ No newline at end of file
Modified: labs/fluid/slice/src/site/apt/index.apt
URL: http://svn.apache.org/viewvc/labs/fluid/slice/src/site/apt/index.apt?rev=606974&r1=606973&r2=606974&view=diff
==============================================================================
--- labs/fluid/slice/src/site/apt/index.apt (original)
+++ labs/fluid/slice/src/site/apt/index.apt Wed Dec 26 15:43:54 2007
@@ -17,24 +17,32 @@
The salient features of Slice are:
[[1.]] <<Transparent>> : no change to the application or to the persistent
- domain model to upgrade from a single database to distributed database environment.
+ domain model to upgrade from a single database to a distributed database
+ environment.
- [[2.]] <<Custom Distribution>>: application decides how the newly persistent instances be distributed
- across multiple databases
+ [[2.]] <<Custom Distribution Policy>>: application decides how the newly
+ persistent instances be distributed across multiple databases. Slice tags
+ the original database for existing instances so that any update happens
+ to the appropriate database.
- [[3.]] <<Heterogeneous Database>>: each slice can be configured independently, hence data can be
- distributed across heterogeneous databases.
+ [[3.]] <<Heterogeneous Database>>: each slice can be configured independently
+ with its own JDBC driver, hence data can be distributed across heterogeneous
+ databases.
[[4.]] <<Plug-and-Play>>: configured as a plug-in to OpenJPA runtime
The <current> limitations are
- [[1.]] <<Collocation Constraint>>: no relationships across databases; hence the closure of
- an object graph must be collocated in the same database
+ [[1.]] <<Collocation Constraint>>: no relationships across databases;
+ hence the closure of an object graph must be collocated in the same database.
+ Slice, however, helps to maintain the collocation constraint by automatically
+ assigning the correct slice for all cascaded relationship. The user-defined
+ DistributionPolicy requires to supply the slice for the root instance only.
- [[2.]] <<Local Transaction>>: no two-phase commit protocol across multiple databases when local
- transaction is local. Under JTA transaction, the underlying slices participate in global transaction.
+ [[2.]] <<Local Transaction>>: no two-phase commit protocol across multiple
+ databases for local transaction. Under JTA transaction, the underlying slices
+ participate in global transaction.
[[3.]] <<No Sorting>>: no sorting of query result across multiple databases.
Modified: labs/fluid/slice/src/site/apt/manual.apt
URL: http://svn.apache.org/viewvc/labs/fluid/slice/src/site/apt/manual.apt?rev=606974&r1=606973&r2=606974&view=diff
==============================================================================
--- labs/fluid/slice/src/site/apt/manual.apt (original)
+++ labs/fluid/slice/src/site/apt/manual.apt Wed Dec 26 15:43:54 2007
@@ -20,11 +20,11 @@
* {{{manual.html#Getting}Getting Started with Slice}}
- ** {{{manual.html#Download}Download Slice}}
+ ** {{{manual.html#Unit}Configure Persistence Unit}}
- ** {{{manual.html#Configure}Configure Persistence Unit}}
-
- ** {{{manual.html#Implement}Implement Distribution Policy}}
+ ** {{{manual.html#Slice}Configure Slices}}
+
+ ** {{{manual.html#DistributionPolicy}Implement Distribution Policy}}
[]
@@ -77,13 +77,15 @@
However, Slice can not establish or query any cross-database relationship. This limitation leads
to <collocation constraint> i.e. closure of any object graph must be stored in the same database.
- Currently, distribution policy implementation has to satisfy this collocation constraint.
For example, if Person A is related to Address B, then instance A and B must reside in the same database.
Of course, another Person C and its Address D can reside in a different database.
- It is possible for Slice to grow smarter and determine the closure of a root object by traversal of
- cascaded relationships, but it is not there yet.
+ Slice can determine the closure of a root object by traversal of
+ cascaded relationships. Hence user-defined policy has to only decide the
+ database for the <root> instance that is the explicit argument of <persist()> call.
+ Slice will ensure that all other instances that gets persisted by cascade
+ is assigned to the same database as that of the root instance.
{Getting} Started with Slice
@@ -91,17 +93,17 @@
Follow the steps to enable your OpenJPA application for distributed
databases with Slice:
- [[1]] {{{manual.html#Configure}Configure persistence unit}}
+ [[1]] {{{manual.html#Unit}Configure Persistence Unit}}
[[2]] {{{manual.html#Slice}Configure Slices}}
- [[3]] {{{manual.html#implements}Implement Distribution Policy}}
+ [[3]] {{{manual.html#DistributionPolicy}Implement Distribution Policy}}
[[4]] {{{manual.html#Run}Run your application}}
[]
- [[1]] {Configure} Persistence Unit
+ [[1]] Configure Persistence {Unit}
Add the following in <<<META-INF/persistence.xml>>>:
@@ -109,7 +111,7 @@
<property name="openjpa.BrokerFactory" value="slice"/>
---------------------------------------+
- [[2]] Configure the {Slice}s:
+ [[2]] Configure {Slice}s:
Each Slice has a unique URL
@@ -137,12 +139,8 @@
<property name="slice.Three.ConnectionDriverName" value="com.another.Driver"/>
---------------------------------------+
- [[3]] Specify a Java class that {implements} DistributionPolicy
+ [[3]] Implement {DistributionPolicy}
---------------------------------------
- <property name="slice.DistributionPolicy" value="org.acme.foo.MyDistro"/>
-----------------------------------------
-
{{{apidocs/org/apache/openjpa/slice/DistributionPolicy.html}
org.apache.openjpa.slice.DistributionPolicy}}
is a simple interface with a single method. The interface is described as
@@ -161,9 +159,14 @@
*/
String distribute(Object pc, Set<String> slices, Object context);
-------------------------------------------------------
-
-
+ The policy class you implement is to be specified in
+ <<<META-INF/persistence.xml>>> as:
+
+--------------------------------------
+ <property name="slice.DistributionPolicy" value="org.acme.foo.MyDistro"/>
+----------------------------------------
+
[[4]] {Run} your application
That is it.
Added: labs/fluid/slice/src/site/apt/release_notes.apt
URL: http://svn.apache.org/viewvc/labs/fluid/slice/src/site/apt/release_notes.apt?rev=606974&view=auto
==============================================================================
--- labs/fluid/slice/src/site/apt/release_notes.apt (added)
+++ labs/fluid/slice/src/site/apt/release_notes.apt Wed Dec 26 15:43:54 2007
@@ -0,0 +1,34 @@
+Release Notes
+
+* Version {0.3.0}
+
+ * <Automatic Collocation Constraint>: Added support for identifying the correct
+ slice for instances that are newly persistent by cascade. Collocation
+ constraint requires that the closure of any object graph be stored in the
+ same slice. In earlier version, user-defined DistributionPolicy has to
+ ensure this constraint by returning the same slice for all the instances
+ in the same closure.\
+ Now DistributionPolicy only needs to be implemented for root instances i.e.
+ the instances that are explicit argument of persist()
+ call. The cascaded instances will be automatically assigned the same slice
+ identifier of the root instance.
+
+ []
+
+
+* Version {0.2.0}
+
+ * <Per-slice Configuration>: Added support for per-slice configuration.
+ Now each slice can be configured with separate database driver or database
+ dictionary or any other property.
+
+ * The previous multi-URL configuration is no more supported.
+
+ []
+
+* Version {0.1.0}
+
+ * First working version for extending OpenJPA to horizontally-partitioned,
+ distributed database.
+
+ []
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org