352754
EXPLODE: a lightweight, general system for finding serious storage system errors
Storage systems such as file systems, databases, and RAID systems have a simple, basic contract: you give them data, they do not lose or corrupt it. Often they store the only copy, making its irrevocable loss almost arbitrarily bad. Unfortunately, their code is exceptionally hard to get right, since it must correctly recover from any crash at any program point, no matter how their state was smeared across volatile and persistent memory.
 This paper describes EXPLODE, a system that makes it easy to systematically check real storage systems for errors. It takes user-written, potentially system-specific checkers and uses them to drive a storage system into tricky corner cases, including crash recovery errors. EXPLODE uses a novel adaptation of ideas from model checking, a comprehensive, heavy-weight formal verification technique, that makes its checking more systematic (and hopefully more effective) than a pure testing approach while being just as lightweight.
 EXPLODE is effective. It found serious bugs in a broad range of real storage systems (without requiring source code): three version control systems, Berkeley DB, an NFS implementation, ten file systems, a RAID system, and the popular VMware GSX virtual machine. We found bugs in every system we checked, 36 bugs in total, typically with little effort.
1146793
An empirical study of operating systems errors
We present a study of operating system errors found by automatic, static, compiler analysis applied to the Linux and OpenBSD kernels. Our approach differs from previous studies that consider errors found by manual inspection of logs, testing, and surveys because static analysis is applied uniformly to the entire kernel source, though our approach necessarily considers a less comprehensive variety of errors than previous studies. In addition, automation allows us to track errors over multiple versions of the kernel source to estimate how long errors remain in the system before they are fixed.We found that device drivers have error rates up to three to seven times higher than the rest of the kernel. We found that the largest quartile of functions have error rates two to six times higher than the smallest quartile. We found that the newest quartile of files have error rates up to twice that of the oldest quartile, which provides evidence that code "hardens" over time. Finally, we found that bugs remain in the Linux kernel an average of 1.8 years before being fixed.
2868377
Intelligent decision system and its application in business innovation self assessment
In this paper, it is described how a multiple criteria decision analysis software tool, the Intelligent Decision System (IDS), can be used to help business self-assessment. Following a brief outline of a model for assessing business innovation capability and the IDS software, the process of using IDS to implement different types of assessment questions is discussed. It is demonstrated that IDS is a flexible tool capable of handling different types of data in self-assessment, including uncertain and incomplete data, and providing a wide range of information including scores, performance diversity, strength and weakness profile and graphics.
455075
Expiring Data in a Warehouse
Data warehouses are used to collect and analyze data from remote sources. The data collected often originate from transactional information and can become very large. This paper presents a framework for incrementally removing warehouse data (without a need to fully recompute offering two choices. One is to expunge data, in which case the result is as if the data had never existed. The second is to expire data, in which case views defined over the data are not necessarily affected. the framework, a user or administrator can specify what data to expire or expunge, what auxiliary data is to be kept for facilitating incremental view maintenance, what type of updates are expected from external sources, and how the system should compensate when data is expired or other parameters changed. We present algorithms for the various expiration and compensation actions, and we show how our framework can be implemented on top of a conventional RDBMS. Keywords: view maintenance, data warehous
15187378
An efficient fault-tolerant distributed channel allocation algorithm for cellular networks
A channel allocation algorithm in a cellular network consists of two parts: a channel acquisition algorithm and a channel selection algorithm. Some of the previous works in this field focused on centralized approaches to allocating channels. But, centralized approaches are neither scalable nor reliable. Recently, distributed dynamic channel allocation algorithms have been proposed, and they have gained a lot of attention due to their high reliability and scalability. But, in most of the algorithms, the cell that wants to borrow a channel has to wait for replies from all its interference neighbors and, hence, is not fault-tolerant. In this paper, we propose a new algorithm that is fault-tolerant and makes full use of the available channels. It can tolerate the failure of mobile nodes as well as static nodes without any significant degradation in service.
7182462
On the database/network interface in large-scale publish/subscribe systems
The work performed by a publish/subscribe system can conceptually be divided into subscription processing and notification dissemination. Traditionally, research in the database and networking communities has focused on these aspects in isolation. The interface between the database server and the network is often overlooked by previous research. At one extreme, database servers are directly responsible for notifying individual subscribers; at the other extreme, updates are injected directly into the network, and the network is solely responsible for processing subscriptions and forwarding notifications. These extremes are unsuitable for complex and stateful subscription queries. A primary goal of this paper is to explore the design space between the two extremes, and to devise solutions that incorporate both database-side and network-side considerations in order to reduce the communication and server load and maintain system scalability. Our techniques apply to a broad range of stateful query types, and we present solutions for several of them. Our detailed experiments based on real and synthetic workloads with varying characteristics and link-level network simulation show that by exploiting the query semantics and building an appropriate interface between the database and the network, it is possible to achieve orders-of-magnitude savings in network traffic at low server-side processing cost.
5717822
A family competition evolutionary algorithm for automated docking of flexible ligands to proteins
We study an evolutionary algorithm for flexible ligand docking. Based on family competition and adaptive rules, the proposed approach consists of global and local strategies by integrating decreasing mutations and self-adaptive mutations. To demonstrate the robustness of the proposed approach, we apply it to the problems of the first international contests on evolutionary optimization. Following the description of function optimization, our approach is applied to a dihydrofolate reductase enzyme with the anti-cancer drug methotrexate and with two analogs of the antibacterial drug trimethoprim. Our numerical results indicate that the proposed approach is robust. The docked lowest energy structures have rms derivations ranging from 0.72 A to 1.98 A with respect to the corresponding crystal structure.