Unlocking Analysis Ready Cloud Optimized (ARCO) file format in the OpenVisus Framework and NSDF-Data-Portal Update
OpenVisus
OpenVisus Viewer |
Jupyter Notebook / OpenVisus Python package |
JavaScript Web Viewer |
Current OpenVisus Approach
Current OpenVisus Approach
(i) First try to read data from local storage
Current OpenVisus Approach
(i) First try to read data from local storage
(ii) The block is already locally stored
Current OpenVisus Approach
(i) First try to read data from local storage
(ii) The block is already locally stored
(ii) The block isn't cached locally, request the data from the server
Current OpenVisus Approach
(i) First try to read data from local storage
(ii) The block is already locally stored
(ii) The block isn't cached locally, request the data from the server
Current OpenVisus Approach
(iii) The server reads the block from the disk
(i) First try to read data from local storage
(ii) The block is already locally stored
(ii) The block isn't cached locally, request the data from the server
Current OpenVisus Approach
(iii) The server reads the block from the disk
(iv) The block is returned to the server
(i) First try to read data from local storage
(ii) The block is already locally stored
(ii) The block isn't cached locally, request the data from the server
(v) The server finds the data and returns it
Current OpenVisus Approach
(iii) The server reads the block from the disk
(iv) The block is returned to the server
(i) First try to read data from local storage
(ii) The block is already locally stored
(ii) The block isn't cached locally, request the data from the server
(v) The server finds the data and returns it
(vi) cache the new data and return it
Current OpenVisus Approach
(iii) The server reads the block from the disk
(iv) The block is returned to the server
(i) First try to read data from local storage
(ii) The block is already locally stored
(ii) The block isn't cached locally, request the data from the server
(v) The server finds the data and returns it
(vi) cache the new data and return it
Current OpenVisus Approach
(iii) The server reads the block from the disk
(iv) The block is returned to the server
(i) First try to read data from local storage
(ii) The block is already locally stored
(ii) The block isn't cached locally, request the data from the server
(v) The server finds the data and returns it
(vi) cache the new data and return it
Current OpenVisus Approach
(iii) The server reads the block from the disk
(iv) The block is returned to the server
What is Analysis Ready Cloud Optimized (ARCO)
Analysis Ready
Cloud Optimized
Enabling ARCO in OpenVisus
OpenVisus limitations
OpenVisus + ARCO
OpenVisus + ARCO
OpenVisus + ARCO
(i) First try to read block from local storage
OpenVisus + ARCO
(i) First try to read block from local storage
(ii) The block is already locally stored
OpenVisus + ARCO
(i) First try to read block from local storage
(ii) The block is already locally stored
(ii) The block isn't cached locally, retrieve from object storage
OpenVisus + ARCO
(i) First try to read block from local storage
(ii) The block is already locally stored
(ii) The block isn't cached locally, retrieve from object storage
(iii) Return the block from object storage
OpenVisus + ARCO
(i) First try to read block from local storage
(ii) The block is already locally stored
(ii) The block isn't cached locally, retrieve from object storage
(iv) cache the new data and return the block
(iii) Return the block from object storage
OpenVisus + ARCO
(i) First try to read block from local storage
(ii) The block is already locally stored
(ii) The block isn't cached locally, retrieve from object storage
(iv) cache the new data and return it
No need for a server
(iii) Return the block from object storage
Sharded Data
Optimal Block Size to maximize bandwidth: [1,8] MB
Similar to Commercial Company Block Size
ARCO Compatibility
With Proper Client Caching results are indistinguishable across ARCO supported frameworks
| ARCO |
OpenVisus Viewer | YES |
Python code | YES |
Jupyter Notebook | YES |
JavaScript Web Viewer | NO |
Future Work
Sharing Jupyter Notebook Data Visualizations to the Web (NSDF-Data-Portal)
Sharing Interactive Visualizations through the Web
Interactive Visualization and Exploration in the Browser
GitHub Repository
Repository for Jupyter Notebooks
Python Script
Reads in notebooks from GitHub and automatically servers them to the web
Flask and Bokeh
Share interactive visualizations on a centralized website
Web Access
Notebook Storage
Easy to add Notebooks
Live Demo
Live Demo
Data Portal Links
The GitHub repository the example data portal servers reades files from: https://github.com/okoppe/Juypter-Notebook-Repo
Source code for data portal: https://github.com/okoppe/NSDF-Data-Portal
Acknowledgments
This research was supported by the National Science Foundation (NSF) under grant numbers #2138811; the Extreme Science and Engineering Discovery Environment (XSEDE) under allocation TG-CIS210128; Chameleon Cloud under allocation CHI- 210923; and IBM through a Shared University Research Award.