[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[eclipselink-users] Data Partitioning Help
|
Hello Everyone,
I am new to EclipseLink and have a couple of questions regarding Partitioning policies.
I followed the example at:
http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Data_Partitioning
I annotated my entity with the HashPartitioning policy but I am unable
to get any entities to be persisted to the 'node2' connection pool.
Here is my persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="
http://java.sun.com/xml/ns/persistence"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="MServicePU" transaction-type="RESOURCE_LOCAL">
<class>com.e.m.persistence.Conv</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://
server-dev-db.example.com:3306/t_c_db_1"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="pass"/>
<!-- The database platform is auto-detected by default,
if you want to set a specific platform this can be set. -->
<!-- property name=""eclipselink.target-database" value="Oracle" / -->
<!-- Configure connection pool. -->
<property name="eclipselink.connection-pool.default.initial" value="10"/>
<property name="eclipselink.connection-pool.default.min" value="64"/>
<property name="eclipselink.connection-pool.default.max" value="64"/>
<!-- Configure 2nd database connection pool. -->
<property name="eclipselink.connection-pool.node2.url"
value="jdbc:mysql://
server-dev-db.example.com:3306/t_c_db_2"/>
<property name="eclipselink.connection-pool.node2.user" value="root"/>
<property name="eclipselink.connection-pool.node2.password" value="pass"/>
<property name="eclipselink.connection-pool.node2.initial" value="10"/>
<property name="eclipselink.connection-pool.node2.min" value="64"/>
<property name="eclipselink.connection-pool.node2.max" value="64"/>
<property name="eclipselink.connection-pool.node2.initial" value="10"/>
<property name="eclipselink.connection-pool.node2.min" value="64"/>
<property name="eclipselink.connection-pool.node2.max" value="64"/>
<property name="eclipselink.partitioning" value="Replicate" />
</properties>
</persistence-unit>
</persistence>
Some questions I have are:
Will HashPartitioning scale to 10+ shards? (Where I have millions of
records in each shard that will be heavily loaded with 50/50
read/writes)
Would I be able to use the PartitioningPolicy to define my own policy
that does a lookup in memcache for what shard to route requests to? If
it is not present in memcache then I would need to scan all shards to
find the entities ID, then populate memcache -- to then finally return
the shard connection pool. Does this sound like it would work reasonably
well?
Are there more examples/documentation that I could look at?
Thank you,
--
Atman
Software Developer
atteeela@xxxxxxxxx