Welcome to the new Gigaspaces XAP forum. To recover your account, please follow these instructions.

Ask Your Question

General GigaSpaces FAQ

<b>1. Technology</b>

<b>1.1 Is the solution compliant with Java?</b>
Yes, the GigaSpaces EAG is written in 100% pure Java and has been tested on Java VMs from SUN, BEA and IBM.

1. Supported platforms
<a href="http://www.gigaspaces.com/docs/doc/Supportedplatforms.htm">http://www.gigaspaces.com/docs/doc/Supported_platforms.htm</a>

<b>1.2 Is the solution compliant with .Net?</b>
Yes, the GigaSpaces EAG complies with .Net through interfaces that allow .Net programs to fully enjoy all the features of the EAG.

1. GigaSpaces .Net API
<a href="http://www.gigaspaces.com/docs/doc/DotNetAPIUserGuide.htm">UserGuide.htm</a>">http://www.gigaspaces.com/docs/doc/DotNetAPIUser_Guide.htm</a>

<b>1.3 If the solution requires a cache server, can the same server be used by .Net (or Office) and Java applications?</b>
Yes. GigaSpaces uses the same runtime for both .Net and Java. Both Java and .Net clients interact with the space through a proxy (client side driver). This architecture provides transparency from the client application perspective to the fact that the server is running in a server (remote mode) or embedded mode (collocated). The .Net package is basically a client side wrapper which uses the same underlying runtime environment as the Java layer. Therefore, it provides the same semantics and APIs as with the non-java version including the remote and embedded behavior.

1. GigaSpaces admin guide
<a href="http://www.gigaspaces.com/docs/doc/AdministrationandConfiguration.htm">andConfiguration.htm</a>">http://www.gigaspaces.com/docs/doc/AdministrationandConfiguration.htm</a>

<b>1.4 Is the programming model " SQL-oriented " or " OO-Oriented "?</b>
Both. One of the unique characteristics of the GigaSpaces cache implantation is the API virtualization. Using this characteristic, a user can apply different views on the same instance of data depending on his or her specific needs. For SQL-oriented programming the user can use JDBC interface, for an OO approach they can choose the HashTable (Map) or JavaSpaces API.
The space also exposes a hybrid mode which combines the OO API with SQL query semantics.

        1. GigaSpaces API User Guide:

<a href="http://www.gigaspaces.com/docs/doc/APIUserGuide.htm">UserGuide.htm</a>">http://www.gigaspaces.com/docs/doc/APIUserGuide.htm</a>

<b>1.5 For the " SQL-oriented " solutions, what are the supported databases?</b>
GigaSpaces can work with the following databases:
    <li>IBM Cloudscape : 3.0
    <li>Oracle : 8i, 9i
    <li>Microsoft MSSQL : SQL Server Enterprise Edition 8.0, SQL Server Personal Edition 8.0
    <li>MySql : 3.23, 4.0
    <li>Cache : 5.0
    <li>PointBase : 4.6
    <li>DB2 : 7.2, 8.1
    <li>Sybase : Sybase Adaptive Server Anywhere ; Database Engine Version
    <li>Postgres SQL : 7.3.3
    <li>HSQL : 1.7.2.
GigaSpaces also provides embedded persistency - allowing space data to be saved into a file.
In addition, GigaSpaces provides caching for all JDBC compliant databases via Hibernate Cache plug in.

       1. Persistent Space:
<a href="http://www.gigaspaces.com/docs/doc/GigaSpacesPersistentSpace.htm">PersistentSpace.htm</a>">http://www.gigaspaces.com/docs/doc/GigaSpacesPersistentSpace.htm</a>

<b>1.6 For the " OO-Oriented " solution, does a standard component for O-R mapping exist? Does it have third-party component compatibility (e.g. Hibernate)?</b>
Yes. Custom O/R mapping, as well as standard O/R mapping using integration with Hibernate and JDO.

<b>1.6.1 Does it need a specific integration?</b>
No. The Hibernate cache is natively supported by GigaSpaces.
GigaSpaces includes Cache Plug-in for the Libelis LiDO and SpadeSoft XJDO JDO implementations.

1. Custom O/R:
 <a href="http://www.gigaspaces.com/docs/doc/GigaSpacescomplexcolumnplug-in.htm">columnplug-in.htm</a>">http://www.gigaspaces.com/docs/doc/GigaSpacescomplexcolumn_plug-in.htm</a>
2. Hibernate:
<a href="http://www.gigaspaces.com/docs/doc/HibernateCache.htm">http://www.gigaspaces.com/docs/doc/Hibernate_Cache.htm</a>
3. JDO:
<a href="http://www.gigaspaces.com/docs/doc/JDOcache.htm">http://www.gigaspaces.com/docs/doc/JDO_cache.htm</a>

<b>1.7 Does the product provide specific benchmark tools?</b>
GigaSpaces EAG provides extensive benchmark tools that could be used out of the box:
<li>Benchmark source code - provided under GigaSpaces examples/Getting Started/benchmark directory.
<li>GUI based benchmark tool provided with the SpaceBrowser utility.

1. <a href="http://www.gigaspaces.com/docs/doc/GigameterUserManual.htm">UserManual.htm</a>">http://www.gigaspaces.com/docs/doc/GigameterUserManual.htm</a>

This thread was imported from the previous forum.
For your reference, the original is available here

asked 2005-12-05 17:44:02 -0500

eugene berman gravatar image

updated 2013-08-08 09:52:00 -0500

jaissefsfex gravatar image
edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

<b>2. Physical deployment</b>

<b>2.1 Do you support different levels of cache? One that's local to the client and another to a cache server?</b>
Yes. This configuration is defined as a master/local cache configuration. In fact a client can move from a pure remote client (i.e. all operations are done remotely) to local/master or even all local transparently simply by specifying different URL's to the SpaceFinder utility. From a user's perspective the use of the master/local configuration basically means that all operations will be directed to the local cache before it goes to the master cache.

1. The SpaceFinder utility
<a href="http://www.gigaspaces.com/docs/JavaDoc/com/jspaces/core/client/SpaceFinder.html">http://www.gigaspaces.com/docs/JavaDoc/com/j_spaces/core/client/SpaceFinder.html</a>

2. The Distributed Cache architecture
<a href="http://www.gigaspaces.com/docs/doc/DistributedCacheOverview.htm">CacheOverview.htm</a>">http://www.gigaspaces.com/docs/doc/DistributedCacheOverview.htm</a>

answered 2006-01-16 12:12:03 -0500

eugene berman gravatar image
edit flag offensive delete link more


3. Notification and updates

3.1 Can the data source be updated without passing through the applicative context and the cache ever being coherent (for example: updates the database with SQL scripts)? Yes. This would require capturing the changes performed in the database (through triggers or any other mean available) in order to feed the cache. In a distributed cache topology only the master cache needs to be updated with this change. The master cache will propagate the changes to all the client cache instances automatically. When we make multiple SQL update on the database, we have to keep the integrity of the data, e.g. all the SQL notifications have to be propagated within the same transaction to the cache. GigaSpaces master cache can be updated via JMS, JDBC or the JavaSpaces API with database updates. In other words the triggers from the database need to propagate the updates only once to the master cache and then the change will be propagated automatically to the rest of the local cache instances.

References: 1. http://www.gigaspaces.com/docs/doc/Data_Grid_Caching.htm

3.1.1 How much time is required between the data source update and the cache notification? With a 100M/1G network GigaSpaces notifications are less than 1msec. This leaves us plenty of time for an asynchronous update.

References: 1.GigaSpaces Benchmark report: http://www.gigaspaces.com/benchmarks.htm 2. Benchmark Example: http://www.gigaspaces.com/samplesindex4_0.htm#_Getting_Started_1 3. GigaMeter - GUI based benchmark tool http://www.gigaspaces.com/docs/doc/Gigameter_User_Manual.htm

3.3 How (using which protocol) is the notification realized? Is it native or middleware based? The JavaSpace Notify model. We support multicast and unicast notification. See: http://www.gigaspaces.com/docs/doc/no...http://www.gigaspaces.com/docs/doc/Mu... We also provide a network plug-in (Stub Handler) that enables integration with other protocols. An example that describes how this integration can be done is provided with the CORBA wrapper example as well as the stub-handler example: 1. CorbaSpace: /examples/Integration/corbaspace 2. Stub Handler: /examples/Integration/stubHandler

References: 1. http://www.gigaspaces.com/docs/doc/notifications_intro.htm 2. http://www.gigaspaces.com/docs/doc/Multicast_Notifications.htm

3.4 Can we use Tibco Rendez-vous? Yes. There are several approaches in which this could be done. The simplest one would be to write a Tibco listener that will receive events from a tib channel and write to the space. We have done such integrations in the past with several accounts and it has been very successful.

3.5 Configuration of notifications

3.5.1 Can we send only the primary key of the invalidated objects? Yes. This is done implicitly using the pull update policy.

3.5.2 Can we send the full objects for directly update the caches? Yes. This is done implicitly using the push mode update policy.

References: 1. For more details on the push/pull update mode see the following page: http://www.gigaspaces.com/docs/doc/The_Cache_Update_Algorithm.htm

3.6 ...(more)

eugene berman gravatar imageeugene berman ( 2006-01-16 12:13:03 -0500 )edit

4. Performance

4.1 Can one define a threshold from which the application refuses client request (for example if data has been invalidated for more than 5 minutes)? Yes.


4.2 What is the limitation in terms of the number of clients for the solution? What is the limitation in terms of the number of requests per second? GigaSpaces provide support for NIO. NIO uses non-blocking I/O operations. According to our internal tests our NIO server can scale up to 10,000 concurrent connections. This number is dependent on the specific machine configuration and the OS setup. In remote mode the space can provide a 10,000 request/sec throughput. In embedded mode the space can provide a 100,000 request/sec throughput.

4.3 Does the solution authorize the preloading of cached data at the startup of the cache component? Yes. References: 1. In process using the filter mechanism: http://www.gigaspaces.com/docs/doc/Sp... 2. Cluster initialization using the memory recovery policy. http://www.gigaspaces.com/docs/doc/De...

4.4 Does it allow the preloading without soliciting the data source (for example with file backup or other clustered instances request)? Yes. References: See 4.3 above

4.5 Can we use a local file cache for the preloading?
Yes. The master cache can be configured to be persistent. In this case the cache data will be stored in a file.

4.6 Can we use other cache instances (in the case of a clustered cache)? Yes. References:http://www.gigaspaces.com/docs/doc/GigaSpaces_cluster.htm

eugene berman gravatar imageeugene berman ( 2006-01-16 12:14:01 -0500 )edit

5. Segregation of the cache families

5.1 Can we define different cache families in the same OS process? Yes. A space is running within a container. A container is allocated per VM and manages the life cycle (create, destroy, start, stop, clean) of the space/cache. A container can manage several space/cache instances. Each space/cache instance has its own configuration setup.

References: 1. Container configuration: http://www.gigaspaces.com/docs/doc/Space_container_overview.htm

5.2 Can we allow for a cache region to load the entire associated data (mirroring)? Yes. There are several ways in which this is done, cluster replication memory recovery, Persistent space, as well as explicit pre-load (See section 4.9 above for more details). In a persistent cache there is an ALL_IN_CACHE policy which means that the cache will load ALL the data from the persistent storage to the cache. In addition to that GigaSpaces provides a filter mechanism which enables custom pre-loading logic i.e. users can write their own code which manages the pre-loading process.

References: 1. Replication Overview: http://www.gigaspaces.com/docs/doc/Replication.htm 2. Recovery overview: http://www.gigaspaces.com/docs/doc/Recovery_From_A_Replication_Partner.htm 3. Memory Management - (Cache policy): http://www.gigaspaces.com/docs/doc/Advanced_Memory_Management_tab__cache_manager_and_memory_manager.htm 4. Cluster replication memory recovery overview: http://www.gigaspaces.com/docs/doc/Recovery_From_A_Replication_Partner.htm

5.3 Is it possible to request the data in the cache other than by the primary key (secondary key, indexed fields, etc.)? Yes. GigaSpaces provides different APIs that provides different levels of query semantics. However all are using the same underlying object query engine. The HashTable API supports queries by id only. The space API supports query by template (class name, inheritance, attribute equality matching), SQL query, and Regular expression query. The JDBC API provides SQL query support with some limitations. In addition, GigaSpaces provides the ability to control the level of replication of entries based on their content. By default, all data and operations are replicated to all target spaces that belong to the same replication group (symmetrical replication). You can define replication granularity to start at the space level and end up at the entry level. Below are the different replication granularity options:

  • Space level replication - using the replication transmission matrix you can setup asymmetrical replication relationships where only specific operations are replicated from a source space to specific target space(s).
  • Class level replication - using the partial replication option and the com.j_spaces.core.client.Ireplicatable tag interface, these replicate only specific class instances.
  • Entry Level replication - using the Replication filter, you can block specific entries from being replicated.

References: 1. http://www.gigaspaces.com/docs/doc/Querying_the_Space.htm

5.4 Can we define thresholds of resources per region (number of objects in memory, memory occupation)? Yes: The threshold can be defined by the number of objects, the memory utilization and the time when the object is stored. The configuration can be defined once for all client local cache instances and for ...(more)

eugene berman gravatar imageeugene berman ( 2006-01-16 12:16:00 -0500 )edit

6. Deployment

6.1 Can the solution be deployed over a WAN? Yes. Deploying over WAN is supported through the following features:

  • Bandwidth utilization
    • Bandwidth optimization is achieved through batching of multiple requests into a single remote call using asynchronous replication. In addition, specific compression is done to reduce the amount of data that is passed over the wire.
    • The replication filter can be used to provide a custom mechanism via which users can intercept messages between different peers in the network. This mechanism can be used to reduce the amount of data being passed over the wire.
  • Protocol
    • GigaSpaces cache can be configured to use unicast as well as multicast support on a per connection basis. This configuration can be changed at any point in time without any effect on the application code.
  • Connection/Data recovery after a failure
    • Each connection maintains a redo-log. Each redo-log maintains all the data that was not replicated between two peers. Once the connection is re-established, the log is re-transmitted. The application can choose also to capture the current state instead of getting the entire event log using the memory recovery configuration.
  • Security
    • Security is provided through username/password authentication as well as the network (SSL). In addition, GigaSpaces provides a unique security feature, content based security. Using this model users that share the same access roles to a space instance can be blocked for access on specific object based on the object type or attribute values.
    • Replication filter can control the data that will be replicated between the replication peers using custom plug-in provided by the user.
References: 1. Replication policy: http://www.gigaspaces.com/docs/doc/Defining_a_replication__policy.htm6.2 What is the memory size limitation of the cache? The memory size limitation is dependent on the space configuration:
  • Single Embedded Space: Physical memory availability and OS Process limitation (2-4G in 32 bit machine, unlimited in 64 bit machine)
  • Single Persistent Space: Capacity is dependent on the disk drive. The size of the cache can be limited to the amount of memory that is available on the machine without limiting the overall cache capacity i.e. the disk will be used as a virtual memory. The ratio between the amount of data stored in disk and the amount of data in-memory will affect the overall performance. The impact of this ratio is dependent on the cache "hit rate".
  • Partitioned Cache: In this case each instance of space/cache contains part of the data. The partitioning is done implicitly using a hash-based load balancing policy. In this mode the capacity of the cache is limited to the capacity of all cache instances on each machine.
eugene berman gravatar imageeugene berman ( 2006-01-16 12:17:05 -0500 )edit

7. High Availability

7.1 Is the solution highly available? Yes. GigaSpaces provides an enhanced solution for high availability using a peer to peer clustering architecture. This architecture is based on three main policies:

  • Replication - defines the data passed between all instances.
  • Load balancing - defines the distribution of operations and data between instances.
  • Fail-over - defines the backup spaces/caches relationship.

The one-click-cluster feature provides a simple means for configuring high availability. This will auto-generate the above policies (replication, load balancing, fail-over) and the scripts required to run the backup space/cache.


7.2 Does the solution guarantee the coherence of the cached data and the data source? GigaSpaces provides various means for controlling the coherence of cache instances. For best coherence it is recommended that all updates to both the cache and the data source will be maintained by the space.

7.3 What happens in the event of failure or network overload? In replicated and distributed cache configuration the space maintains a redo-log per connection. In the event of a network failure all the operations will be logged and once the connection is resumed all operations will be pushed back in the order in which they where written.

7.4 Are there any SPOFs (Single Points of Failure)? GigaSpaces provides a full clustering solution which is implemented in pure software architecture. The solution is not dependent on disks or other resources or third party product. SPOF are covered in configuration, discovery, initialization and runtime stages of the system.

eugene berman gravatar imageeugene berman ( 2006-01-16 12:18:02 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2005-12-05 17:44:02 -0500

Seen: 247 times

Last updated: Jan 16 '06