EDBT 2026 Demo / reviewers in the wild / expert
Narain H. Gehani
dblp:88/911 · also Narain Gehani
· DBLP profile ↗
49ranked-venue papers
26as first author
0since 2021 · last 2020
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 23 · 17 first-authorDatabases, data management, data science and information retrieval · 15 · 5 first-authorSystems, architecture and hardware · 6 · 2 first-authorArtificial intelligence and machine learning · 2Human-computer interaction and ubiquitous computing · 2Computer networks · 1 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 1 · 1 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Computer architecture, parallel and distributed computing, and storage systems
6 papers |
Cloud and datacenter computing · 70% Parallel and multicore computing · 26% Electronic design automation · 2% | |
| Human-computer interaction and pervasive computing
3 papers |
Ubiquitous computing and smart environments · 97% Interaction techniques and input · 3% | |
| Software engineering, system software, and programming languages
5 papers |
Operating systems · 87% Concurrent programming · 8% Programming languages and type systems · 5% | |
| Computer networks
1 paper |
Edge and fog computing · 100% | |
| Databases, data mining, and information retrieval
12 papers |
Data models and query languages · 47% Database system architecture and tuning · 26% Transaction processing and concurrency control · 12% |
Topics — the 30 heaviest of 43, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Operating systems › virtualization
hypervisor |
0.3 | 1 | 2017 | APPLES: Efficiently Handling Spin-lock Synchronization on Virtualized Platforms · IEEE Trans. Parallel Distributed Syst. 2017 |
Cloud and datacenter computing
virtualization |
0.3 | 1 | 2017 | APPLES: Efficiently Handling Spin-lock Synchronization on Virtualized Platforms · IEEE Trans. Parallel Distributed Syst. 2017 |
Parallel and multicore computing
synchronization |
0.1 | 1 | 2017 | APPLES: Efficiently Handling Spin-lock Synchronization on Virtualized Platforms · IEEE Trans. Parallel Distributed Syst. 2017 |
Database system architecture and tuning
active database |
0.0 | 4 | 1996 | The Ode Active Database: Trigger Semantics and Implementation · ICDE 1996 Composite Event Specification in Active Databases: Model & Implementation · VLDB 1992 Event Specification in an Active Object-Oriented Database · SIGMOD Conference 1992 |
Data models and query languages
object-oriented database |
0.0 | 5 | 1996 | OdeFS: A File System Interface to an Object-Oriented Database · VLDB 1994 The O++ Database Programming Language: Implementation and Experience · ICDE 1993 Object Versioning in Ode · ICDE 1991 |
Data models and query languages
database programming language |
0.0 | 2 | 1993 | The O++ Database Programming Language: Implementation and Experience · ICDE 1993 ODE (Object Database and Environment): The Language and the Data Model · SIGMOD Conference 1989 |
Data models and query languages › database programming
triggers |
0.0 | 1 | 1996 | The Ode Active Database: Trigger Semantics and Implementation · ICDE 1996 |
Data models and query languages
object-oriented data model |
0.0 | 3 | 1990 | OdeView: The Graphical Interface to Ode · SIGMOD Conference 1990 ODE (Object Database and Environment): The Language and the Data Model · SIGMOD Conference 1989 OdeView: A User-Friendly Graphical Interface to Ode · SIGMOD Conference 1990 |
Database system architecture and tuning
database interface |
0.0 | 2 | 1990 | OdeView: A User-Friendly Graphical Interface to Ode · SIGMOD Conference 1990 OdeView: The Graphical Interface to Ode · SIGMOD Conference 1990 |
Information retrieval › search interfaces
visual query interface |
0.0 | 2 | 1990 | OdeView: A User-Friendly Graphical Interface to Ode · SIGMOD Conference 1990 OdeView: The Graphical Interface to Ode · SIGMOD Conference 1990 |
Transaction processing and concurrency control › transaction models
extended transaction models |
0.0 | 1 | 1994 | ASSET: A System for Supporting Extended Transactions · SIGMOD Conference 1994 |
Programming languages and type systems › language design
language extension |
0.0 | 1 | 1993 | Capsules: A Shared Memory Access Mechanism for Concurrent C/C++ · IEEE Trans. Parallel Distributed Syst. 1993 |
Concurrent programming › synchronization
shared-memory synchronization |
0.0 | 1 | 1993 | Capsules: A Shared Memory Access Mechanism for Concurrent C/C++ · IEEE Trans. Parallel Distributed Syst. 1993 |
Data stream processing
complex event processing |
0.0 | 1 | 1992 | Event Specification in an Active Object-Oriented Database · SIGMOD Conference 1992 |
Web and social media mining
event detection |
0.0 | 1 | 1992 | Event Specification in an Active Object-Oriented Database · SIGMOD Conference 1992 |
Parallel and multicore computing
parallel programming models |
0.0 | 2 | 1989 | Experience with Multiple Processor Versions of Concurrent C · IEEE Trans. Software Eng. 1989 Broadcasting Sequential Processes (BSP) · IEEE Trans. Software Eng. 1984 |
Interaction techniques and input
direct manipulation |
0.0 | 2 | 1990 | OdeView: A User-Friendly Graphical Interface to Ode · SIGMOD Conference 1990 OdeView: The Graphical Interface to Ode · SIGMOD Conference 1990 |
Data models and query languages › object-oriented data model
object versioning |
0.0 | 1 | 1991 | Object Versioning in Ode · ICDE 1991 |
Concurrent programming
synchronization |
0.0 | 2 | 1988 | Concurrent C and robotics · ICRA 1987 Rendezvous Facilities: Concurrent C and the Ada Language · IEEE Trans. Software Eng. 1988 |
Data models and query languages › database programming language
object-oriented database language |
0.0 | 1 | 1989 | ODE (Object Database and Environment): The Language and the Data Model · SIGMOD Conference 1989 |
Parallel and multicore computing › parallel computing
parallel programming languages |
0.0 | 1 | 1989 | Experience with Multiple Processor Versions of Concurrent C · IEEE Trans. Software Eng. 1989 |
Parallel and multicore computing
parallel programming runtimes |
0.0 | 1 | 1989 | Experience with Multiple Processor Versions of Concurrent C · IEEE Trans. Software Eng. 1989 |
Concurrent programming › message passing
ada rendez-vous |
0.0 | 1 | 1988 | Rendezvous Facilities: Concurrent C and the Ada Language · IEEE Trans. Software Eng. 1988 |
Programming languages and type systems
concurrent programming languages |
0.0 | 1 | 1988 | Rendezvous Facilities: Concurrent C and the Ada Language · IEEE Trans. Software Eng. 1988 |
Storage systems
file systems |
0.0 | 1 | 1994 | OdeFS: A File System Interface to an Object-Oriented Database · VLDB 1994 |
Electronic design automation
high-level synthesis |
0.0 | 1 | 1985 | Flex: A High-Level Language for Specifying Customized Microprocessors · IEEE Trans. Software Eng. 1985 |
Electronic design automation › high-level synthesis › hardware compilation
silicon compilation |
0.0 | 1 | 1985 | Flex: A High-Level Language for Specifying Customized Microprocessors · IEEE Trans. Software Eng. 1985 |
Data models and query languages › object-oriented database
object manager |
0.0 | 1 | 1993 | The O++ Database Programming Language: Implementation and Experience · ICDE 1993 |
Operating systems › multiprocessing
shared-memory multiprocessor |
0.0 | 1 | 1993 | Capsules: A Shared Memory Access Mechanism for Concurrent C/C++ · IEEE Trans. Parallel Distributed Syst. 1993 |
Transaction processing and concurrency control
versioning |
0.0 | 1 | 1991 | Object Versioning in Ode · ICDE 1991 |
Methods — techniques the papers use, named apart from their topics
sensor virtualization · 0.7runtime sensor remapping · 0.7scheduling heuristics · 0.6adaptive pause-loop exiting · 0.6finite state machine · 0.0composite event detection · 0.0schema visualization · 0.0object browsing · 0.0icons · 0.0direct manipulation · 0.0transaction model specification · 0.0monitor comparison · 0.0compiler translation · 0.0compiler implementation · 0.0finite automata · 0.0interrupt handling · 0.0database programming language design · 0.0concurrent c · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | Design and Implementation of an Overlay File System for Cloud-Assisted Mobile AppsabstractWith cloud assistance, mobile apps can offload their resource-demanding computation tasks to the cloud. This leads to a scenario where computation tasks in the same program run concurrently on both the mobile device and the cloud. An important challenge is to ensure that the tasks are able to access and share the files on both the mobile and the cloud in a manner that is efficient, consistent, and transparent to locations. Existing distributed file systems and network file systems do not satisfy these requirements. Current systems for offloading tasks either do not support file access for offloaded tasks or do not offload tasks with file access. The paper addresses this issue by designing and implementing an application-level file system called Overlay File System (OFS). To improve efficiency, OFS maintains and buffers local copies of data sets on both the cloud and the mobile device. OFS ensures consistency and guarantees that all the reads get the latest data. It combines write-invalidate and write-update policies to effectively reduce the network traffic incurred by invalidating/updating stale data copies and to reduce the execution delay when the latest data cannot be accessed locally. To guarantee location transparency, OFS creates a unified view of the data that is location independent and is accessible as local storage. We overcome the challenges caused by the special features of mobile systems on an application-level file system, like the lack of root privilege and state loss when application is killed due to the shortage of resource and implement an easy to deploy prototype of OFS. The paper tests the OFS prototype on Android OS with a real mobile app and real mobile user traces. Extensive experiments show that OFS can effectively support consistent file accesses from computation tasks, no matter whether they are on a mobile device or offloaded to the cloud. In addition, OFS reduce both file access latency and network traffic incurred by file accesses. Nafize R. Paiker, Jianchen Shan, Cristian Borcea, Narain H. Gehani, Reza Curtmola, Xiaoning Ding |
IEEE Trans. Cloud Comput. | 4 |
| 2019 | Multi-destination vehicular route planning with parking and traffic constraintsabstractThis paper aims to provide an efficient solution for people in a city who drive their cars to visit several destinations, where they need to park for a while, but do not care about the visiting order. This instance of the multi-destination route planning problem is novel in terms of its constraints: the real-time traffic conditions and the real-time free parking conditions in the city. The paper proposes a novel Multi-Destination Vehicle Route Planning (MDVRP) system to optimize the travel time for all drivers. MDVRP's design has two components: a mobile app running on the drivers' smart phones that submits real-time route requests and guides the drivers toward destinations, and a server in the cloud that optimizes the routes by finding the most efficient order to visit the destinations. MDVRP uses TDTSP-FPA, an algorithm that finds the fastest route to the next destination and also assigns free curbside parking spaces that minimize the total travel time for drivers. We evaluate MDVRP using a driver trip dataset that contains real vehicular mobility traces of over two million drivers from the city of Cologne, Germany. By learning the spatio-temporal distribution of real driver destinations from this dataset, we build a novel experimental platform that simulates real, multi-destination driver trips. Extensive simulations executed over this platform demonstrate that TDTSP-FPA delivers the best performance when compared to three baseline algorithms. Abeer Hakeem, Narain H. Gehani, Xiaoning Ding, Reza Curtmola, Cristian Borcea |
MobiQuitous | 2 |
| 2019 | The Moitree middleware for distributed mobile-cloud computing
Hillol Debnath, Mohammad A. Khan, Nafize R. Paiker, Xiaoning Ding, Narain H. Gehani, Reza Curtmola, Cristian Borcea |
J. Syst. Softw. | 5 |
| 2018 | Sentio: Distributed Sensor Virtualization for Mobile AppsabstractThis paper presents Sentio, a distributed middle-ware designed to provide mobile apps with seamless connectivity to remote sensors when the sensing code and the sensors are not physically on the same device, e.g., when the sensing code is offloaded to the cloud. Sentio presents the apps with virtual sensors that are mapped to remote physical sensors. Virtual sensors can be composed into higher-level sensors, which fuse sensing data from multiple physical sensors. Furthermore, they are mapped to the best available physical sensors when the app starts and re-mapped transparently to other physical sensors at runtime in response to context changes. Sentio was designed to work without modifications to the operating system and to provide low-latency access to remote sensors, which is beneficial to apps with real time-requirements such as mobile games. We have built a prototype of Sentio on Android. We have also developed four apps based on Sentio to understand the programming effort and evaluate the performance. The development of the apps shows that complex sensing tasks can be implemented quickly, benefiting from Sentio's high-level API. The experimental results show that Sentio achieves good real-time performance. Hillol Debnath, Narain H. Gehani, Xiaoning Ding, Reza Curtmola, Cristian Borcea |
PerCom | 2 |
| 2017 | APPLES: Efficiently Handling Spin-lock Synchronization on Virtualized PlatformsabstractSpin-locks are widely used in software for efficient synchronization. However, they cause serious performance degradation on virtualized platforms, such as the Lock Holder Preemption (LHP) problem and the Lock Waiter Preemption (LWP) problem, due to excessive spinning by virtual CPUs (VCPUs). The excessive spinning occurs when a VCPU waits to acquire a spin-lock. To address the performance degradation, hardware facilities, such as Intel PLE and AMD PF, are provided on processors to preempt VCPUs when they spin excessively. Although these facilities have been predominantly used on mainstream virtualization systems, using them in a manner that achieves the highest performance is still a challenging issue. There are two core problems in using these hardware facilities to reduce excessive spinning. One is to determine the best time to preempt a spinning VCPU (i.e., the selection of spinning thresholds). The other is which VCPU should be scheduled to run after the spinning VCPU is descheduled. Due to the semantic gap between different software layers, the virtual machine monitor (VMM) does not have information about the computation characteristics on VCPUs, which is needed to address the above problems. This makes the problems inherently challenging. We propose a framework named AdPtive Pause-Loop Exiting and Scheduling (APPLES) to address these problems. APPLES monitors the overhead caused by excessive spinning and preempting spinning VCPUs, and periodically adjusts spinning thresholds to reduce the overhead. APPLES also evaluates and schedules “ready” VCPUs in a VM by their potential to reduce the spinning incurred by the spin-lock synchronization. The evaluation is based on the causality and the time of VCPU preemptions. The implementation of APPLES incurs only minimal changes to existing systems (about 100 lines of code in KVM). Experiments show that APPLES can improve performance by 3$\sim$49 percent (14 percent on average) for the workloads with frequent spin-lock operations. Jianchen Shan, Xiaoning Ding, Narain H. Gehani |
IEEE Trans. Parallel Distributed Syst. | 3 |
| 2016 | An Overlay File System for cloud-assisted mobile applicationsabstractWith cloud assistance, a mobile application can offload its resource-demanding computation tasks to the cloud (public cloud, cloudlet, or personal cloud, etc). This leads to a scenario where computation tasks in the same application run concurrently on both the mobile device and the cloud. These tasks need to save, read, and write files on both the mobile device and the cloud. An important challenge is to ensure that the tasks are able to access and share the files in a manner that is efficient, consistent, and transparent to locations. The paper addresses this issue by designing an application-level file system called Overlay File System (OFS). To improve efficiency, OFS maintains and buffers local copies of data sets on both the cloud and the mobile device. OFS ensures consistency and guarantees that all the reads get the latest data. It combines write-invalidate and write-update policies to effectively reduce the network traffic incurred by invalidating/updating stale data copies and to reduce the application delay when the latest data cannot be accessed locally. To guarantee location transparency, OFS creates an unified view of the data that is location independent and is accessible as local storage. Our experiments show that OFS can effectively support task offloading and efficient execution of offloaded tasks by significantly decreasing both file access latency and network traffic incurred by file accesses. Jianchen Shan, Nafize R. Paiker, Xiaoning Ding, Narain H. Gehani, Reza Curtmola, Cristian Borcea |
MSST | 4 |
| 2015 | APLE: Addressing Lock Holder Preemption Problem with High EfficiencyabstractOn virtualized platforms, Lock Holder Preemption (LHP) is known as a serious problem, which makes virtual CPUs (VCPUs) spin excessively while waiting for locks and seriously degrades performance. To address this problem, hardware facilities, such as Intel PLE and AMD PF, are provided on processors to preempt spinning VCPUs. Though these facilities have been predominantly used on mainstreamvirtualization systems, using them in a manner that achieves the highest performance is still a challenging issue. The core issue in dealing with the LHP problem is to determine the best time to preempt spinning VCPUs (i.e., spinning thresholds). Due to the semantic gap between different software layers, the virtual machine monitor (VMM) does not have the information about whether a VCPU is spinning normally (i.e., waiting for a lock to be released quickly) or is spinning excessively (i.e., waiting for a lock which is currently held by a preempted VCPU and cannot be released quickly). Thus, it cannot determine adequate thresholds for preempting spinning VCPUs to achieve high performance. Preempting spinning VCPUs late wastes system resources. Preempting them prematurely incurs costly context switches between VCPUs and delays lock acquisition. The paper addresses the issue of preempting spinning VCPUs with an end-to-end approach named Adaptive PLE (APLE). APLE monitors the execution efficiency of each VM by collecting the overhead incurred by wasteful spinning and wasteful VCPU switches. Then, it periodically adjusts the spinning threshold to reduce the overhead and increase the execution efficiency of the VM. The implementation of APLE incurs only minimal changes to existing systems (about 80 lines of code in KVM). The experiments with multicore workloads show that APLE can improve throughput by up to 68%. Jianchen Shan, Xiaoning Ding, Narain H. Gehani |
CloudCom | 3 |
| 2005 | Semantic querying of tree-structured data sources using partially specified tree patternsabstractNowadays, huge volumes of data are organized or exported in a tree-structured form. Querying capabilities are provided through queries that are based on branching path expression. Even for a single knowledge domain structural differences raise difficulties for querying data sources in a uniform way. In this paper, we present a method for semantically querying tree-structured data sources using partially specified tree patterns. Based on dimensions which are sets of semantically related nodes in tree structures, we define dimension graphs. Dimension graphs can be automatically extracted from trees and abstract their structural information. They are semantically rich constructs that support the formulation of queries and their efficient evaluation. We design a tree-pattern query language to query multiple tree-structured data sources. A central feature of this language is that the structure can be specified fully, partially, or not at all in the queries. Therefore, it can be used to query multiple trees with structural differences. %and We study the derivation of structural expressions in queries by introducing a set of inference rules for structural expressions. We define two types of query unsatisfiability and we provide necessary and sufficient conditions for checking each of them. Our approach is validated through experimental evaluation. Dimitri Theodoratos, Theodore Dalamagas 0001, Antonis Koufopoulos, Narain H. Gehani |
CIKM | 4 |
| 2000 | The LTAP trigger gateway for LDAP directoriesabstractLDAP (Lightweight Directory Access Protocol) directories are being rapidly deployed on the web. They are currently used to store data like white pages information, user profiles, and network device descriptions. LDAP directories offer scalability advantages over current database technologies, as well as being more flexible. However, as users begin to use them for Directory Enabled Networking tasks such as provisioning network services, allocating resources, reporting, managing end-to-end security, and offering mobile users customized features that follow them, LDAP's limited functionality becomes a significant barrier to progress. For example, LDAP directories do not have active database functionality (i.e., triggers). However, triggers are necessary for monitoring changes to directories and taking appropriate actions, just as they are for databases. Such functionality is crucial to take full advantage of proposals such as the Directory Enabled Network (DEN) initiative. Currently, trigger functionality is non-standardized for LDAP and each vendor's solution is non-portable. We built the Lightweight Trigger Access Process (LTAP) gateway to provide a portable way to add triggers to a LDAP directory. We describe the trigger language, the gateway's implementation, as well as our experiences gained both during implementation and from our users. LTAP is currently being used in several projects. LTAP can be downloaded at http://ltap.bell-labs.com. Copyright © 2000 John Wiley & Sons, Ltd. Daniel F. Lieuwen, Robert M. Arlein, Narain H. Gehani |
Softw. Pract. Exp. | 3 |
| 1999 | Versions in Ode: Implementation and ExperiencesabstractThe Ode object-oriented database system supports the creation and manipulation of objects with versions. Versioning is orthogonal to type – any object in the database can be versioned at any time, and the same code works on both versioned and non-versioned instances. Object versioning is supported by many object-oriented databases (e.g. Gemstone, ObjectStore, Versant). However, the facilities are often complex and may not quite match application requirements. Furthermore, the implementation techniques are not well-documented. Ode took the approach of designing a minimal set of versioning primitives with which users can specify the exact policy they require. To illustrate the flexibility and power of these versioning facilities, we use them to implement a set of previously suggested versioning capabilities. We describe how these versioning facilities are implemented, and discuss our experience in using them. Copyright © 1999 John Wiley & Sons, Ltd. Daniel F. Lieuwen, Narain H. Gehani |
Softw. Pract. Exp. | 2 |
| 1998 | Accessing Extra-Database Information: Concurrency Control and Correctness
Narain H. Gehani, Krithi Ramamritham, Jayavel Shanmugasundaram, Oded Shmueli |
Inf. Syst. | 1 |
| 1997 | Ode Triggers: Monitoring the Stock MarketabstractThe Ode object-oriented database provides sophisticated trigger facilities. We illustrate their use and capabilities by writing a non-trivial trigger application–a stock market monitoring application. We will then describe our experiences in using the Ode trigger facilities to build the stock monitoring application. Our experiences with the performance and expressiveness of Ode triggers reveal advantages and limitations of the current system. Finally, we propose future work to remove the limitations. ©1997 by John Wiley & Sons, Ltd. Narain H. Gehani, Daniel F. Lieuwen |
Softw. Pract. Exp. | 1 |
| 1996 | Scalable Update Propagation in Epidemic Replicated Databases
Michael Rabinovich, Narain H. Gehani, Alex Kononov |
EDBT | 2 |
| 1996 | The Ode Active Database: Trigger Semantics and ImplementationabstractOde is an active database system and environment based on the object paradigm. Triggers are the basic ingredient of active databases. Ode triggers are event-action pairs. An event can be a composite event (i.e. an event composed from other events). Composite events are detected by translating the event specifications into finite state machines. In this paper, we describe the integration and implementation of composite event-based triggers into the Ode object database. We focus on implementation details such as the basic trigger events supported, the efficient posting of these events, the handling of transaction-related events and the integration of triggers into a real database. We also describe the run-time facilities used to support trigger processing and describe some experiences we gained while implementing triggers. We illustrate Ode trigger facilities with a credit card example. Daniel F. Lieuwen, Narain H. Gehani, Robert M. Arlein |
ICDE | 2 |
| 1994 | ASSET: A System for Supporting Extended TransactionsabstractExtended transaction models in databases were motivated by the needs of complex applications such as CAD and software engineering. Transactions in such applications have diverse needs, for example, they may be long lived and they may need to cooperate. We describe ASSET, a system for supporting extended transactions. ASSET consists of a set of transaction primitives that allow users to define custom transaction semantics to match the needs of specific applications. We show how the transaction primitives can be used to specify a variety of transaction models, including nested transactions, split transactions, and sagas. Application-specific transaction models with relaxed correctness criteria, and computations involving workflows, can also be specified using the primitives. We describe the implementation of the ASSET primitives in the context of the Ode database. Alexandros Biliris, Shaul Dar, Narain H. Gehani, H. V. Jagadish, Krithi Ramamritham |
SIGMOD Conference | 3 |
| 1994 | OdeFS: A File System Interface to an Object-Oriented Database
Narain H. Gehani, H. V. Jagadish, William D. Roome |
VLDB | 1 |
| 1993 | The O++ Database Programming Language: Implementation and ExperienceabstractOde, a database system and environment based on the object paradigm, is discussed. Ode is defined, queried and manipulated using the database programming language O++, which is based on C++. The O++ compiler translates O++ programs into C++ programs that contain calls to the Ode object manager. The implementation of O++, the Ode object manager, and the translation of the database facilities in O++ are described. The problems encountered in the implementation and their resolutions are reviewed.> Rakesh Agrawal 0001, Shaul Dar, Narain H. Gehani |
ICDE | 3 |
| 1993 | Making C++ Objects Persistent: the Hidden PointersabstractAbstract C++ objects of types that have virtual functions or virtual base classes contain volatile (‘memory’) pointers. We call such pointers ‘hidden pointers’ because they were not specified by the user. If such C++ objects are made persistent, then these pointers become invalid across program invocations. We encountered this problem in our implementation of O++, which is a database language based on C++. O++ extends C++ with the ability to create and access persistent objects. In this paper, we describe the hidden pointers problem in detail and present several solutions to it. Our solutions are elegant in that they do not require modifying the C++ compiler or the semantics of C++. We also discuss another problem that arises because C++ allows base class pointers to point to derived class objects. C++ has emerged as the de facto standard language for software development, and database systems based on C++ have attracted much attention. We hope that the details and techniques presented will be useful to database researchers and to implementors of object‐oriented database systems based on C++. Alexandros Biliris, Shaul Dar, Narain H. Gehani |
Softw. Pract. Exp. | 3 |
| 1993 | Capsules: A Shared Memory Access Mechanism for Concurrent C/C++abstractConcurrent C/C++ is a superset of C and C++ that provides parallel programming facilities based on message passing. Upon porting Concurrent C/C++to a shared memory multiprocessor, the authors believed it would be appropriate to supplement Concurrent C/C++ with explicit facilities for synchronizing accesses to shared data structures. The capsule, which is a shared memory access mechanism designed especially for Concurrent C/C++ to match the C++data abstraction facility called the class, is discussed. Capsules are like monitors but they have significant advantages. Capsules satisfy T. Bloom's (1979) criteria for expressiveness of synchronization conditions, support inheritance, allow operations to execute in parallel, and permit them to time out. The design of capsules is reviewed. The author evaluates existing shared memory mechanisms, describes capsules, gives examples of capsules, compares capsules with monitors, and discusses how capsules are implemented by the Concurrent C compiler.> Narain H. Gehani |
IEEE Trans. Parallel Distributed Syst. | 1 |
| 1992 | CQL++: A SQL for the Ode Object-Oriented DBMS
Shaul Dar, Narain H. Gehani, H. V. Jagadish |
EDBT | 2 |
| 1992 | Event Specification in an Active Object-Oriented DatabaseabstractThe concept of a trigger is central to any active database. Upon the occurrence of a trigger event, the trigger is “fired”, i.e, the trigger action is executed. We describe a model and a language for specifying basic and composite trigger events in the context of an object-oriented database. The specified events can be detected efficiently using finite automata. Narain H. Gehani, H. V. Jagadish, Oded Shmueli |
SIGMOD Conference | 1 |
| 1992 | Composite Event Specification in Active Databases: Model & Implementation
Narain H. Gehani, H. V. Jagadish, Oded Shmueli |
VLDB | 1 |
| 1992 | Exceptional C or C with ExceptionsabstractAbstract C does not have exception handling facilities. Errors are handled by examining the value returned by each function and signals (conditions reported to the program) are handled by using library functions. These approaches lead to ad hoc error‐handling techniques and can make programs hard to understand. Exceptional C, a superset of C, provides exception handling facilities. Exceptional C integrates the two techniques used by C programmers (i.e., status values and signals) to handle errors into one unified exception handling mechanism. In this paper, I review exception handling models, specify the criteria used for designing the exception handling facilities in Exceptional C, and then describe these facilities. I also illustrate the use of the exception handling facilities with examples. Narain H. Gehani |
Softw. Pract. Exp. | 1 |
| 1992 | Implementing Concurrent CabstractAbstract Concurrent C (C++) is a parallel superset of C (C++). Versions of Concurrent C have now been implemented for a variety of uniprocessors and multiprocessors. We first implemented a uniprocessor version of Concurrent C correctly anticipating that it would be relatively easy to extend the uniprocessor implementation to run on multiprocessors. Concurrent C is translated to C. The generated C code contains calls to the C library implementing the Concurrent C run‐time system. This paper describes the ‘hard core’ details of the Concurrent C implementation: the specifics of process states, the data structures used, the library functions, and the C code generated for various Concurrent C constructs. We also give an overview of the Concurrent C facilities and of the uniprocessor, distributed and shared‐memory multiprocessor implementations. Narain H. Gehani, William D. Roome |
Softw. Pract. Exp. | 1 |
| 1991 | Object Versioning in OdeabstractIn designing the versioning facility in Ode, a few but semantically sound and powerful concepts are introduced that allow implementation of a wide variety of paradigms. Some of the salient features of these versioning facilities are the following: (1) object versioning is orthogonal to type; (2) reference to an object can be bound statically to a specific version of the object or dynamically to whatever is its latest version; and (3) both temporal as well as derived-from relationships between versions of an object are maintained automatically. These facilities have been incorporated seamlessly into Ode's database programming language, O++. The new language constructs are powerful enough to make O++ a suitable platform for implementing a variety of versioning paradigms and application-specific systems.> Rakesh Agrawal 0001, S. Buroff, Narain H. Gehani, Dennis E. Shasha |
ICDE | 3 |
| 1991 | Ode as an Active Database: Constraints and Triggers
Narain H. Gehani, H. V. Jagadish |
VLDB | 1 |
| 1991 | Real-Time Concurrent C: A Language for Programming Dynamic Real-Time Systems
Narain H. Gehani, Krithi Ramamritham |
Real Time Syst. | 1 |
| 1990 | OdeView: The Graphical Interface to OdeabstractOdeView is the graphical front end for Ode, an object-oriented database system and environment. Ode's data model supports data encapsulation, type inheritance, and complex objects. OdeView provides facilities for examining the database schema (i.e., the object type or class hierarchy), examining class definitions, browsing objects, following chains of references starting from an object, synchronized browsing, displaying selected portions of objects (projection), and retrieving objects with specific characteristics (selection). Rakesh Agrawal 0001, Narain H. Gehani, J. Srinivasan |
SIGMOD Conference | 2 |
| 1990 | OdeView: A User-Friendly Graphical Interface to OdeabstractOdeView is the graphical front end for Ode, an object-oriented database system and environment. It is intended for users who do not want to write programs in Ode's database programming language O++ to interact with Ode but instead want to use a friendlier interface to Ode. OdeView is based on the graphical direct manipulation paradigm that involves selection of items from pop-up menus and icons that can be clicked on and dragged. OdeView provides facilities for examining the database schema examining class definitions, browsing objects, following chains of references, displaying selected portions of objects or selecting a subset of the ways in which an object can be displayed (projection), and retrieving specific objects (selection). Rakesh Agrawal 0001, Narain H. Gehani, J. Srinivasan |
SIGMOD Conference | 2 |
| 1990 | Message Passing in Concurrent C: Synchronous Versus AsynchronousabstractAbstract Message‐passing facilities used for interprocess communication fall into two categories: asynchronous and synchronous. Most concurrent programming languages support either synchronous or asynchronous message passing, but not both. Although these two kinds of message passing are equivalent because each can be implemented in terms of the other, programmers seem to have a strong preference for one or the other. Concurrent C is a parallel superset of C that initially provided only synchronous message‐passing facilities. Some users and potential users of Concurrent C indicated a strong preference for asynchronous message‐passing facilities. In response to this feedback, we eventually extended Concurrent C with asynchronous message passing. The issue of synchronous message passing versus asynchronous message passing has been much discussed in the context of operating systems but not in the context of programming languages. In this paper, I will explain the decision to add asynchronous message passing to Concurrent C. I will first summarize and review the pros and cons of synchronous and asynchronous message passing. I will then compare four versions of an example written using synchronous and asynchronous message passing, discuss some details about implementing synchronous and asynchronous message passing facilities, examine the costs involved in using these facilities, and present some experimental results. Narain H. Gehani |
Softw. Pract. Exp. | 1 |
| 1989 | ODE (Object Database and Environment): The Language and the Data ModelabstractODE is a database system and environment based on the object paradigm. It offers one integrated data model for both database and general purpose manipulation. The database is defined, queried and manipulated in the database programming language O++ which is based on C++. O++ borrows and extends the object definition facility of C++, called the class. Classes support data encapsulation and multiple inheritance. We provide facilities for creating persistent and versioned objects, defining sets, and iterating over sets and clusters of persistent objects. We also provide facilities to associate constraints and triggers with objects. This paper presents the linguistic facilities provided in O++ and the data model it supports. Rakesh Agrawal 0001, Narain H. Gehani |
SIGMOD Conference | 2 |
| 1989 | Experience with Multiple Processor Versions of Concurrent CabstractConcurrent C, a superset of C providing parallel programming facilities, is considered. A uniprocessor version of Concurrent C was first implemented. After experience with this version, the Concurrent C implementation was extended to run on two types of multiple processor systems: a set of computers connected by a local area network (the distributed version) and a shared-memory multiprocessor (the multiprocessor version). Experience with implementing and using these versions of Concurrent C is described. Specifically, the language changes triggered by the multiple processor implementations, some sample programs, a comparison of the execution times on various systems, and the suitability of these multiple processor architectures are discussed.> Robert F. Cmelik, Narain H. Gehani, William D. Roome |
IEEE Trans. Software Eng. | 2 |
| 1988 | Concurrent C++: Concurrent Programming with Class(es)abstractAbstract C++ and Concurrent C are both upward‐compatible supersets of C that provide data abstraction and parallel programming facilities, respectively. Although data abstraction facilities are important for writing concurrent programs, we did not provide data abstraction facilities in Concurrent C because we did not want to duplicate the C++ research effort. Instead, we decided that we would eventually integrate C++ and Concurrent C facilities to produce a language with both data abstraction and parallel programming facilities, namely, Concurrent C++. Data abstraction and parallel programming facilities are orthogonal. Despite this, the merger of Concurrent C and C++ raised several integration issues. In this paper, we will give introductions to C++ and Concurrent C, give two examples illustrating the advantages of using data abstraction facilities in concurrent programs, and discuss issues in integrating C++ and Concurrent C to produce Concurrent C++. Narain H. Gehani, William D. Roome |
Softw. Pract. Exp. | 1 |
| 1988 | Rendezvous Facilities: Concurrent C and the Ada LanguageabstractThe concurrent programming facilities in both Concurrent C and the Ada language are based on the rendezvous concept. Although these facilities are similar, there are substantial differences. Facilities in Concurrent C were designed keeping in perspective the concurrent programming facilities in the Ada language and their limitations. Concurrent C facilities have also been modified as a result of experience with its initial implementations. The authors compare the concurrent programming facilities in Concurrent C and Ada and show that it is easier to write a variety of concurrent programs in Concurrent C than in Ada.> Narain H. Gehani, William D. Roome |
IEEE Trans. Software Eng. | 1 |
| 1987 | Concurrent C and roboticsabstractMany current robot systems exhibit a significant degree of concurrency, doing many activities in parallel. Future sensor-based robots are expected to exhibit even more concurrency. Programs to control such robots are characterized by the need to wait for external events and/or handle interrupts, deal with concurrent activities, synchronize actions with external events and communicate with other robots/processes. In this paper, we focus on the advantages of concurrent programming for robotics and suggest that a general purpose language with the right facilities is a good vehicle for robot programming. In this context we will discuss Concurrent C, an upward-compatible extension of the C language that provides high-level concurrent programming facilities. We give a brief description of Concurrent C followed by a description of how Concurrent C programs communicate with robots and devices. We then show, by means of examples, all of which were implemented, how Concurrent C simplifies the writing of robot programs. Of specific interest are the process interaction and related interrupt handling facilities. Ingemar J. Cox, Narain H. Gehani |
ICRA | 2 |
| 1986 | Concurrent C
Narain H. Gehani, William D. Roome |
Softw. Pract. Exp. | 1 |
| 1985 | Ada's Derived Types and Units of MeasureabstractAbstract Types in programming languages cannot model many properties of real world objects and quantities. Consequently, many errors resulting from the inconsistent usage of program objects representing real world objects and quantities cannot be detected automatically. For example, the real variables PRICE and WEIGHT, representing the price of diesel fuel and the weight of a person, may be inadvertently added, giving a non‐sensical value; such an error cannot be detected by a compiler. The programming language Ada introduces the concept ofderivedtypes to tackle this problem. An alternative solution to this problem is the incorporation ofunits of measureas a new data attribute. Derived types only partially solve the problem of detecting the inconsistent usage of objects; some valid usages of objects are also not allowed. Moreover, the solution is inelegant and inconvenient to use. On the other hand, specification of units of measure solves the problem elegantly and conveniently. The two solutions are compared and analysed. Several ways to implement units of measure in Ada are examined. Narain H. Gehani |
Softw. Pract. Exp. | 1 |
| 1985 | Flex: A High-Level Language for Specifying Customized MicroprocessorsabstractResearchers at Bell Labs have recently developed a silicon compiler, named Plex, that automatically generates VLSI layouts of high performance and area efficient microprocessors. Plex takes as input a specification of the function to be executed and generates a complete mask-level layout of a customized microprocessor to execute that function. The Plex microprocessor interacts with the external world, via input and output wires, and interrupts. The dedicated function performed by a Plex microprocessor typically involves real-time handling of inputs and interrupts-and the real-time generation of output signals. Douglas Comer, Narain H. Gehani |
IEEE Trans. Software Eng. | 2 |
| 1984 | Concurrent Programming in the Ada Language: The Polling BiasabstractAbstract The rendezvous is an important concept in concurrent programming—two processes need to synchronize, i.e. rendezvous, to exchange information. The Ada programming language is the first programming language to use the rendezvous as the basis of its concurrent programming facilities. Our experience with rendezvous facilities in the Ada language shows that these facilities lead to and encourage the design of programs that poll. Polling is generally, but not always, undesirable because it is wasteful of system resources. We illustrate and examine the reasons for polling bias in the Ada language. We give suggestions on how to avoid polling programs, and suggest changes to the rendezvous facilities to eliminate the polling bias. The ramifications of these changes to the implementation of the Ada language are also discussed. Although we have focused on the rendezvous facilities in the Ada language our analysis is also applicable to other languages. A polling bias can occur in any concurrent programming language based on the rendezvous mechanism if it does not provide appropriate facilities. Narain H. Gehani, Thomas A. Cargill |
Softw. Pract. Exp. | 1 |
| 1984 | Broadcasting Sequential Processes (BSP)abstractCommunication in a broadcast protocol multiprocessor (BPM) is inherently different from that in distributed systems formed by explicit links between processors. A message broadcast by a processor in a BPM is received directly by all other processors in the network instead of being restricted to only one processor. Broadcasting is an inexpensive way of communicating with a large number of processors on a BPM. In this paper I will describe a new approach to user-level distributed programming called broadcast programming, i.e., distributed programs written as cooperating broadcasting sequential processes (BSP). Existing concurrent programming languages do not provide facilities to exploit the broadcast capability of a BPM. The idea of distributed programs written as BSP is tailored to exploiting a BPM architecture but is not restricted to such an architecture-however, implementation of the broadcast capability may not be as efficient on other architectures. I will illustrate the utility and convenience of broadcast programming with many examples. These examples will also be used to explore the suitability and advantages of BSP and to determine appropriate facilities for BSP. Narain H. Gehani |
IEEE Trans. Software Eng. | 1 |
| 1983 | High Level Form Definition in Office Information SystemsabstractSeveral office information systems based on the concept of forms have been built. However, none of these systems provides a high level language for defining forms. In this paper, I will discuss the advantages of a high level form definition mechanism, state the requirements that should be satisfied by such a mechanism, and then propose a high level form definition language based on the concept of abstract data types in programming languages. The proposed mechanism can be used in a form manipulation system. Alternatively, it can be incorporated into an existing languageor be the core of a specialy designed form manipulation language. The form definition language is illustrated by two exemplary form definitions. Narain H. Gehani |
Comput. J. | 1 |
| 1983 | An Electronic Form System-An Experience in PrototypingabstractAbstract A prototype electronic form system was implemented to test the feasibility of a high level form definition mechanism. This mechanism is based on the concept of abstract data types in programming languages. This paper briefly discusses prototypes in general and describes the prototype electronic form system—specific objectives, design decisions, the implementation and evaluation. The prototype has proven invaluable in providing a better understanding of the facilities that should be included in a form definition language and of the implementation issues. Success of the prototype can be attributed to keeping prototype objectives in perspective throughout its implementation and ensuring that the objectives were not violated by any design decisions or implementation restrictions. Narain H. Gehani |
Softw. Pract. Exp. | 1 |
| 1982 | Concurrency in Ada and Multicomputers
Narain H. Gehani |
Comput. Lang. | 1 |
| 1982 | Specifications.: Formal and Informal-A Case StudyabstractAbstract Formal specifications (algebraic) are given for an informally specified small subsystem of the Change Management Automatic Build System. A comparison of the two specifications shows that although informal specifications are easier to read, the formal specifications are clearer, specify operation domains precisely, define the interaction between the operations, show the incompleteness of the informal specifications and are devoid of implementation details. The formal specifications pointed to the need of a function not in the subsystem whose inclusion would improve the system design. This inclusion is now being considered. However, the use of algebraic specifications requires practice and experience. Although the formal specification of large systems is somewhat impractical at the moment, experience in using formal specifications can lead to better informal specifications. Narain H. Gehani |
Softw. Pract. Exp. | 1 |
| 1982 | The Potential of Forms in Office AutomationabstractForms have been used in the design of at least three office automation systems (OfficeTalk, Odyssey, and OFS). Forms help ease the transition from a manual office system based on paper forms to a computer office system based on electronic forms. Forms also exhibit other advantages, not exploited presently, that make them very desirable for inclusion in office automation systems of the future. Potential capabilities of electronic forms are explored by focusing on three important aspects-fields, abstraction, and access rights. Electronic forms can have a large variety of fields; constraints and rules can be associated with these fields and automatically enforced. Moreover, forms are similar to abstract data types. Treating forms as abstract data types allows their being used as an abstraction tool and facilitates many kinds of automatic error checking. Finally, access rights can be associated with forms to ensure that forms are accessed and/or modified by appropriate users only. To illustrate the ideas presented, an exemplary form definition is presented and some implementation details discussed. Narain H. Gehani |
IEEE Trans. Commun. | 1 |
| 1982 | Databases and Units of MeasureabstractA serious impediment to the integrated use of databases across international boundaries, scientific disciplines and application areas is the use of different units of measure, e.g., miles or kilometers for distance, dollars or rupees for currency, and Btu or kWh for energy. Units of measure are not specified in the data definition language but associated by convention with values in the database. Inconsistent usage of values with different units cannot be checked atuomatically. Retrieval, storage, and manipulation of data values in units other than those associated with the values requires that the user perform the appropriate conversions. This process is inconvenient and error prone. These problems are illustrated by an international database example. Narain H. Gehani |
IEEE Trans. Software Eng. | 1 |
| 1980 | Generic Procedures: An Implementation and an Undecidability Result
Narain H. Gehani |
Comput. Lang. | 1 |
| 1979 | High Level Data Structure - the Grid
Narain H. Gehani |
Comput. Lang. | 1 |
| 1977 | Units of Measure as a Data Attribute
Narain H. Gehani |
Comput. Lang. | 1 |