Scaling Vuu - How to abstract Vuu interfaces to allow different implementations of key classes by adding "features" on construction. #971
Replies: 4 comments 1 reply
-
Agreed, I would also add:
|
Beta Was this translation helpful? Give feedback.
-
In addition to the previous list of interfaces: DataTable
ViewPort
ViewPortKeys() //work in progress
Provider
JoinManager
LoginValidator
Authenticator We would also need: Filter
Sort This would be required as the filter and sort functionality would be delegated down to the big data solution, rather than performed in memory. |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
In context of project structure for plugins and big data Currently
This means when we want to test some of the core functionalities for the virtual table use case, we can't have the test in the vuu core area - e.g. test for type ahead RPC function using in memory is under Vuu but type ahead RPC function for virtual table has to be in the virtualized-table-plugin Proposal
This ensures that
|
Beta Was this translation helpful? Give feedback.
-
Introduction
Vuu is currently a largely in memory, near caching solution for UIs. In order to allow Vuu to scale to large data sets (10bn rows) we cannot cache all the data in memory, we need to be able to use big data stores, and move a remote cursor around in that data set as users scroll.
In order to facilitate this requirement we have started to think about Vuu rather than as a deeply entwined 'core' library, but more as a series of internal interfaces. Some examples of these interfaces are:
If we take the first 5 interfaces, these relate to how we store and join data in memory. When we move to a paradigm where all the data is not in memory, but simply a window of the data is in memory, we will need to provide different implementations of these interfaces to facilitate this.
Features & Plugins
Features, as described here, are a way of grouping alternative implementations to some or all of the above interfaces with non standard implementations. For example, we may want to have the situation where we want to back Tables and Viewports by a Big Data store. In this case we would want to have some construct, conceptually like below, where a user could "plugin" a different implementation to use.
Example:
We would then have a plugin type, that would allow the provision of some or all of these interfaces:
Beta Was this translation helpful? Give feedback.
All reactions