anchor.diff:  To run a __remote script__, the script entry must first be in the Infinispan remote cache.
   The name of the procedure is the key of the corresponding entry script.
   The parameter names are instead defined in the first line of the script itself.
  -For more information see http://infinispan.org/docs/dev/user_guide/user_guide.html#scripting[Infinispan Guide -Remote Script]
  +For more information see http://infinispan.org/docs/dev/user_guide/user_guide.html#scripting[Infinispan Guide - Remote Script]
   
   Whereas to run a __server task__ you need first to deploy the java task as jar on Infinispan server.
   In this case the name of the procedure is defined by `getName` method of the task service class.
  
positive.code: data to a relational database, and have less important entries use an asynchronous CacheStore,
  or none at all, to favour performance over redundancy.
  
  ==== Caches creation and Configuration
  
  The Hibernate ORM property ``hibernate.ogm.datastore.create_database`` is now supported by the dialect.
  When this property is enabled the dialect will create any missing caches on the remote Infinispan cluster.
  
  By default all caches created use the __OGM default configuration__:
  ====
  [source, XML]
  ----
  <infinispan><cache-container>
    <distributed-cache-configuration name="configuration">
       <locking striping="false" acquire-timeout="10000" concurrency-level="50" isolation="REPEATABLE_READ"/>
       <transaction locking="PESSIMISTIC" mode="%s" /> # <1>
       <expiration max-idle="-1" />
       <indexing index="NONE" />
       <state-transfer timeout="480000" await-initial-transfer="true" />
    </distributed-cache-configuration>
  </cache-container></infinispan>"
  ----
  <1> Transaction mode attribute will be filled with the value of the propery `hibernate.ogm.cache.transaction.mode`
  ====
  
  To apply a custom configuration to a newly created cache
  we need a previously defined cache or an existing __cache configuration__ on the remote Infinispan server to use as templates.
  
  There are two alternative ways to apply a cache configuration to new caches:
  
  * Using the dialect property: ``hibernate.ogm.infinispan_remote.cache_configuration``
  * Using the ``@CacheConfiguration`` annotation on Entity class
  
  The property is applied to all new caches, it means for all Entities. So property has a global scope.
  
  The annotations are applied to the new caches being used to store the respective Entities on which they are present,
  so the approach using annotations is scoped to the entity.
  
  It is possible to use a mixed approach; when both the dialect property and annotations are used the annotation takes
  precedence on the global property.
  
  [IMPORTANT]
  ====
  Any configuration being referred to when when creating new Caches need to be present on the remote Infinispan cluster,
  or an exception will thrown.
  ====
  
  Let's suppose that we have two Entities: __NoAnnotationEntity__ and __CacheConfigurationEntity__:
  
  ====
  [source, JAVA]
  ----
  import javax.persistence.Entity;
  import javax.persistence.Id;
  
  @Entity # <1>
  public class NoAnnotationEntity {
  
  	@Id
  	private String id;
  
  }
  ----
  [source, JAVA]
  ----
  import javax.persistence.Entity;
  
negative.code: the needed Caches if they are not defined.
  This is currently not allowed over the Hot Rod protocol.
  
  include::submodules/infinispan-storage-principles.asciidoc[]
  