-
Notifications
You must be signed in to change notification settings - Fork 0
Common Configuration
This page provides information on different configurations you would require to make (irrespective of datastore under use) in order to use Kundera.
Kundera (or any JPA provider for that matter) requires you to define persistence units in this file. It must be put under META-INF folder in your classpath. Here are things to keep in mind:
- You must set Persistence Provider to: com.impetus.kundera.KunderaPersistence
- Below are the properties that you need to define under properties tag.
kundera.nodes: Node(s) on which your NoSQL database server is running
kundera.port: NoSQL database port
kundera.keyspace: Database schema
kundera.dialect: Used by Kundera to determine persistence provider implementation. Possible values are cassandra, hbase and mongodb.
kundera.client.lookup.class: This is used by Kundera to find low level data-store specific dialect class that it uses to perform operations on underlying datastore. Possible values are:
- For Cassandra: com.impetus.client.cassandra.pelops.PelopsClientFactory OR com.impetus.client.cassandra.thrift.ThriftClientFactory (PelopsClient used scale7-pelops library while ThriftClient uses Cassandra Thrift library)
- For HBase: com.impetus.client.hbase.HBaseClientFactory
- For MongoDB: com.impetus.client.mongodb.MongoDBClientFactory (uses mongo-java-driver from here)
- For RDBMS: com.impetus.client.rdbms.RDBMSClientFactory (uses hibernate library)
kundera.cache.provider.class: This is L2 cache implementation class. It should be set to com.impetus.kundera.cache.ehcache.EhCacheProvider or your own cache provider class if you chose to make your own.
kundera.cache.config.resource: File containing L2 cache configuration.
kundera.ddl.auto.prepare (Optional): This is used by Kundera to automatically generate schema and tables for all entities within a given persistence unit. Possible options are:
- create: Drops(if exists) schema and then creates schema/ tables based on entity definitions.
- create-drop: Drops(if exists) schema, creates schema/ tables based on entity definitions and finally drops schema after operation ends.
- update: Updates schema/ tables based on entity definition.
- validate: Validates schema/ tables based on entity definition. Throws SchemaGenerationException if validation fails.
kundera.pool.size.max.active (Optional): Cap on the number of object instances managed by the pool per node.
kundera.pool.size.max.idle (Optional): Cap on the number of "idle" instances in the pool.
kundera.pool.size.min.idle (Optional): Minimum number of idle objects to maintain in each of the nodes.
kundera.pool.size.max.total (Optional): Cap on the total number of instances from all nodes combined.
index.home.dir (Optional): Directory path where you intend to store Lucene indexes (if you chose to use lucene indexes instead of inbuilt secondary indexes provided by underlying datastore).
kundera.client.property (Optional): Name of database-specific configuration file that must be in classpath. For more, see Data store Specific Configuration.
kundera.batch.size (Optional): Batch size in integer for bulk insert/ update.
kundera.username (Optional): User name to authenticate to for Cassandra and MongoDB.
kundera.password (Optional): Password for login authentication for Cassandra and MongoDB.
-
Datastores Supported
- Releases
-
Architecture
-
Concepts
-
Getting Started in 5 minutes
-
Features
- Object Mapper
- Polyglot Persistence
- Queries Support
- JPQL (JPA Query Language)
- Native Queries
- Batch insert update
- Schema Generation
- Primary Key Auto generation
- Transaction Management
- REST Based Access
- Geospatial Persistence and Queries
- Graph Database Support
-
Composite Keys
-
No hard annotation for schema
-
Support for Mapped superclass
-
Object to NoSQL Data Mapping
-
Cassandra's User Defined Types and Indexes on Collections
-
Support for aggregation
- Scalar Queries over Cassandra
- Connection pooling using Kundera Cassandra
- Configuration
- [Kundera with Couchdb] (https://github.com/impetus-opensource/Kundera/wiki/Kundera-with--Couchdb)
- [Kundera with Elasticsearch] (https://github.com/impetus-opensource/Kundera/wiki/Kundera-with-Elasticsearch)
- [Kundera with HBase] (https://github.com/impetus-opensource/Kundera/wiki/Kundera-with-HBase)
- [Kundera with Kudu] (https://github.com/impetus-opensource/Kundera/wiki/Kundera-with-Kudu)
- [Kundera with MongoDB] (https://github.com/impetus-opensource/Kundera/wiki/Kundera-with-MongoDB)
- [Kundera with OracleNoSQL] (https://github.com/impetus-opensource/Kundera/wiki/Kundera-OracleNoSQL)
- [Kundera with Redis] (https://github.com/impetus-opensource/Kundera/wiki/Kundera-over-Redis)
- [Kundera with Spark] (https://github.com/impetus-opensource/Kundera/wiki/Kundera-with-Spark)
-
Extend Kundera
- Sample Codes and Examples
- [Blogs and Articles] (https://github.com/impetus-opensource/Kundera/wiki/Blogs--and-Articles)
-
Tutorials
* Kundera with Openshift
* Kundera with Play Framework
* Kundera with GWT
* Kundera with JBoss
* Kundera with Spring
-
Performance
-
Troubleshooting
-
FAQ
- Production deployments
- Feedback