layout | title | categories |
---|---|---|
post |
Solutions, Patterns & Best Practices |
SBP |
This section contains GigaSpaces XAP known patterns, solutions and best practicees that we've accumulated over time based on numerous real life use cases. Each pattern is listed with its author/origin, and the XAP product version that it was tested with.
{% note title=Important Note%}The patterns below are presented as is. While most of them are used in real life use cases and productions environments, and GigaSpaces is making its best effort to keep them up to date, they should not be considered as fully productized artifacts, and you should test them in your own environment before using them.{% endnote %}
{: .table .table-bordered}
Pattern | Level | Description |
---|---|---|
Kafka Integration | Advanced | This pattern explains how to integrate XAP with Kafka. |
Cache Interface | Beginner | This pattern explains how to implement a cache interface using the Map API. |
Moving from Hibernate to Space | Beginner | Moving from Database Centric into In-Memory Model. Can be used when moving from J2EE Session Bean into XAP. |
Finding Partition Load | Beginner | Monitoring Data Grid partitions in real time. |
Even Data Distribution | Beginner | Technique to ensure even data load-balancing with partitioned IMDG. |
Space Object Modeling | Beginner | Migrating Relational Model into Object model. |
Oracle Delta Server | Beginner | This pattern presents the Oracle Delta Server allowing the data grid to receive updates from the database conducted by applications that are not using the data grid as their system of record (Non-Aware Data-Grid Clients) |
Excel that Scales Solution | Beginner | Leveraging GigaSpaces .Net API to scale Excel applications. |
Global ID Generator | Beginner | Replacing Database sequencing with lightweight In-Memory ID Generator. |
Web Service PU | Beginner | Web Service Processing Unit. Using the CXF Framework. |
ODBC Driver | Beginner | Accessing GigaSpaces Data Grid via 3rd party ODBC Driver. |
IMDG with Large Backend Database Support | Advanced | Leveraging IMDG running in LRU mode with large backend Database. |
DB2 Delta Server | Advanced | This pattern presents the DB2 Delta Server allowing the data grid to receive updates from the database conducted by applications that are not using the data grid as their system of record (Non-Aware Data-Grid Clients) |
Dynamic Polling Container Templates using TriggerOperationHandler | Advanced | Polling Containers using TriggerOperationHandler |
Custom Matching | Advanced | Implementing complex customized queries for pattern matching. |
Custom Eviction | Advanced | Implementing used defined data eviction when using large backend Database. |
Lowering the Space Object Footprint | Advanced | Implementing compaction API to reduce the object footprint when storing objects with large numeric values. |
Rapid Data Load | Advanced | Loading large amount of data into each partition using Map-Reduce technique. |
Schema Evolution | Advanced | Leveraging different techniques to enhance the application data model without IMDG downtime. |
Distributed Bitmap | Advanced | Use XAP to distribute a bitmap across a partitioned cluster. |
Modeling your data | Beginner | Moving from a centralized to a distributed data store. |
{: .table .table-bordered}
Pattern | Level | Description |
---|---|---|
Map-Reduce Pattern - Executors Example | Beginner | Implementing Task Executors and Service Executors to perform parallel queries or parallel processing across multiple IMDG partitions. Can be used when moving from J2EE EJB/RMI/IIOP into XAP. |
Master-Worker Pattern | Beginner | Grid computing pattern. Implementing distributed processing across multiple workers deployed into the Grid. |
Event Driven Remoting Example | Beginner | Request-Response pattern. Implementing asynchronous remove service invocation. Can be used when moving from J2EE MDB into XAP. |
Mule ESB Example | Advanced | Scaling ESB based application. Using the IMDG as the ESB state repository. Deploying the ESB into the GigaSpaces grid allowing it to scale in an elastic manner. |
Priority Based Queue | Advanced | Messaging based pattern. Can be used when moving from J2EE JMS Quality of Service into XAP. |
Parallel Queue Pattern | Advanced | Messaging based pattern. Can be used when moving from J2EE JMS Service Activator Aggregator Strategy/MDB into XAP. |
Unit Of Work | Advanced | Messaging based pattern. Can be used when moving from J2EE JMS Unit of Order into XAP. |
Drools Rule Engine Integration | Advanced | Scaling business rule management system based application. |
Spring Batch PU | Advanced | Complex Batch Processing using Spring Batch. |
JTA-XA Example | Advanced | Integrating GigaSpaces with an external JMS Server using XA. Atomikos is used as the JTA Transaction provider. Apache ActiveMQ is used as a the JMS provider. |
{: .table .table-bordered}
Pattern | Level | Description |
---|---|---|
Embedding Tomcat as a Web Container | Beginner | This article presents embedding Tomcat 7 within the XAP data grid |
Embedding XAP for OEMs | Beginner | A quick and simple example of how an OEM might embed GigaSpaces XAP for customer use. |
Universal Deployer | Beginner | Allows deploying composite applications. Support multiple processing unit dependency based deployment. |
Data-Collocation Deployment Topology | Beginner | Considerations which topology to choose when deploying both business logic and data into the Grid. |
Mirror Monitor | Beginner | Monitoring asynchronous persistency behavior in real time using JMX. |
Safe Grid Shutdown | Beginner | Cleanly shutting down the grid after all async replication operations are committed. |
Hyperic integration | Beginner | Hyperic monitoring integration example. |
Primary-Backup Zone Controller | Beginner | Using Zones to control Data-Grid primary/backup instances location. |
RESTful Admin API | Beginner | Using web services to monitor and administrate GigaSpaces. |
JMX Space Statistics | Beginner | Using JMX to expose space statistics. |
Space Dump and Reload | Beginner | Using the administration API to dump the space data into a file and reload it back. |
Scaling Agent | Beginner | Using the administration API to scale web applications. Can be used when moving J2EE Web applications into XAP elastic Web Container. |
Web Load Balancer Agent PU | Advanced | Using the administration API to build customized HTTP load-balancer agent. Can be used when moving J2EE Web applications into XAP elastic Web Container. |
Moving into Production Checklist | Advanced | All what you need to review before moving your system into production. |
Capacity Planning | Advanced | Considerations for sizing your system before moving into production. |
Refreshable Business Logic Example | Advanced | Using the administration API to reload new application code (hot deploy) while the application is running. |
Recipes For XAP Cloud Deployment | Advanced | Recipes For XAP Cloud Deployment. |
Puppet to install and configure XAP | Advanced | This pattern explains how to use Puppet to install and configure XAP. |
{: .table .table-bordered}
Pattern | Level | Description |
---|---|---|
Clusters Over WAN | Beginner | Example for WAN replication implementation. |
WAN Gateway Pass Through Replication | Beginner | Example for implementing a pass through WAN replication topology. |
WAN Gateway Master Slave Replication | Beginner | Example for implementing a single-master/multi-slave replication topology. |
Observable WAN | Advanced | Monitor and measure the replication performance of a multi-site deployment. |
{: .table .table-bordered}
Pattern | Level | Description |
---|---|---|
Elastic Distributed Calculation Engine | Advanced | Elastic Distributed Calculation Engine implementation using Map-Reduce approach. |
Trading Settlement | Advanced | A trading settlement system where the entire tier-based architecture is built on GigaSpaces. |
Mainframe Integration | Advanced | GigaSpaces XAP can simplify the migration effort from mainframe based systems and reduce the cost of the legacy applications. GigaSpaces XAP act as a front-end layer for mainframe based systems may boost the system performance and improve the overall system response time on peak load. |
Global Http Session Sharing | Advanced | Global HTTP Session Sharing allows transparent session replication between remote sites and sharing between different application servers in real-time. |