Introduction to Slice * What is Slice? Slice is a plug-in for {{{http://openjpa.apache.org}OpenJPA}} to work with horizontally-partitioned, distributed databases. OpenJPA is a mature and stable implementation of JPA API for persistence operations on Java objects. An OpenJPA application can store and access objects using a relational database. Slice is built as an extension of OpenJPA such that the objects can be distributed across {more than one} physical database without any change to the application. Slice works with set of database instances that are horizontally-partitioned i.e. they have identical schema but the records are distributed across the table in multiple databases following some particular criteria. For example, Customer names starting from 'A' to 'N' resides in database 1 while names starting 'O' to 'Z' are in a second database. Of course, Slice needs a bit of help from the application to know how the new instances are to be distributed among multiple databases. For access and update of existing instances, however, Slice remembers the original database for any instance. * Why Slice? All the data may not reside in a single relational database. Sometimes there is too much data. Sometimes a deployment architecture is distributed. Sometimes a hosted platform needs each client company's data be partitioned into separate database instance. Whatever be the reasons, multiple relational databases obviously complicates the development of your application. Slice is designed to encapsulate this complexity while offering the benefits of OpenJPA. Slice effectively creates a unified object-oriented view of multiple databases via OpenJPA. * How to get started with Slice? Slice is available for {{{download.html}download}} as a single Java archive. The {{{user_manual_index.html}user manual}} describes how to use Slice in your application with examples. * {Resources} * JPA Specification * OpenJPA