SearcharxivSearch

arXiv subjects

Vivek Shah

Publications and source records attributed to Vivek Shah.

7 recordsLinked to original sources

Dolphin: An Actor-Oriented Database for Reactive Moving Object Data Management

Novel reactive moving object applications require solutions to support object reactive behaviors as a way to query and update dynamic data. While moving object scenarios have long been researched in the context of spatio-temporal data management, reactive behavior is usually left to complex end-user implementations. However, it is not just a matter of hardwiring reactive constraints: the required solutions need to satisfy tight low-latency computation requirements and be scalable. This paper explores a novel approach to enrich a distributed actor-based framework with reactive functionality and complex spatial data management along with concurrency semantics. Our approach relies on a proposal of the moving actor abstraction, which is a conceptual enhancement of the actor model with reactive sensing, movement, and spatial querying capabilities. This enhancement helps developers of reactive moving object applications avoid the significant burden of implementing application-level schemes to balance performance and consistency. Based on moving actors, we define a reactive moving object data management platform, named Moving Actor-Oriented Databases (M-AODBs), and build Dolphin -- an implementation of M-AODBs. Dolphin embodies a non-intrusive actor-based design layered on top of the Microsoft Orleans distributed virtual actor framework. In a set of experimental evaluations with realistic reactive moving object scenarios, Dolphin exhibits scalability on multi-machines and provides near-real-time reaction latency.

cs.DB

Towards Efficient Flash Caches with Emerging NVMe Flexible Data Placement SSDs

NVMe Flash-based SSDs are widely deployed in data centers to cache working sets of large-scale web services. As data centers face increasing sustainability demands, such as reduced carbon emissions, efficient management of Flash overprovisioning and endurance has become crucial. Our analysis demonstrates that mixing data with different lifetimes on Flash blocks results in high device garbage collection costs, which either reduce device lifetime or necessitate host overprovisioning. Targeted data placement on Flash to minimize data intermixing and thus device write amplification shows promise for addressing this issue. The NVMe Flexible Data Placement (FDP) proposal is a newly ratified technical proposal aimed at addressing data placement needs while reducing the software engineering costs associated with past storage interfaces, such as ZNS and Open-Channel SSDs. In this study, we explore the feasibility, benefits, and limitations of leveraging NVMe FDP primitives for data placement on Flash media in CacheLib, a popular open-source Flash cache widely deployed and used in Meta's software ecosystem as a caching building block. We demonstrate that targeted data placement in CacheLib using NVMe FDP SSDs helps reduce device write amplification, embodied carbon emissions, and power consumption with almost no overhead to other metrics. Using multiple production traces and their configurations from Meta and Twitter, we show that an ideal device write amplification of ~1 can be achieved with FDP, leading to improved SSD utilization and sustainable Flash cache deployments.

cs.AR

xNVMe: Unleashing Storage Hardware-Software Co-design

NVMe SSD hardware has witnessed widespread deployment as commodity and enterprise hardware due to its high performance and rich feature set. Despite the open specifications of various NVMe protocols by the NVMe Express group and NVMe being of software abstractions to program the underlying hardware. The myriad storage I/O paths such as POSIX storage API, ad-hoc OS mechanisms, and userspace I/O libraries have different syntax and semantics that complicate software development and stand in the way of mass adoption and evolution of the NVMe ecosystem. To unify the diverse I/O storage paths, we built xNVMe that exposes a single message-passing API to support both asynchronous and synchronous communication with NVMe devices. xNVMe provides various command sets to support diverse storage I/O paths in different OS (e.g., Linux, FreeBSD, Windows, and MacOS) and userspace libraries (e.g., SPDK) with minimal overhead. xNVMe is an Open Source project and has gained traction amongst various industry stakeholders. In this paper, we elaborate on the lessons that we have learned in the project during its evolution. We also provide some ongoing and future work planned for the project. We hope the database and storage systems community can join in the effort to both extend xNVMe and leverage it as a building block for innovative co-design of storage systems on modern NVMe hardware.

cs.OS

An Evaluation of Intra-Transaction Parallelism in Actor-Relational Database Systems

Over the past decade, we have witnessed a dramatic evolution in main-memory capacity and multi-core parallelism of server hardware. To leverage this hardware potential, multi-core in-memory OLTP database systems have been extensively re-designed. The core objective of this re-design has been scaling up sequential execution of OLTP transactions, wherein alternative database architectures have been explored to eliminate system bottlenecks and overheads impeding inter-transaction parallelism to fully manifest. However, intra-transaction parallelism has been largely ignored by this previous work. We conjecture this situation to have developed because OLTP workloads are sometimes deemed to have far too little intra-transactional parallelism and, even when this kind of parallelism is available, program analyses to recognize it in arbitrary stored procedures are considered too brittle to be used as a general tool. Recently, however, a new concept of actor-relational database systems has been proposed, raising hopes that application developers can specify intra-transaction parallelism by modeling database applications as communicating actors. In this scenario, a natural question is whether an actor-relational database system with an asynchronous programming model can adequately expose the intra-transaction parallelism available in application logic to modern multi-core hardware. Towards that aim, we conduct in this paper an experimental evaluation of the factors that affect intra-transaction parallelism in the prototype actor-relational database system REACTDB, with an OLTP application designed with task-level parallelism in mind, and with the system running on a multi-core machine.

cs.DB

Actor-Relational Database Systems: A Manifesto

Interactive data-intensive applications are becoming ever more pervasive in domains such as finance, web applications, mobile computing, and Internet of Things. Increasingly, these applications are being deployed in sophisticated parallel and distributed hardware infrastructures. With this growing diversity of the software and hardware landscape, there is a pressure on programming models and systems to enable developers to design modular, scalable, efficient, and consistent data-intensive applications. In response to this challenge, recent research has advocated the integration of actor programming models and database management. This integration promises to help developers build logically distributed micro-applications well adapted to modern hardware trends as opposed to existing approaches targeted at optimizing monolithic applications. Towards this aim, in this paper we analyze, make the case for, and present a broad vision of actor-relational database systems. We argue why the time is ripe today to examine the research opportunities afforded by this emerging system paradigm. Based on this discussion, we present design principles as well as candidate feature sets to help concretize the vision for such systems. To illustrate the usefulness of the proposed feature set and motivate the need for this class of systems, we show a detailed case study inspired by a smart supermarket application with self-checkout, along with evidence for performance benefits on modern hardware.

cs.DB

Reactors: A Case for Predictable, Virtualized Actor Database Systems

The requirements for OLTP database systems are becoming ever more demanding. Domains such as finance and computer games increasingly mandate that developers be able to encode complex application logic and control transaction latencies in in-memory databases. At the same time, infrastructure engineers in these domains need to experiment with and deploy OLTP database architectures that ensure application scalability and maximize resource utilization in modern machines. In this paper, we propose a relational actor programming model for in-memory databases as a novel, holistic approach towards fulfilling these challenging requirements. Conceptually, relational actors, or reactors for short, are application-defined, isolated logical actors that encapsulate relations and process function calls asynchronously. Reactors ease reasoning about correctness by guaranteeing serializability of application-level function calls. In contrast to classic transactional models, however, reactors allow developers to take advantage of intra-transaction parallelism and state encapsulation in their applications to reduce latency and improve locality. Moreover, reactors enable a new degree of flexibility in database deployment. We present ReactDB, a system design exposing reactors that allows for flexible virtualization of database architecture between the extremes of shared-nothing and shared-everything without changes to application code. Our experiments illustrate latency control, low overhead, and asynchronicity trade-offs with ReactDB in OLTP benchmarks.

cs.DB

Transactional Partitioning: A New Abstraction for Main-Memory Databases

The growth in variety and volume of OLTP (Online Transaction Processing) applications poses a challenge to OLTP systems to meet performance and cost demands in the existing hardware landscape. These applications are highly interactive (latency sensitive) and require update consistency. They target commodity hardware for deployment and demand scalability in throughput with increasing clients and data. Currently, OLTP systems used by these applications provide trade-offs in performance and ease of development over a variety of applications. In order to bridge the gap between performance and ease of development, we propose an intuitive, high-level programming model which allows OLTP applications to be modeled as a cluster of application logic units. By extending transactions guaranteeing full ACID semantics to provide the proposed model, we maintain ease of application development. The model allows the application developer to reason about program performance, and to influence it without the involvement of OLTP system designers (database designers) and/or DBAs. As a result, the database designer is free to focus on efficient running of programs to ensure optimal cluster resource utilization.

cs.DB