waashk/dblp huggingface dataset:
a comparison of structured and unstructured p2p approaches to heterogeneous random peer selection. random peer selection is used by numerous p2p applications; examples include application-level multicast, unstructured file sharing, and network location mapping. in most of these applications, support for a heterogeneous capacity distribution among nodes is desirable: in other words, nodes with higher capacity should be selected proportionally more often. random peer selection can be performed over both structured and unstructured graphs. this paper compares these two basic approaches using a candidate example from each approach. for unstructured heterogeneous random peer selection, we use swaplinks, from our previous work. for the structured approach, we use the bamboo dht adapted to heterogeneous selection using our extensions to the item-balancing technique by karger and ruhl. testing the two approaches over graphs of 1000 nodes and a range of network churn levels and heterogeneity distributions, we show that swaplinks is the superior random selection approach: (i) swaplinks enables more accurate random selection than does the structured approach in the presence of churn, and (ii) the structured approach is sensitive to a number of hard-to-set tuning knobs that affect performance, whereas swaplinks is essentially free of such knobs.
virtually shared displays and user input devices. this paper proposes making displays and input devices as first-class citizens in a networked system environment for collaborative applications. the paper describes a virtually shared model that enables users to use remote displays as extensions of their local displays and to allow multiple users to use multiple cursors and keyboards to input and control shared applications and their windows simultaneously. we have implemented a prototype system and deployed it to three doe fusion control rooms. the implementation performs well on today's hardware and our user feedbacks show that such a paradigm can substantially improve information sharing.
using provenance to aid in personal file search. as the scope of personal data grows, it becomes increasingly difficult to find what we need when we need it. desktop search tools provide a potential answer, but most existing tools are incomplete solutions: they index content, but fail to capture dynamic relationships from the user's context. one emerging solution to this is context-enhanced search, a technique that reorders and extends the results of content-only search using contextual information. within this framework, we propose using strict causality, rather than temporal locality, the current state of the art, to direct contextual searches. causality more accurately identifies data flow between files, reducing the false-positives created by context-switching and background noise. further, unlike previous work, we conduct an online user study with a fully-functioning implementation to evaluate user-perceived search quality directly. search results generated by our causality mechanism are rated a statistically-significant 17% higher on average over all queries than by using content-only search or context-enhanced search with temporal locality.
from stem to sead: speculative execution for automated defense. most computer defense systems crash the process that they protect as part of their response to an attack. although recent research explores the feasibility of self-healing to automatically recover from an attack, self-healing faces some obstacles before it can protect legacy applications and cots (commercial off-the-shelf) software. besides the practical issue of not modifying source code, self-healing must know both when to engage and how to guide a repair. previous work on a self-healing system, stem, left these challenges as future work. this paper improves stem's capabilities along three lines to provide practical speculative execution for automated defense (sead). first, stem is now applicable to cots software: it does not require source code, and it imposes a roughly 73% performance penalty on apache's normal operation. second, we introduce repair policy to assist the healing process and improve the semantic correctness of the repair. finally, stem can create behavior profiles based on aspects of data and control flow.
diskseen: exploiting disk layout and access history to enhance i/o prefetch. current disk prefetch policies in major operating systems track access patterns at the level of the file abstraction. while this is useful for exploiting application-level access patterns, file-level prefetching cannot realize the full performance improvements achievable by prefetching. there are two reasons for this. first, certain prefetch opportunities can only be detected by knowing the data layout on disk, such as the contiguous layout of file metadata or data from multiple files. second, nonsequential access of disk data (requiring disk head movement) is much slower than sequential access, and the penalty for mis-prefetching a 'random' block, relative to that of a sequential block, is correspondingly more costly. to overcome the inherent limitations of prefetching at the logical file level, we propose to perform prefetching directly at the level of disk layout, and in a portable way. our technique, called diskseen, is intended to be supplementary to, and to work synergistically with, file-level prefetch policies, if present. diskseen tracks the locations and access times of disk blocks, and based on analysis of their temporal and spatial relationships, seeks to improve the sequentiality of disk accesses and overall prefetching performance. our implementation of the diskseen scheme in the linux 2.6 kernel shows that it can significantly improve the effectiveness of prefetching, reducing execution times by 20%-53% for micro-benchmarks and real applications such as grep, cvs, and tpc-h.
supporting multiple oses with os switching. people increasingly put more than one oses into their computers and devices like mobile phones. multiboot and virtualization are two common technologies for this purpose. in this paper we promote a new approach called os switching. with os switching, multiple oses timeshare the same computer cooperatively. a typical implementation can reuse an os's suspend/resume functionality with little modification. the os switching approach promises fast native execution speed with shorter switching time than traditional multi-boot approach. we describe the design of os switching as well as our implementation with linux and wince, and evaluate its performance.
dynamic spyware analysis. spyware is a class of malicious code that is surreptitiously installed on victims' machines. once active, it silently monitors the behavior of users, records their web surfing habits, and steals their passwords. current anti-spyware tools operate in a way similar to traditional virus scanners. that is, they check unknown programs against signatures associated with known spyware instances. unfortunately, these techniques cannot identify novel spyware, require frequent updates to signature databases, and are easy to evade by code obfuscation. in this paper, we present a novel dynamic analysis approach that precisely tracks the flow of sensitive information as it is processed by the web browser and any loaded browser helper objects. using the results of our analysis, we can identify unknown components as spyware and provide comprehensive reports on their behavior. the techniques presented in this paper address limitations of our previouswork on spyware detection and significantly improve the quality and richness of our analysis. in particular, our approach allows a human analyst to observe the actual flows of sensitive data in the system. based on this information, it is possible to precisely determine which sensitive data is accessed and where this data is sent to. to demonstrate the effectiveness of the detection and the comprehensiveness of the generated reports, we evaluated our system on a substantial body of spyware and benign samples.
flexvol: flexible, efficient file volume virtualization in wafl. virtualization is a well-known method of abstracting physical resources and of separating the manipulation and use of logical resources from their underlying implementation. we have used this technique to virtualize file volumes in the wafl® file system, adding a level of indirection between client-visible volumes and the underlying physical storage. the resulting virtual file volumes, or flexvol® volumes, are managed independent of lower storage layers. multiple volumes can be dynamically created, deleted, resized, and reconfigured within the same physical storage container. we also exploit this new virtualization layer to provide several powerful new capabilities. we have enhanced snapmirror®, a tool for replicating volumes between storage systems, to remap storage allocation during transfer, thus optimizing disk layout for the destination storage system. flexclone® volumes provide writable snapshot® copies, using a flexvol volume backed by a snapshot copy of a different volume. flexvol volumes also support thin provisioning; a flexvol volume can have a logical size that exceeds the available physical storage. flexclone volumes and thin provisioning are a powerful combination, as they allow the creation of light-weight copies of live data sets while consuming minimal storage resources. we present the basic architecture of flexvol volumes, including performance optimizations that decrease the overhead of our new virtualization layer. we also describe the new features enabled by this architecture. our evaluation of flexvol performance shows that it incurs only a minor performance degradation compared with traditional, nonvirtualized wafl volumes. on the industry-standard spec sfs benchmark, flexvol volumes exhibit less than 4% performance overhead, while providing all the benefits of virtualization.
design tradeoffs for ssd performance. solid-state disks (ssds) have the potential to revolutionize the storage system landscape. however, there is little published work about their internal organization or the design choices that ssd manufacturers face in pursuit of optimal performance. this paper presents a taxonomy of such design choices and analyzes the likely performance of various configurations using a trace-driven simulator and workload traces extracted from real systems. we find that ssd performance and lifetime is highly workload-sensitive, and that complex systems problems that normally appear higher in the storage stack, or even in distributed systems, are relevant to device firmware.
prefetching with adaptive cache culling for striped disk arrays. conventional prefetching schemes regard prediction accuracy as important because useless data prefetched by a faulty prediction may pollute the cache. if prefetching requires considerably low read cost but the prediction is not accurate, it may or may not be beneficial depending on the situation. however, the problem of low prediction accuracy can be dramatically reduced if we efficiently manage prefetched data by considering the total hit rate for both prefetched data and cached data. to achieve this goal, we propose an adaptive strip prefetching (asp) scheme, which provides low prefetching cost and evicts prefetched data at the proper time by using differential feedback that maximizes the hit rate of both prefetched data and cached data in a given cache management scheme. additionally, asp controls prefetching by using an online disk simulation that investigates whether prefetching is beneficial for the current workloads and stops prefetching if it is not. finally, asp provides methods that resolve both independency loss and parallelism loss that may arise in striped disk arrays. we implemented a kernel module in linux version 2.6.18 as a raid-5 driver with our scheme, which significantly outperforms the sequential prefetching of linux from several times to an order of magnitude in a variety of realistic workloads.
protection strategies for direct access to virtualized i/o devices. commodity virtual machine monitors forbid direct access to i/o devices by untrusted guest operating systems in order to provide protection and sharing. however, both i/o memory management units (iommus) and recently proposed software-based methods can be used to reduce the overhead of i/o virtualization by providing untrusted guest operating systems with safe, direct access to i/o devices. this paper explores the performance and safety tradeoffs of strategies for using these mechanisms. the protection strategies presented in this paper provide equivalent inter-guest protection among operating system instances. however, they provide varying levels of intra-guest protection from driver software and incur varying levels of overhead. a simple direct-map strategy incurs the least overhead, providing native-level performance but offering no enhanced protection from misbehaving device drivers within the guest operating system. additional protection against guest drivers can be achieved by limiting iommu page-table mappings to memory buffers that are actually used in i/o transfers. furthermore, the cost incurred by this limitation can be minimized by aggressively reusing these mappings. surprisingly, a software-only strategy that does not use an iommu at all performs competitively, and sometimes better than, hardware-based strategies while maintaining strict inter-guest isolation.
wide-scale data stream management. this paper describes mortar, a distributed stream processing platform for building very large queries across federated systems (enterprises, grids, datacenters, testbeds). nodes in such systems can be queried for distributed debugging, application control and provisioning, anomaly detection, and measurement. we address the primary challenges of managing continuous queries that have thousands of wide-area sources that may periodically be down, disconnected, or overloaded, e.g., multiple data centers filled with cheap pcs, internet testbeds such as planetlab, or country-wide sensor installations. mortar presents a clean-slate design for best-effort in-network processing. for each query, it builds multiple, static overlays and leverages the union of overlay paths to provide resilient query installation and data routing. further, a unique data management scheme mitigates the impact of clock skew on distributed stream processing, reducing result latency by a factor of 8, and allows users to specify custom in-network operators that transparently benefit from multipath routing. when compared to a contemporary distributed snapshot querying substrate, mortar uses a fifth of the bandwidth while providing increased query resolution, responsiveness, and accuracy during failures.
evaluating distributed systems: does background traffic matter? evaluating novel networked protocols and services requires subjecting the target system to realistic internet conditions. however, there is no common understanding of what is required to capture such realism. conventional wisdom suggests that competing background traffic will influence service and protocol behavior. once again however, there is no understanding of what aspects of background traffic are important and the extent to which services are sensitive to these characteristics. earlier work shows that internet traffic demonstrates significant burstiness at a range of time scales. unfortunately, existing systems evaluations either do not consider background traffic or employ simple synthetic models, e.g., based on poisson arrivals, that do not capture these burstiness properties. in this paper, we show that realistic background traffic, has qualitatively different impact on application and protocol behavior than simple traffic models. one conclusion from our work is that applications should be evaluated under a range of background traffic characteristics to determine the relative merits of applications and to understand behavior in corner cases of live deployment.
context-aware mechanisms for reducing interactive delays of energy management in disks. aggressive energy conserving mechanisms can maximize energy efficiency, but often have the negative trade-off of simultaneously reducing system responsiveness due to the switching of component power modes. this side-effect is especially prominent in hard disk drives, where the time required to switch power modes is dictated by the latency of the mechanical elements of the drive. existing disk activity prediction schemes provide solutions for eliminating transition delays in the presence of non-interactive applications and processes, but perform poorly on systems dominated by interactive applications. the key idea in eliminating transition delays exposed to users in interactive applications is that the users are responsible for placing energy and performance demand on the systems through interactions with applications. therefore, monitoring user interactions with applications provides an opportunity for predicting upcoming power mode transitions and, as a result, eliminating the delays associated with these transitions. in this paper, we propose a set of user behavior monitoring and prediction mechanisms that significantly reduce delays in interactive applications while minimizing energy consumption.
large-scale virtualization in the emulab network testbed. network emulation is valuable largely because of its ability to study applications running on real hosts and "somewhat real" networks. however, conservatively allocating a physical host or network link for each corresponding virtual entity is costly and limits scale. we present a system that can faithfully emulate, on low-end pcs, virtual topologies over an order of magnitude larger than the physical hardware, when running typical classes of distributed applications that have modest resource requirements. this version of emulab virtualizes hosts, routers, and networks, while retaining near-total application transparency, good performance fidelity, responsiveness suitable for interactive use, high system throughput, and efficient use of resources. our key design techniques are to use the minimum degree of virtualization that provides transparency to applications, to exploit the hierarchy found in real computer networks, to perform optimistic automated resource allocation, and to use feed-back to adaptively allocate resources. the entire system is highly automated, making it easy to use even when scaling to more than a thousand virtual nodes. this paper identifies the many problems posed in building a practical system, and describes the system's motivation, design, and preliminary evaluation.
remote profiling of resource constraints of web servers using mini-flash crowds. unexpected surges in web request traffic can exercise server-side resources (e.g., access bandwidth, processing, storage etc.) in undesirable ways. administrators today do not have requisite tools to understand the impact of such "flash crowds" on their servers. most web servers either rely on over-provisioning and admission control, or use potentially expensive solutions like cdns, to ensure high availability in the face of flash crowds. a more fine-grained understanding of the performance of individual server resources under emulated but realistic and controlled flash crowd-like conditions can aid administrators to make more efficient resource management decisions. in this paper, we present miniflash crowds (mfc) - a light-weight profiling service that reveals resource bottlenecks in a web server infrastructure. mfc uses a set of controlled probes where an increasing number of distributed clients make synchronized requests that exercise specific resources or portions of a remote web server. we carried out controlled lab-based tests and experiments in collaboration with operators of production servers. we show that our approach can faithfully track the impact of request loads on different server resources and provide useful insights to server operators on the constraints of different components of their infrastructure. we also present results from a measurement study of the provisioning of several hundred popular web servers, a few hundred web servers of startup companies, and about hundred phishing servers.
context-aware prefetching at the storage server . in many of today's applications, access to storage constitutes the major cost of processing a user request. data prefetching has been used to alleviate the storage access latency. under current prefetching techniques, the storage system prefetches a batch of blocks upon detecting an access pattern. however, the high level of concurrency in today's applications typically leads to interleaved block accesses, which makes detecting an access pattern a very challenging problem. towards this, we propose and evaluate quickmine, a novel, lightweight and minimally intrusive method for contextaware prefetching. under quickmine, we capture application contexts, such as a transaction or query, and leverage them for context-aware prediction and improved prefetching effectiveness in the storage cache. we implement a prototype of our context-aware prefetching algorithm in a storage-area network (san) built using network block device (nbd). our prototype shows that context-aware prefetching clearly out-performs existing context-oblivious prefetching algorithms, resulting in factors of up to 2 improvements in application latency for two e-commerce workloads with repeatable access patterns, tpc-w and rubis.
optimizing tcp receive performance. the performance of receive side tcp processing has traditionally been dominated by the cost of the 'per-byte' operations, such as data copying and checksumming. we show that architectural trends in modern processors, in particular aggressive prefetching, have resulted in a fundamental shift in the relative overheads of per-byte and per-packet operations in tcp receive processing, making per-packet operations the dominant source of overhead. motivated by this architectural trend, we present two optimizations, receive aggregation and acknowledgment offload, that improve the receive side tcp performance by reducing the number of packets that need to be processed by the tcp/ip stack. our optimizations are similar in spirit to the use of tcp segment offload (tso) for improving transmit side performance, but without need for hardware support. with these optimizations, we demonstrate performance improvements of 45-67% for receive processing in native linux, and of 86% for receive processing in a linux guest operating system running on xen.
experiences with client-based speculative remote display. we propose an approach to remote display systems in which the client predicts the screen update events that the server will send and applies them to the screen immediately, thus eliminating the network round-trip time and making the system more responsive in a wide-area or high loss environment. incorrectly predicted events are undone when the actual events arrive from the server. the approach requires no server or protocol changes, and thus can work with existing systems. since it is core to the feasibility of such a speculative remote display system, we study the predictability of the events that occur under typical workloads in two extant systems, windows remote desktop and vnc. we find that simple, state-limited markov models are often able to correctly predict the next event. based on these results, we design, implement, and evaluate a speculative remote display extension to the vnc client. in our implementation, the end user can trade off between the responsiveness of the display and the level of temporarily displayed incorrect predictions. we evaluate vnc/srd with two user studies. we conclude by describing design alternatives.