[JBoss JIRA] (TEIID-2542) Utilize Teiid internal resultset buffering as a materialization mechanism to Infinspan
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2542?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-2542:
---------------------------------------
> Add support for materialization to Infinispan by utilizing the Teiid internal buffering mechanism to Infinispan.
This may be saying a couple of things.
1. Use infinispan for buffering - see TEIID-2169 The short story is that infinispan is neither adaptable enough nor does their file storage strategy offer high enough performance for us to use infinispan for arbitrary buffering (which is generally low reuse high-read/high-write/high-disk use/highly local).
2. Allow internal materialization to use infinispan. That is also touched on by TEIID-2169. This is more doable and the usage pattern fits better (high-read/low-write/replicated) however their is a mismatch between what Teiid is offering and what Infinispan is typically used for. We would either - treat each row as a cache entry and delegate indexing operations to infinispan (which is not a great fit) or make further refinements to our table structure so that the pages could be replicated, but otherwise all logic against them is performed by Teiid. The latter is probably the appropriate approach, but is really just using infinispan as blob storage. Other possibilities include attacking the problem through a modification to the storage layer of h2 or derby - and converting internal materialization logic over to just targeting a "db".
> Suggestion, turn that mechanism into a translator that can read/write to Infinispan.
That already exists via a generic cache as a map paradigm.
> distributed data-grid fail-over and HA could be less costly than trying to do this with a database.
Specifically as a replacement for external materialization. Teiid does not have a great story there anyway since we take a hands off approach. In theory you could use "external" materialization with the existing logic by adding appropriate insert/update logic (and a simple way to target a map or list data model) to the infinispan translator. Ideally there would be a way to add secondary search indexes (although I'm not sure how that would work with a simple data model) and if the additional overhead with using the arraytable/objecttable constructs is too mush some additional handling would need pulled into the translator.
> improved performance where each Infinispan instance could placed closer to its' users.
As an external materialization replacement yes. As an internal materialization replacement, the performance impact is more around minimizing the replication of data (since teiid is using shared nothing instances on each node) and possibly increasing hit ratios - however the amount of memory dedicated to infinispan will vary greatly based upon the implementation paradigm with page/blob storage we have a highly predictable memory footprint. With individual rows memory utilization could vary wildly and without additional tweaking of eviction strategies could lead to default settings that are too conservative and would result in poorer performance.
The title of the issue also mentions:
> Teiid internal resultset buffering
This may be referring to 1 above or could also be indicating result set caching. If it's the latter, that is also a possibility to target to infinispan, but here again we have a forced fit. JBoss Cache and earlier infinispans there wasn't a great mechanism to large object storage other than to just store the object in it's batches, which complicates eviction as removing any batch from a result invalidates the whole result.
> Utilize Teiid internal resultset buffering as a materialization mechanism to Infinspan
> --------------------------------------------------------------------------------------
>
> Key: TEIID-2542
> URL: https://issues.jboss.org/browse/TEIID-2542
> Project: Teiid
> Issue Type: Feature Request
> Components: Misc. Connectors
> Reporter: Van Halbert
> Assignee: Ken Johnson
>
> Add support for materialization to Infinispan by utilizing the Teiid internal buffering mechanism to Infinispan. Suggestion, turn that mechanism into a translator that can read/write to Infinispan.
> Pro's:
> - distributed data-grid fail-over and HA could be less costly than trying to do this with a database.
> - improved performance where each Infinispan instance could placed closer to its' users.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 9 months