5 Replies Latest reply on Mar 10, 2015 4:22 PM by Ramesh Reddy

    Caching layer - Infinispan?

    Mark Allison Newbie

      We are looking at virtualizing across an Oracle data warehouse and a SQL Server data warehouse. We are concerned about performance of the databases and want to provide an intelligent caching layer as well as virtualizing across 2+ data sources. Would infinispan with Teeid be a good fit here? I'm thinking of using Red Hat Data Virtualization and Red Hat Data Grid together. In terms of technical architecture, if I use infinispan as a caching layer do I need teeid?

       

      Would I implement like:

      Gui->Teeid->Infinispan->Data Sources

       

      or

       

      Gui->Infinispan->Teeid->Data Sources?

       

      Thanks.

        • 1. Re: Caching layer - Infinispan?
          Van Halbert Master

          Just to clarify something, Teiid supports JDG 6, not Infinispan, as a data source.  Unfortunately, there are api differences between the project and product, for which we have chosen to integrate JDG.   Also, the Infinispan version provided in EAP is not meant for storing application data, and will not be supported for those use cases.

           

           

          Moving on to your use case, you can use Teiid for external materialization of data sources into JDG.    And then use any option Teiid provides for exposing that data to your applications.

           

          Van

          • 2. Re: Caching layer - Infinispan?
            Ramesh Reddy Master

            Mark,

            Would I implement like:

            Gui->Teeid->Infinispan->Data Sources

            or

            Gui->Infinispan->Teeid->Data Sources?

            That depends on your application architecture. Infinispan is key/value store, so your application(s) be written for that or for access to JPA entities, do you need JDBC/ODBC access with SQL based querying. Infinispan querying is different. What are your transnational needs? etc.

             

            Now, given all that Teiid can cache as you may know through materialization. For external materialization you can use JDG (not Infinispan as Van indicates). If you want to use Infinispan, then you may have to redo some parts of this translator/connector in Teiid code base to reflect the API changes to account for the version differences. One important thing to note that, even at the end, the cache store is storing the Teiid view data as protobuf based objects in its store.

            • 3. Re: Caching layer - Infinispan?
              Van Halbert Master

              Regarding storing protobuf based objects, if using JDG in library mode, protobuf's are not involved.

              • 4. Re: Caching layer - Infinispan?
                Mark Allison Newbie

                I am interested in JDG and JDV not the open source products, I thought they were the same thing except for the support model (like RHEL and CentOS). Anyway, we would be interested in SQL based querying, we don't have a ORM layer so would that make JDG unsuitable? I am looking for a solution that can abstract and cache two data warehouses and wondered if JDV and JDG would be candidate products to look at to achieve this.

                • 5. Re: Caching layer - Infinispan?
                  Ramesh Reddy Master

                  You right JDG and JDV are both products. Infinispan is upstream project for JDG, and Teiid is upstream project for JDV. Upstream projects are LGPL2 licensed.

                   

                  Now both upstream projects and as well as products can be downloaded from the project's web site or jboss.org (for products). The difference is the usage of the upstream projects is not any way limited. However, the products are *only* licensed to be used in development and not in production.

                   

                  So, now you can download the corresponding product versions. Yes, if you want SQL based querying then that is not available in JDG. The querying (currently) is more like JPA or key/value look ups. What you need is JDV first for integration layer. So I suggest, you start with that, and use internal materialization. If that satisfies your need, then that is good. If you want to pursue materialization to JDG, then follow external materialization with JDG.