You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gora.apache.org by dj...@apache.org on 2017/08/15 05:53:31 UTC

svn commit: r1805054 - in /gora/site/trunk/content/current: gora-aerospike.md index.md overview.md

Author: djkevincr
Date: Tue Aug 15 05:53:31 2017
New Revision: 1805054

URL: http://svn.apache.org/viewvc?rev=1805054&view=rev
Log:
Add aerospike module doc

Added:
    gora/site/trunk/content/current/gora-aerospike.md
Modified:
    gora/site/trunk/content/current/index.md
    gora/site/trunk/content/current/overview.md

Added: gora/site/trunk/content/current/gora-aerospike.md
URL: http://svn.apache.org/viewvc/gora/site/trunk/content/current/gora-aerospike.md?rev=1805054&view=auto
==============================================================================
--- gora/site/trunk/content/current/gora-aerospike.md (added)
+++ gora/site/trunk/content/current/gora-aerospike.md Tue Aug 15 05:53:31 2017
@@ -0,0 +1,76 @@
+Title: Gora Aerospike Module
+
+##Overview
+This is the main documentation for the gora-aerospike module. <b>gora-aerospike</b> module enables [Aerospike](http://www.aerospike.com/) backend support for Gora.
+
+[TOC] 
+
+##gora.properties 
+
+* <code>gora.datastore.default=org.apache.gora.aerospike.store.AerospikeStore</code> - Implementation of the persistent Java storage class for Aerospike
+* <code>gora.aerospikestore.server.ip=localhost</code> - Property pointing to the host where the server is running
+* <code>gora.aerospikestore.server.port=3000</code> - Property pointing to the port where the server is running
+* <code>gora.datastore.mapping.file=gora-aerospike-mapping.xml</code> -  The XML mapping file to be used. If no value is used this defaults to gora-aerospike-mapping.xml
+* <code>gora.aerospikestore.server.username=user_name</code> - An optional property defining the username of the server if available
+* <code>gora.aerospikestore.server.password=password</code> - An optional property defining the password of the server if available
+ 
+##Gora Aerospike mappings
+You should then create a gora-aerospike-mapping.xml which will describe how you want to store each of your Gora persistent objects along with the read and write policies in Aerospike:
+
+    <gora-otd>
+		<policy name="write" gen="NONE" recordExists="UPDATE" commitLevel="COMMIT_ALL" durableDelete="false"/>
+  		<policy name="read" priority="DEFAULT" consistencyLevel="CONSISTENCY_ONE" replica="SEQUENCE" maxRetries="2"/>
+
+		<class name="org.apache.gora.examples.generated.Employee" keyClass="java.lang.String" set="Employee" namespace = "test">
+			<field name="name" bin="name"/>
+			<field name="dateOfBirth" bin="dateOfBirth"/>
+			<field name="ssn" bin="ssn"/>
+			<field name="salary" bin="salary"/>
+			<field name="boss" bin="boss"/>
+			<field name="webpage" bin="webpage"/>
+		</class>		
+    </gora-otd>		
+
+Here you can see that we require the definition of child elements within the <code>gora-otd</code> mapping configuration. We can define the classes and the policies.
+
+Each <b>class</b> element should contain the following elements; 
+
+1. a parameter defining the Persistent class name e.g. <b>org.apache.gora.examples.generated.Employee</b>, 
+
+2. a parameter defining the keyClass e.g. <b>java.lang.String</b> which specifies the key which maps to the field values, 
+
+3. a parameter defining the Aerospike set e.g. <b>Employee</b> which will be used to persist each Gora object,
+
+4. a parameter defining the Aerospike namespace e.g. <b>test</b> which will be used to persist each Gora object,
+
+In addition, within the class field we should specify the fields and for which bin each field value maps to. We do not need to explicitly specify the type of each field, as the type is automatically detected in Aerospike server when creating the bin values. Thus each <b>field</b> should contain the field name and the corresponding bin it gets mapped to.  e.g. <b> name="webpage" bin="webpage" </b>
+
+Further, we can define the policies on reading and writing data from/to the server.
+
+Write policy can have following fields and each field values are the default values supported by [Aerospike Write Policy API](https://www.aerospike.com/apidocs/java/com/aerospike/client/policy/WritePolicy.html)
+
+1. gen - [generation policy](https://www.aerospike.com/apidocs/java/com/aerospike/client/policy/GenerationPolicy.html) (values: EXPECT_GEN_EQUAL, EXPECT_GEN_GT, NONE) 
+
+2. recordExists - [record exists action](https://www.aerospike.com/apidocs/java/com/aerospike/client/policy/RecordExistsAction.html) (values: CREATE_ONLY, REPLACE, REPLACE_ONLY, UPDATE, UPDATE_ONLY)
+
+3. commitLevel - [commit level](https://www.aerospike.com/apidocs/java/com/aerospike/client/policy/CommitLevel.html) (values: COMMIT_ALL, COMMIT_MASTER) 
+
+4. durableDelete - [durable delete](https://www.aerospike.com/apidocs/java/com/aerospike/client/policy/WritePolicy.html#durableDelete) (values: true, false) 
+
+5. expiration - [record expiration](https://www.aerospike.com/apidocs/java/com/aerospike/client/policy/WritePolicy.html#expiration) (values: 0, 10) 
+
+Read policy can have following fields and each field values are the default values supported by [Aerospike Read Policy API](https://www.aerospike.com/apidocs/java/com/aerospike/client/policy/Policy.html)
+
+1. priority - [priority policy](https://www.aerospike.com/apidocs/java/com/aerospike/client/policy/Priority.html) (values: DEFAULT, HIGH, LOW, MEDIUM) 
+
+2. consistencyLevel - [consistency level](https://www.aerospike.com/apidocs/java/com/aerospike/client/policy/ConsistencyLevel.html) (values: CONSISTENCY_ALL, CONSISTENCY_ONE)
+
+3. replica - [replica](https://www.aerospike.com/apidocs/java/com/aerospike/client/policy/Replica.html) (values: MASTER, MASTER_PROLES, RANDOM, SEQUENCE) 
+
+4. socketTimeout - [socket timeout](https://www.aerospike.com/apidocs/java/com/aerospike/client/policy/Policy.html#socketTimeout) (values: timeout in milliseconds) 
+
+5. totalTimeout - [total timeout](https://www.aerospike.com/apidocs/java/com/aerospike/client/policy/Policy.html#totalTimeout) (values: timeout in milliseconds) 
+
+6. timeoutDelay - [timeout delay](https://www.aerospike.com/apidocs/java/com/aerospike/client/policy/Policy.html#timeoutDelay) (values: timeout in milliseconds) 
+
+7. maxRetries - [max retries](https://www.aerospike.com/apidocs/java/com/aerospike/client/policy/Policy.html#maxRetries) (values: int of max num of retries) 
\ No newline at end of file

Modified: gora/site/trunk/content/current/index.md
URL: http://svn.apache.org/viewvc/gora/site/trunk/content/current/index.md?rev=1805054&r1=1805053&r2=1805054&view=diff
==============================================================================
--- gora/site/trunk/content/current/index.md (original)
+++ gora/site/trunk/content/current/index.md Tue Aug 15 05:53:31 2017
@@ -42,6 +42,7 @@ following modules are currently implemen
 * [gora-metamodel](./gora-metamodel.html): Module for [Apache MetaModel](http://metamodel.incubator.apache.org) backend and query functionality;
 * [gora-mongodb](./gora-mongodb.html): Module for [MongoDB](http://www.mongodb.org/) backend and MongoStore implementation;
 * [gora-solr](./gora-solr.html): Module for [Apache Solr](http://lucene.apache.org/solr) backend and SolrStore implementation;
+* [gora-aerospike](./gora-aerospike.html): Module for [Aerospike](http://www.aerospike.com/) backend and Aerospike implementation;
 * [gora-tutorial](./tutorial.html): The Gora LogManager tutorial;
 * gora-sources-dist: Packaging module used to build and distribute Gora sources during project releases;
 

Modified: gora/site/trunk/content/current/overview.md
URL: http://svn.apache.org/viewvc/gora/site/trunk/content/current/overview.md?rev=1805054&r1=1805053&r2=1805054&view=diff
==============================================================================
--- gora/site/trunk/content/current/overview.md (original)
+++ gora/site/trunk/content/current/overview.md Tue Aug 15 05:53:31 2017
@@ -29,3 +29,4 @@ following modules are currently implemen
 * [gora-hbase](./gora-hbase.html): Module for [Apache HBase](http://hbase.apache.org) backend and HBaseStore implementation;
 * [gora-sql](./gora-sql.html): Module for [HSQLDB](http://hsqldb.org/) and [MySQL](http://www.mysql.com/) backend and SqlStore implementation;
 * [gora-mongodb](./gora-mongodb.html): Module for [MongoDB](http://www.mongodb.org/) backend and MongoStore implementation;
+* [gora-aerospike](./gora-aerospike.html): Module for [Aerospike](http://www.aerospike.com/) backend and Aerospike implementation;