<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>computational storage | UCSC OSPO</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/tag/computational-storage/</link><atom:link href="https://deploy-preview-1007--ucsc-ospo.netlify.app/tag/computational-storage/index.xml" rel="self" type="application/rss+xml"/><description>computational storage</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Mon, 07 Nov 2022 10:15:56 -0700</lastBuildDate><image><url>https://deploy-preview-1007--ucsc-ospo.netlify.app/media/logo_hub6795c39d7c5d58c9535d13299c9651f_74810_300x300_fit_lanczos_3.png</url><title>computational storage</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/tag/computational-storage/</link></image><item><title>Eusocial Storage Devices</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/eusocial/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/eusocial/</guid><description>&lt;p>As storage devices get faster, data management tasks rob the host of CPU cycles and main memory bandwidth. The &lt;a href="https://cross.ucsc.edu/projects/eusocialpage.html" target="_blank" rel="noopener">Eusocial project&lt;/a> aims to create a new interface to storage devices that can leverage existing and new CPU and main memory resources to take over data management tasks like availability, recovery, and migrations. The project refers to these storage devices as “eusocial” because we are inspired by eusocial insects like ants, termites, and bees, which as individuals are primitive but collectively accomplish amazing things.&lt;/p>
&lt;h3 id="dynamic-function-injection-for-rocksdb">Dynamic function injection for RocksDB&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Skills:&lt;/strong> C/C++, Java&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong> 175 or 350 hours&lt;/li>
&lt;li>&lt;strong>Mentor:&lt;/strong> &lt;a href="mailto:jliu120@ucsc.edu">Jianshen Liu&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Recent research reveals that the compaction process in RocksDB can be altered to optimize future data access by changing the data layout in compaction levels. The benefit of this approach can be extended to different data layout optimization based on application access patterns and requirements. In this project, we want to create an interface that would allow users to dynamically inject layout optimization functions to RockDB, using containerization technologies such as Webassembly.&lt;/p>
&lt;ul>
&lt;li>Reference: Saxena, Hemant, et al. &amp;ldquo;Real-Time LSM-Trees for HTAP Workloads.&amp;rdquo; arXiv preprint arXiv:2101.06801 (2021).&lt;/li>
&lt;/ul>
&lt;h3 id="demonstrating-a-composable-storage-system-accelerated-by-memory-semantic-technologies">Demonstrating a composable storage system accelerated by memory semantic technologies&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Skills:&lt;/strong> C/C++, Bash, Python, System architecture, Network fabrics&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Challenging&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong> 350 hours&lt;/li>
&lt;li>&lt;strong>Mentor:&lt;/strong> &lt;a href="mailto:jliu120@ucsc.edu">Jianshen Liu&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Since the last decade, the slowing down in the performance improvement of general-purpose processors is driving the system architecture to be increasingly heterogeneous. We have seen the kinds of domain-specific accelerator hardware (e.g., FPAG, SmartNIC, TPU, GPU) are growing to take over many different jobs from the general-purpose processors. On the other hand, the network and storage device performance have been tremendously improved with a trajectory much outweighed than that of processors. With this trend, a natural thought to continuously scale the storage system performance economically is to efficiently utilize and share different sources from different nodes over the network. There already exist different resource sharing protocols like CCIX, CXL, and GEN-Z. Among these GEN-Z is the most interesting because, unlike RDMA, it enables remote memory accessing without exposing details to applications (i.e., not application changes). Therefore, it would be interesting to see how/whether these technologies can help improve the performance of storage systems, and to what extent. This project would require building a demo system that uses some of these technologies (especially GEN-Z) and run selected applications/workloads to better understand the benefits.&lt;/p>
&lt;ul>
&lt;li>References: Gen-Z: An Open Memory Fabric for Future Data Processing Needs: &lt;a href="https://www.youtube.com/watch?v=JLb9nojNS8E" target="_blank" rel="noopener">https://www.youtube.com/watch?v=JLb9nojNS8E&lt;/a>, Pekon Gupta, SMART Modular; Gen-Z subsystem for Linux, &lt;a href="https://github.com/linux-genz" target="_blank" rel="noopener">https://github.com/linux-genz&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="when-will-rotational-media-users-abandon-sata-and-converge-to-nvme">When will Rotational Media Users abandon SATA and converge to NVMe?&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Skills:&lt;/strong> Entrepreneurial mind, interest in researching high technology markets&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> 350 hours&lt;/li>
&lt;li>&lt;strong>Mentor:&lt;/strong> &lt;a href="mailto:carlosm@ucsc.edu">Carlos Maltzahn&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Goal:&lt;/strong> Determine the benefits in particular market verticals such as genomics and health care to converge the storage stack in data center computer systems to the NVMe device interface, even when devices include rotational media (aka disk drives). The key question: “When do people abandon SATA and SAS and converge to NVMe?”&lt;/p>
&lt;p>&lt;strong>Background:&lt;/strong> NVMe is a widely used device interface for fast storage devices such as flash that behave much more like random access memory than the traditional rotational media. Rotational media is accessed mostly via SATA and SAS which has served the industry well for close to two decades. SATA in particular is much cheaper than NVMe. Now that NVMe is widely available and quickly advancing in functionality, an interesting question is whether there is a market for rotational media devices with NVMe interfaces, converging the storage stack to only one logical device interface, thereby enabling a common ecosystem and more efficient connectivity from multiple processes to storage devices.&lt;/p>
&lt;p>The NVMe 2.0 specification, which came out last year, has been restructured to support the increasingly diverse NVMe device environment (including rotational media). The extensibility of 2.0 encourages enhancements of independent command sets such as Zoned Namespaces (ZNS) and Key Value (NVMe-KV) while supporting transport protocols for NVMe over Fabrics (NVMe-oF). A lot of creative energy is now focused on advancing NVMe while SATA has not changed in 16 years. Having all storage devices connect the same way not only frees up space on motherboards but also enables new ways to manage drives, for example via NVMe-oF that allows drives to be networked without additional abstraction layers.&lt;/p>
&lt;p>&lt;strong>Suggested Project Structure:&lt;/strong> This is really just a suggestion for a starting point. As research progresses, a better structure might emerge.&lt;/p>
&lt;ol>
&lt;li>Convergence of software stack: seamless integration between rotational media and hot storage&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>Direct tiering: one unified interface to place data among fast and slow devices on the same NVMe fabric depending on whether the data is hot or cold.&lt;/li>
&lt;/ul>
&lt;ol start="2">
&lt;li>Computational storage:&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>What are the architectures of computational NVMe devices? For example, offloading compute to an FPGA vs an onboard processor in a disk drive?&lt;/li>
&lt;li>Do market verticals such as genomics and health care for one over the other? When do people abandon SATA and converge to NVMe?&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Project tasks:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Review current literature&lt;/li>
&lt;li>Survey what the industry is doing&lt;/li>
&lt;li>Join weekly meetings to discuss findings with Ph.D. students, experienced industry veterans, and faculty (Thursday’s 2-3pm, can be adjusted if necessary)&lt;/li>
&lt;li>Product is a slide deck with lots of pictures&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Interesting links:&lt;/strong>&lt;br>
&lt;a href="https://www.opencompute.org/wiki/Storage/NVMeHDD" target="_blank" rel="noopener">https://www.opencompute.org/wiki/Storage/NVMeHDD&lt;/a>&lt;br>
&lt;a href="https://2021ocpglobal.fnvirtual.app/a/event/1714" target="_blank" rel="noopener">https://2021ocpglobal.fnvirtual.app/a/event/1714&lt;/a> (video and slides, requires $0 registration)&lt;br>
&lt;a href="https://www.storagereview.com/news/nvme-hdd-edges-closer-to-reality" target="_blank" rel="noopener">https://www.storagereview.com/news/nvme-hdd-edges-closer-to-reality&lt;/a>&lt;br>
&lt;a href="https://www.tomshardware.com/news/seagate-demonstrates-hdd-with-pcie-nvme-interface" target="_blank" rel="noopener">https://www.tomshardware.com/news/seagate-demonstrates-hdd-with-pcie-nvme-interface&lt;/a>&lt;br>
&lt;a href="https://nvmexpress.org/everything-you-need-to-know-about-the-nvme-2-0-specifications-and-new-technical-proposals/" target="_blank" rel="noopener">https://nvmexpress.org/everything-you-need-to-know-about-the-nvme-2-0-specifications-and-new-technical-proposals/&lt;/a>&lt;br>
&lt;a href="https://www.tomshardware.com/news/nvme-2-0-supports-hard-disk-drives" target="_blank" rel="noopener">https://www.tomshardware.com/news/nvme-2-0-supports-hard-disk-drives&lt;/a>&lt;/p></description></item><item><title>Skyhook Data Management</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/skyhookdm/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/skyhookdm/</guid><description>&lt;p>&lt;a href="https://iris-hep.org/projects/skyhookdm.html" target="_blank" rel="noopener">SkyhookDM&lt;/a>&lt;/p>
&lt;p>The Skyhook Data Management project extends object storage with data
management functionality for tabular data. SkyhookDM enables storing and query
tabular data in the &lt;a href="https://ceph.io" target="_blank" rel="noopener">Ceph&lt;/a> distributed object storage system. It thereby
turns Ceph into an &lt;a href="https://arrow.apache.org" target="_blank" rel="noopener">Apache Arrow&lt;/a>-native
storage system, utilizing the Arrow Dataset API to store and query data with server-side data processing, including selection and projection that can significantly reduce the data returned to the client.&lt;/p>
&lt;p>SkyhookDM is now part of Apache Arrow (see &lt;a href="https://arrow.apache.org/blog/2022/01/31/skyhook-bringing-computation-to-storage-with-apache-arrow/" target="_blank" rel="noopener">blog post&lt;/a>).&lt;/p>
&lt;hr>
&lt;h3 id="support-reading-from-skyhook-in-daskray-using-the-arrow-dataset-api">Support reading from Skyhook in Dask/Ray using the Arrow Dataset API&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Arrow&lt;/code>, &lt;code>Dask/Ray&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: 175 hours&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;/ul>
&lt;ul>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="mailto:jayjeetc@ucsc.edu">Jayjeet Chakraboorty&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Problem:&lt;/strong> Dask and Ray are parallel-computing frameworks similar to Apache Spark but in a Python ecosystem. Each of these frameworks support reading tabular data from different data sources such as a local filesystem, cloud object stores, etc. These systems have recently added support for the Arrow Dataset API to read data from different sources. Since, the Arrow dataset API supports Skyhook, we can leverage this capability to offload compute-heavy Parquet file decoding and decompression into the Ceph storage layer. This can help us speed up the queries significantly as CPU will get freed up in the Dask/Ray workers for other processing tasks.&lt;/p>
&lt;h3 id="implement-gandiva-based-query-executor-in-skyhookdm">Implement Gandiva based query executor in SkyhookDM&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Arrow&lt;/code>, &lt;code>Gandiva&lt;/code>, &lt;code>SIMD&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: 350 hours&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;/ul>
&lt;ul>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="mailto:jayjeetc@ucsc.edu">Jayjeet Chakraboorty&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Problem:&lt;/strong> &lt;a href="https://arrow.apache.org/blog/2018/12/05/gandiva-donation/" target="_blank" rel="noopener">Gandiva&lt;/a> allows efficient evaluation of query expressions using runtime code generation using LLVM. The generated code leverages SIMD instructions and is highly optimized for parallel processing in modern CPUs. It is natively supported by Arrow for compiling and executing expressions. SkyhookDM currently uses the Arrow Dataset API (which internally uses Arrow Compute APIs) to execute query expressions inside the Ceph OSDs. Since, the Arrow Dataset API particularly does not support Gandiva currently, the goal of this project is to add support for Gandiva in the Arrow Dataset API in order to accelerate query processing when offloaded to the storage layer. This will help Skyhook combat some of the peformance issues due to the inefficient serialization interface of Arrow.&lt;/p>
&lt;p>&lt;strong>References:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://arrow.apache.org/blog/2018/12/05/gandiva-donation/" target="_blank" rel="noopener">https://arrow.apache.org/blog/2018/12/05/gandiva-donation/&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.dremio.com/subsurface/increasing-performance-with-arrow-and-gandiva/" target="_blank" rel="noopener">https://www.dremio.com/subsurface/increasing-performance-with-arrow-and-gandiva/&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/apache/arrow/tree/master/cpp/src/gandiva" target="_blank" rel="noopener">https://github.com/apache/arrow/tree/master/cpp/src/gandiva&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="add-ability-to-create-and-save-views-from-datasets">Add Ability to create and save views from Datasets&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Arrow&lt;/code>, &lt;code>Database views&lt;/code>, &lt;code>virtual datasets&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: 175 hours&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;/ul>
&lt;ul>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="mailto:jayjeetc@ucsc.edu">Jayjeet Chakraboorty&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Problem - Workloads may repeat the same or similar queries over time. This causes repetition of IO and compute operations, wasting resources.
Saving previous computation in the form of materialized views can provide benefit for future
workload processing.
Solution - Add a method to the Dataset API to create views from queries and save the view as an object in a separate pool with some object key that can be generated from the query that created it.&lt;/p>
&lt;p>Reference:
&lt;a href="https://docs.dremio.com/working-with-datasets/virtual-datasets.html" target="_blank" rel="noopener">https://docs.dremio.com/working-with-datasets/virtual-datasets.html&lt;/a>&lt;/p>
&lt;hr>
&lt;h3 id="integrating-delta-lake-on-top-of-skyhookdm">Integrating Delta Lake on top of SkyhookDM&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>data lakes&lt;/code>, &lt;code>lake house&lt;/code>, &lt;code>distributed query processing&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++&lt;/li>
&lt;li>&lt;strong>NSize&lt;/strong>: 175 or 350 hours&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;/ul>
&lt;ul>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="mailto:jayjeetc@ucsc.edu">Jayjeet Chakraboorty&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;a href="https://delta.io/" target="_blank" rel="noopener">Delta Lake&lt;/a> is a new architecture for querying big data lakes through Spark, providing transactions.
An important benefit of this integration will be to provide an SQL interface for SkyhookDM functionality, through Spark SQL.
This project will further build upon our current work connecting Spark to SkyhookDM through the Arrow Dataset API.
This would allow us to run some of the TPC-DS queries (popular set of SQL queries for benchmarking databases) on SkyhookDM easily.&lt;/p>
&lt;p>Reference: [Delta Lake paper] (&lt;a href="https://databricks.com/jp/wp-content/uploads/2020/08/p975-armbrust.pdf" target="_blank" rel="noopener">https://databricks.com/jp/wp-content/uploads/2020/08/p975-armbrust.pdf&lt;/a>)&lt;/p></description></item></channel></rss>