首页 > 最新文献

Proceedings of the -- USENIX Symposium on Operating Systems Design and Implementation (OSDI). USENIX Symposium on Operating Systems Design and Implementation最新文献

英文 中文
Finding a Needle in Haystack: Facebook's Photo Storage 大海捞针:Facebook的照片存储
D. Beaver, Sanjeev Kumar, Harry C. Li, J. Sobel, Peter Vajgel
This paper describes Haystack, an object storage system optimized for Facebook's Photos application. Facebook currently stores over 260 billion images, which translates to over 20 petabytes of data. Users upload one billion new photos (∼60 terabytes) each week and Facebook serves over one million images per second at peak. Haystack provides a less expensive and higher performing solution than our previous approach, which leveraged network attached storage appliances over NFS. Our key observation is that this traditional design incurs an excessive number of disk operations because of metadata lookups. We carefully reduce this per photo metadata so that Haystack storage machines can perform all metadata lookups in main memory. This choice conserves disk operations for reading actual data and thus increases overall throughput.
本文描述了Haystack,一个针对Facebook照片应用优化的对象存储系统。Facebook目前存储了超过2600亿张图片,相当于超过20pb的数据。用户每周上传10亿张新照片(约60tb), Facebook在最高峰时每秒提供100万张以上的照片。与之前的方法相比,Haystack提供了一种成本更低、性能更高的解决方案,之前的方法利用了NFS上的网络附加存储设备。我们的主要观察结果是,由于元数据查找,这种传统设计会导致过多的磁盘操作。我们小心地减少了每张照片元数据的开销,以便Haystack存储机器可以在主内存中执行所有元数据查找。这种选择节省了读取实际数据的磁盘操作,从而提高了总体吞吐量。
{"title":"Finding a Needle in Haystack: Facebook's Photo Storage","authors":"D. Beaver, Sanjeev Kumar, Harry C. Li, J. Sobel, Peter Vajgel","doi":"10.5555/1924943.1924947","DOIUrl":"https://doi.org/10.5555/1924943.1924947","url":null,"abstract":"This paper describes Haystack, an object storage system optimized for Facebook's Photos application. Facebook currently stores over 260 billion images, which translates to over 20 petabytes of data. Users upload one billion new photos (∼60 terabytes) each week and Facebook serves over one million images per second at peak. Haystack provides a less expensive and higher performing solution than our previous approach, which leveraged network attached storage appliances over NFS. Our key observation is that this traditional design incurs an excessive number of disk operations because of metadata lookups. We carefully reduce this per photo metadata so that Haystack storage machines can perform all metadata lookups in main memory. This choice conserves disk operations for reading actual data and thus increases overall throughput.","PeriodicalId":90294,"journal":{"name":"Proceedings of the -- USENIX Symposium on Operating Systems Design and Implementation (OSDI). USENIX Symposium on Operating Systems Design and Implementation","volume":"1 1","pages":"47-60"},"PeriodicalIF":0.0,"publicationDate":"2010-10-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88274291","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 493
Large-scale Incremental Processing Using Distributed Transactions and Notifications 使用分布式事务和通知的大规模增量处理
Daniel Peng, F. Dabek
Updating an index of the web as documents are crawled requires continuously transforming a large repository of existing documents as new documents arrive. This task is one example of a class of data processing tasks that transform a large repository of data via small, independent mutations. These tasks lie in a gap between the capabilities of existing infrastructure. Databases do not meet the storage or throughput requirements of these tasks: Google's indexing system stores tens of petabytes of data and processes billions of updates per day on thousands of machines. MapReduce and other batch-processing systems cannot process small updates individually as they rely on creating large batches for efficiency.We have built Percolator, a system for incrementally processing updates to a large data set, and deployed it to create the Google web search index. By replacing a batch-based indexing system with an indexing system based on incremental processing using Percolator, we process the same number of documents per day, while reducing the average age of documents in Google search results by 50%.
在抓取文档时更新web索引需要在新文档到来时不断转换现有文档的大型存储库。此任务是一类数据处理任务的一个示例,这些任务通过小的、独立的突变来转换大型数据存储库。这些任务存在于现有基础设施的能力之间的差距。数据库不能满足这些任务的存储或吞吐量要求:谷歌的索引系统存储了数十pb的数据,每天在数千台机器上处理数十亿次更新。MapReduce和其他批处理系统不能单独处理小的更新,因为它们依赖于创建大量的批量来提高效率。我们已经建立了Percolator,一个用于增量处理大型数据集更新的系统,并将其部署到创建Google网络搜索索引中。通过使用Percolator将基于批处理的索引系统替换为基于增量处理的索引系统,我们每天处理相同数量的文档,同时将Google搜索结果中文档的平均年龄减少了50%。
{"title":"Large-scale Incremental Processing Using Distributed Transactions and Notifications","authors":"Daniel Peng, F. Dabek","doi":"10.5555/1924943.1924961","DOIUrl":"https://doi.org/10.5555/1924943.1924961","url":null,"abstract":"Updating an index of the web as documents are crawled requires continuously transforming a large repository of existing documents as new documents arrive. This task is one example of a class of data processing tasks that transform a large repository of data via small, independent mutations. These tasks lie in a gap between the capabilities of existing infrastructure. Databases do not meet the storage or throughput requirements of these tasks: Google's indexing system stores tens of petabytes of data and processes billions of updates per day on thousands of machines. MapReduce and other batch-processing systems cannot process small updates individually as they rely on creating large batches for efficiency.We have built Percolator, a system for incrementally processing updates to a large data set, and deployed it to create the Google web search index. By replacing a batch-based indexing system with an indexing system based on incremental processing using Percolator, we process the same number of documents per day, while reducing the average age of documents in Google search results by 50%.","PeriodicalId":90294,"journal":{"name":"Proceedings of the -- USENIX Symposium on Operating Systems Design and Implementation (OSDI). USENIX Symposium on Operating Systems Design and Implementation","volume":"6 1","pages":"251-264"},"PeriodicalIF":0.0,"publicationDate":"2010-10-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89644196","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 511
Transactional Consistency and Automatic Management in an Application Data Cache 应用程序数据缓存中的事务一致性和自动管理
Dan R. K. Ports, A. Clements, Irene Zhang, S. Madden, B. Liskov
Distributed in-memory application data caches like memcached are a popular solution for scaling database-driven web sites. These systems are easy to add to existing deployments, and increase performance significantly by reducing load on both the database and application servers. Unfortunately, such caches do not integrate well with the database or the application. They cannot maintain transactional consistency across the entire system, violating the isolation properties of the underlying database. They leave the application responsible for locating data in the cache and keeping it up to date, a frequent source of application complexity and programming errors.Addressing both of these problems, we introduce a transactional cache, TxCache, with a simple programming model. TxCache ensures that any data seen within a transaction, whether it comes from the cache or the database, reflects a slightly stale but consistent snapshot of the database. TxCache makes it easy to add caching to an application by simply designating functions as cacheable; it automatically caches their results, and invalidates the cached data as the underlying database changes. Our experiments found that adding TxCache increased the throughput of a web application by up to 5.2×, only slightly less than a non-transactional cache, showing that consistency does not have to come at the price of performance.
像memcached这样的分布式内存应用程序数据缓存是扩展数据库驱动的web站点的流行解决方案。这些系统很容易添加到现有部署中,并且通过减少数据库和应用程序服务器上的负载来显著提高性能。不幸的是,这种缓存不能很好地与数据库或应用程序集成。它们不能在整个系统中维护事务一致性,这违反了底层数据库的隔离属性。它们让应用程序负责定位缓存中的数据并使其保持最新,这是应用程序复杂性和编程错误的常见来源。为了解决这两个问题,我们引入了一个事务性缓存TxCache,它具有一个简单的编程模型。TxCache确保在事务中看到的任何数据,无论是来自缓存还是来自数据库,都反映了一个稍微过时但一致的数据库快照。TxCache通过简单地将函数指定为可缓存,可以很容易地将缓存添加到应用程序中;它自动缓存它们的结果,并在底层数据库更改时使缓存的数据无效。我们的实验发现,添加TxCache将web应用程序的吞吐量提高了5.2倍,仅略低于非事务性缓存,这表明一致性不必以性能为代价。
{"title":"Transactional Consistency and Automatic Management in an Application Data Cache","authors":"Dan R. K. Ports, A. Clements, Irene Zhang, S. Madden, B. Liskov","doi":"10.5555/1924943.1924963","DOIUrl":"https://doi.org/10.5555/1924943.1924963","url":null,"abstract":"Distributed in-memory application data caches like memcached are a popular solution for scaling database-driven web sites. These systems are easy to add to existing deployments, and increase performance significantly by reducing load on both the database and application servers. Unfortunately, such caches do not integrate well with the database or the application. They cannot maintain transactional consistency across the entire system, violating the isolation properties of the underlying database. They leave the application responsible for locating data in the cache and keeping it up to date, a frequent source of application complexity and programming errors.Addressing both of these problems, we introduce a transactional cache, TxCache, with a simple programming model. TxCache ensures that any data seen within a transaction, whether it comes from the cache or the database, reflects a slightly stale but consistent snapshot of the database. TxCache makes it easy to add caching to an application by simply designating functions as cacheable; it automatically caches their results, and invalidates the cached data as the underlying database changes. Our experiments found that adding TxCache increased the throughput of a web application by up to 5.2×, only slightly less than a non-transactional cache, showing that consistency does not have to come at the price of performance.","PeriodicalId":90294,"journal":{"name":"Proceedings of the -- USENIX Symposium on Operating Systems Design and Implementation (OSDI). USENIX Symposium on Operating Systems Design and Implementation","volume":"244 1","pages":"279-292"},"PeriodicalIF":0.0,"publicationDate":"2010-10-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88428027","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 113
Bypassing Races in Live Applications with Execution Filters 使用执行过滤器绕过实时应用程序中的竞争
Jingyue Wu, Heming Cui, Junfeng Yang
Deployed multithreaded applications contain many races because these applications are difficult to write, test, and debug. Worse, the number of races in deployed applications may drastically increase due to the rise of multicore hardware and the immaturity of current race detectors. LOOM is a "live-workaround" system designed to quickly and safely bypass application races at runtime. LOOM provides a flexible and safe language for developers to write execution filters that explicitly synchronize code. It then uses an evacuation algorithm to safely install the filters to live applications to avoid races. It reduces its performance overhead using hybrid instrumentation that combines static and dynamic instrumentation. We evaluated LOOM on nine real races from a diverse set of six applications, including MySQL and Apache. Our results show that (1) LOOM can safely fix all evaluated races in a timely manner, thereby increasing application availability; (2) LOOM incurs little performance overhead; (3) LOOM scales well with the number of application threads; and (4) LOOM is easy to use.
已部署的多线程应用程序包含许多竞争,因为这些应用程序很难编写、测试和调试。更糟糕的是,由于多核硬件的兴起和当前竞争检测器的不成熟,已部署应用程序中的竞争数量可能会急剧增加。LOOM是一个“实时工作”系统,旨在快速安全地绕过运行时的应用程序竞争。LOOM为开发人员编写显式同步代码的执行过滤器提供了一种灵活而安全的语言。然后,它使用一种疏散算法将过滤器安全地安装到实时应用程序中,以避免竞争。它使用结合了静态和动态检测的混合检测来降低性能开销。我们在6个不同的应用程序(包括MySQL和Apache)中的9个实际竞赛中对LOOM进行了评估。研究结果表明:(1)LOOM可以安全地及时修复所有被评估的竞争,从而提高应用程序的可用性;(2) LOOM的性能开销很小;(3)随着应用程序线程数的增加,LOOM可以很好地扩展;(4)使用方便。
{"title":"Bypassing Races in Live Applications with Execution Filters","authors":"Jingyue Wu, Heming Cui, Junfeng Yang","doi":"10.21236/ada640252","DOIUrl":"https://doi.org/10.21236/ada640252","url":null,"abstract":"Deployed multithreaded applications contain many races because these applications are difficult to write, test, and debug. Worse, the number of races in deployed applications may drastically increase due to the rise of multicore hardware and the immaturity of current race detectors. \u0000 \u0000LOOM is a \"live-workaround\" system designed to quickly and safely bypass application races at runtime. LOOM provides a flexible and safe language for developers to write execution filters that explicitly synchronize code. It then uses an evacuation algorithm to safely install the filters to live applications to avoid races. It reduces its performance overhead using hybrid instrumentation that combines static and dynamic instrumentation. \u0000 \u0000We evaluated LOOM on nine real races from a diverse set of six applications, including MySQL and Apache. Our results show that (1) LOOM can safely fix all evaluated races in a timely manner, thereby increasing application availability; (2) LOOM incurs little performance overhead; (3) LOOM scales well with the number of application threads; and (4) LOOM is easy to use.","PeriodicalId":90294,"journal":{"name":"Proceedings of the -- USENIX Symposium on Operating Systems Design and Implementation (OSDI). USENIX Symposium on Operating Systems Design and Implementation","volume":"29 1","pages":"135-149"},"PeriodicalIF":0.0,"publicationDate":"2010-10-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75847432","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 62
A modular network layer for sensorsets 传感器的模块化网络层
C. Ee, Rodrigo Fonseca, Sukun Kim, Daekyeong Moon, A. Tavakoli, D. Culler, S. Shenker, I. Stoica
An overall sensornet architecture would help tame the increasingly complex structure of wireless sensornet software and help foster greater interoperability between different codebases. A previous step in this direction is the Sensornet Protocol (SP), a unifying link-abstraction layer. This paper takes the natural next step by proposing a modular network-layer for sensornets that sits atop SP. This modularity eases implementation of new protocols by increasing code reuse, and enables co-existing protocols to share and reduce code and resources consumed at run-time. We demonstrate how current protocols can be decomposed into this modular structure and show that the costs, in performance and code footprint, are minimal relative to their monolithic counterparts.
一个整体的传感器网络架构将有助于控制无线传感器网络软件日益复杂的结构,并有助于促进不同代码库之间更大的互操作性。在这个方向上的前一个步骤是传感器网络协议(SP),一个统一的链路抽象层。本文提出了基于SP的传感器网络的模块化网络层。这种模块化通过增加代码重用来简化新协议的实现,并使共存协议能够在运行时共享和减少代码和资源消耗。我们将演示如何将当前协议分解为这种模块化结构,并展示其性能和代码占用方面的成本相对于其单片对等体是最小的。
{"title":"A modular network layer for sensorsets","authors":"C. Ee, Rodrigo Fonseca, Sukun Kim, Daekyeong Moon, A. Tavakoli, D. Culler, S. Shenker, I. Stoica","doi":"10.5555/1298455.1298479","DOIUrl":"https://doi.org/10.5555/1298455.1298479","url":null,"abstract":"An overall sensornet architecture would help tame the increasingly complex structure of wireless sensornet software and help foster greater interoperability between different codebases. A previous step in this direction is the Sensornet Protocol (SP), a unifying link-abstraction layer. This paper takes the natural next step by proposing a modular network-layer for sensornets that sits atop SP. This modularity eases implementation of new protocols by increasing code reuse, and enables co-existing protocols to share and reduce code and resources consumed at run-time. We demonstrate how current protocols can be decomposed into this modular structure and show that the costs, in performance and code footprint, are minimal relative to their monolithic counterparts.","PeriodicalId":90294,"journal":{"name":"Proceedings of the -- USENIX Symposium on Operating Systems Design and Implementation (OSDI). USENIX Symposium on Operating Systems Design and Implementation","volume":"2 1","pages":"249-262"},"PeriodicalIF":0.0,"publicationDate":"2006-11-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"73725539","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 90
BrowserShield: vulnerability-driven filtering of dynamic HTML BrowserShield:漏洞驱动的动态HTML过滤
C. Reis, John Dunagan, Helen J. Wang, O. Dubrovsky, Saher Esmeir
Vulnerability-driven filtering of network data can offer a fast and easy-to-deploy alternative or intermediary to software patching, as exemplified in Shield [43]. In this paper, we take Shield's vision to a new domain, inspecting and cleansing not just static content, but also dynamic content. The dynamic content we target is the dynamic HTML in web pages, which have become a popular vector for attacks. The key challenge in filtering dynamic HTML is that it is undecidable to statically determine whether an embedded script will exploit the browser at run-time. We avoid this undecidability problem by rewriting web pages and any embedded scripts into safe equivalents, inserting checks so that the filtering is done at run-time. The rewritten pages contain logic for recursively applying run-time checks to dynamically generated or modified web content, based on known vulnerabilities. We have built and evaluated BrowserShield, a system that performs this dynamic instrumentation of embedded scripts, and that admits policies for customized run-time actions like vulnerability-driven filtering.
漏洞驱动的网络数据过滤可以为软件补丁提供一种快速且易于部署的替代方案或中介,Shield[43]就是一个例子。在本文中,我们将Shield的视野扩展到一个新的领域,不仅对静态内容进行检查和清理,而且对动态内容进行检查和清理。我们针对的动态内容是网页中的动态HTML,它已经成为攻击的热门载体。过滤动态HTML的关键挑战是,在运行时静态地确定嵌入式脚本是否会利用浏览器是无法确定的。我们通过将网页和任何嵌入脚本重写为安全的对等物来避免这种不可判定性问题,并插入检查,以便在运行时完成过滤。重写的页面包含基于已知漏洞递归地将运行时检查应用于动态生成或修改的web内容的逻辑。我们已经构建并评估了BrowserShield,这是一个执行嵌入式脚本动态检测的系统,它允许自定义运行时操作的策略,如漏洞驱动的过滤。
{"title":"BrowserShield: vulnerability-driven filtering of dynamic HTML","authors":"C. Reis, John Dunagan, Helen J. Wang, O. Dubrovsky, Saher Esmeir","doi":"10.1145/1281480.1281481","DOIUrl":"https://doi.org/10.1145/1281480.1281481","url":null,"abstract":"Vulnerability-driven filtering of network data can offer a fast and easy-to-deploy alternative or intermediary to software patching, as exemplified in Shield [43]. In this paper, we take Shield's vision to a new domain, inspecting and cleansing not just static content, but also dynamic content. The dynamic content we target is the dynamic HTML in web pages, which have become a popular vector for attacks. The key challenge in filtering dynamic HTML is that it is undecidable to statically determine whether an embedded script will exploit the browser at run-time. We avoid this undecidability problem by rewriting web pages and any embedded scripts into safe equivalents, inserting checks so that the filtering is done at run-time. The rewritten pages contain logic for recursively applying run-time checks to dynamically generated or modified web content, based on known vulnerabilities. We have built and evaluated BrowserShield, a system that performs this dynamic instrumentation of embedded scripts, and that admits policies for customized run-time actions like vulnerability-driven filtering.","PeriodicalId":90294,"journal":{"name":"Proceedings of the -- USENIX Symposium on Operating Systems Design and Implementation (OSDI). USENIX Symposium on Operating Systems Design and Implementation","volume":"16 1","pages":"61-74"},"PeriodicalIF":0.0,"publicationDate":"2006-11-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90714759","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 252
Making information flow explicit in HiStar 在HiStar中明确信息流
N. Zeldovich, Silas Boyd-Wickizer, E. Kohler, David Mazières
HiStar is a new operating system designed to minimize the amount of code that must be trusted. HiStar provides strict information flow control, which allows users to specify precise data security policies without unduly limiting the structure of applications. HiStar's security features make it possible to implement a Unix-like environment with acceptable performance almost entirely in an untrusted user-level library. The system has no notion of superuser and no fully trusted code other than the kernel. HiStar's features permit several novel applications, including an entirely untrusted login process, separation of data between virtual private networks, and privacy-preserving, untrusted virus scanners.
HiStar是一种新的操作系统,旨在最大限度地减少必须信任的代码数量。HiStar提供严格的信息流控制,允许用户指定精确的数据安全策略,而不会过度限制应用程序的结构。HiStar的安全特性使得几乎完全在不受信任的用户级库中实现具有可接受性能的类unix环境成为可能。系统没有超级用户的概念,除了内核之外没有完全可信的代码。HiStar的功能允许一些新颖的应用,包括完全不受信任的登录过程,虚拟专用网络之间的数据分离,以及隐私保护,不受信任的病毒扫描程序。
{"title":"Making information flow explicit in HiStar","authors":"N. Zeldovich, Silas Boyd-Wickizer, E. Kohler, David Mazières","doi":"10.1145/2018396.2018419","DOIUrl":"https://doi.org/10.1145/2018396.2018419","url":null,"abstract":"HiStar is a new operating system designed to minimize the amount of code that must be trusted. HiStar provides strict information flow control, which allows users to specify precise data security policies without unduly limiting the structure of applications. HiStar's security features make it possible to implement a Unix-like environment with acceptable performance almost entirely in an untrusted user-level library. The system has no notion of superuser and no fully trusted code other than the kernel. HiStar's features permit several novel applications, including an entirely untrusted login process, separation of data between virtual private networks, and privacy-preserving, untrusted virus scanners.","PeriodicalId":90294,"journal":{"name":"Proceedings of the -- USENIX Symposium on Operating Systems Design and Implementation (OSDI). USENIX Symposium on Operating Systems Design and Implementation","volume":"35 1","pages":"263-278"},"PeriodicalIF":0.0,"publicationDate":"2006-11-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82193685","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 628
Secure Untrusted Data Repository (SUNDR) 安全非可信数据存储库(SUNDR)
Jinyuan Li, M. Krohn, David Mazières, D. Shasha
SUNDR is a network file system designed to store data securely on untrusted servers. SUNDR lets clients detect any attempts at unauthorized file modification by malicious server operators or users. SUNDR's protocol achieves a property called fork consistency, which guarantees that clients can detect any integrity or consistency failures as long as they see each other's file modifications. An implementation is described that performs comparably with NFS (sometimes better and sometimes worse), while offering significantly stronger security.
SUNDR是一个网络文件系统,旨在将数据安全地存储在不受信任的服务器上。SUNDR允许客户端检测恶意服务器操作人员或用户对未经授权的文件修改的任何尝试。SUNDR的协议实现了一个称为分叉一致性的属性,它保证客户端只要看到彼此的文件修改,就可以检测到任何完整性或一致性失败。本文描述了一种实现,它的性能与NFS相当(有时更好,有时更差),同时提供了更强的安全性。
{"title":"Secure Untrusted Data Repository (SUNDR)","authors":"Jinyuan Li, M. Krohn, David Mazières, D. Shasha","doi":"10.21236/ADA445862","DOIUrl":"https://doi.org/10.21236/ADA445862","url":null,"abstract":"SUNDR is a network file system designed to store data securely on untrusted servers. SUNDR lets clients detect any attempts at unauthorized file modification by malicious server operators or users. SUNDR's protocol achieves a property called fork consistency, which guarantees that clients can detect any integrity or consistency failures as long as they see each other's file modifications. An implementation is described that performs comparably with NFS (sometimes better and sometimes worse), while offering significantly stronger security.","PeriodicalId":90294,"journal":{"name":"Proceedings of the -- USENIX Symposium on Operating Systems Design and Implementation (OSDI). USENIX Symposium on Operating Systems Design and Implementation","volume":"50 1","pages":"121-136"},"PeriodicalIF":0.0,"publicationDate":"2004-12-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"77577477","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 494
Processes in KaffeOS: isolation, resource management, and sharing in java KaffeOS中的进程:java中的隔离、资源管理和共享
Godmar Back, Wilson C. Hsieh, Jay Lepreau
Single-language runtime systems, in the form of Java virtual machines, are widely deployed platforms for executing untrusted mobile code. These runtimes provide some of the features that operating systems provide: inter-application memory protection and basic system services. They do not, however, provide the ability to isolate applications from each other, or limit their resource consumption. This paper describes KaffeOS, a Java runtime system that provides these features. The KaffeOS architecture takes many lessons from operating system design, such as the use of a user/kernel boundary, and employs garbage collection techniques, such as write barriers. The KaffeOS architecture supports the OS abstraction of a process in a Java virtual machine. Each process executes as if it were run in its own virtual machine, including separate garbage collection of its own heap. The difficulty in designing KaffeOS lay in balancing the goals of isolation and resource management against the goal of allowing direct sharing of objects. Overall, KaffeOS is no more than 11% slower than the freely available JVM on which it is based, which is an acceptable penalty for the safety that it provides. Because of its implementation base, KaffeOS is substantially slower than commercial JVMs for trusted code, but it clearly outperforms those JVMs in the presence of denial-of-service attacks or misbehaving code.
以Java虚拟机形式出现的单语言运行时系统是广泛部署的平台,用于执行不受信任的移动代码。这些运行时提供了操作系统提供的一些特性:应用程序间内存保护和基本系统服务。但是,它们不提供相互隔离应用程序或限制其资源消耗的功能。本文描述了KaffeOS,一个提供这些特性的Java运行时系统。KaffeOS架构从操作系统设计中吸取了许多教训,例如使用用户/内核边界,并采用垃圾收集技术,例如写屏障。KaffeOS架构支持Java虚拟机中进程的操作系统抽象。每个进程都像在自己的虚拟机中运行一样执行,包括对自己的堆进行单独的垃圾收集。设计KaffeOS的困难在于平衡隔离和资源管理的目标与允许直接共享对象的目标之间的关系。总的来说,KaffeOS比它所基于的免费可用的JVM慢不超过11%,对于它提供的安全性来说,这是可以接受的损失。由于它的实现基础,对于可信代码,KaffeOS比商业jvm慢得多,但在存在拒绝服务攻击或行为不端的代码时,它明显优于那些jvm。
{"title":"Processes in KaffeOS: isolation, resource management, and sharing in java","authors":"Godmar Back, Wilson C. Hsieh, Jay Lepreau","doi":"10.21236/ada440101","DOIUrl":"https://doi.org/10.21236/ada440101","url":null,"abstract":"Single-language runtime systems, in the form of Java virtual machines, are widely deployed platforms for executing untrusted mobile code. These runtimes provide some of the features that operating systems provide: inter-application memory protection and basic system services. They do not, however, provide the ability to isolate applications from each other, or limit their resource consumption. This paper describes KaffeOS, a Java runtime system that provides these features. The KaffeOS architecture takes many lessons from operating system design, such as the use of a user/kernel boundary, and employs garbage collection techniques, such as write barriers.\u0000 The KaffeOS architecture supports the OS abstraction of a process in a Java virtual machine. Each process executes as if it were run in its own virtual machine, including separate garbage collection of its own heap. The difficulty in designing KaffeOS lay in balancing the goals of isolation and resource management against the goal of allowing direct sharing of objects. Overall, KaffeOS is no more than 11% slower than the freely available JVM on which it is based, which is an acceptable penalty for the safety that it provides. Because of its implementation base, KaffeOS is substantially slower than commercial JVMs for trusted code, but it clearly outperforms those JVMs in the presence of denial-of-service attacks or misbehaving code.","PeriodicalId":90294,"journal":{"name":"Proceedings of the -- USENIX Symposium on Operating Systems Design and Implementation (OSDI). USENIX Symposium on Operating Systems Design and Implementation","volume":"54 1","pages":"333-346"},"PeriodicalIF":0.0,"publicationDate":"2000-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"73534535","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 217
Checking system rules using system-specific, programmer-written compiler extensions 使用特定于系统的、程序员编写的编译器扩展检查系统规则
D. Engler, B. Chelf, Andy Chou, Seth Hallem
Systems software such as OS kernels, embedded systems, and libraries must obey many rules for both correctness and performance. Common examples include "accesses to variable A must be guarded by lock B," "system calls must check user pointers for validity before using them," and "message handlers should free their buffers as quickly as possible to allow greater parallelism." Unfortunately, adherence to these rules is largely unchecked. This paper attacks this problem by showing how system implementors can use meta-level compilation (MC) to write simple, system-specific compiler extensions that automatically check their code for rule violations. By melding domain-specific knowledge with the automatic machinery of compilers, MC brings the benefits of language-level checking and optimizing to the higher, "meta" level of the systems implemented in these languages. This paper demonstrates the effectiveness of the MC approach by applying it to four complex, real systems: Linux, OpenBSD, the Xok exokernel, and the FLASH machine's embedded software. MC extensions found roughly 500 errors in these systems and led to numerous kernel patches. Most extensions were less than a hundred lines of code and written by implementors who had a limited understanding of the systems checked.
系统软件(如操作系统内核、嵌入式系统和库)必须遵守许多正确性和性能规则。常见的例子包括“对变量A的访问必须由锁B保护”、“系统调用必须在使用用户指针之前检查它们的有效性”和“消息处理程序应该尽快释放它们的缓冲区,以允许更大的并行性”。不幸的是,遵守这些规则在很大程度上是不受约束的。本文通过展示系统实现者如何使用元级编译(MC)来编写简单的、系统特定的编译器扩展,以自动检查其代码是否违反规则,从而解决了这个问题。通过将特定领域的知识与编译器的自动机制相结合,MC将语言级检查和优化的好处带给了用这些语言实现的系统的更高的“元”级别。本文通过将MC方法应用于四个复杂的实际系统:Linux、OpenBSD、Xok exokkernel和FLASH机器的嵌入式软件,证明了MC方法的有效性。MC扩展在这些系统中发现了大约500个错误,并导致了大量的内核补丁。大多数扩展都少于一百行代码,并且由对所检查的系统了解有限的实现者编写。
{"title":"Checking system rules using system-specific, programmer-written compiler extensions","authors":"D. Engler, B. Chelf, Andy Chou, Seth Hallem","doi":"10.21236/ada419626","DOIUrl":"https://doi.org/10.21236/ada419626","url":null,"abstract":"Systems software such as OS kernels, embedded systems, and libraries must obey many rules for both correctness and performance. Common examples include \"accesses to variable A must be guarded by lock B,\" \"system calls must check user pointers for validity before using them,\" and \"message handlers should free their buffers as quickly as possible to allow greater parallelism.\" Unfortunately, adherence to these rules is largely unchecked.\u0000 This paper attacks this problem by showing how system implementors can use meta-level compilation (MC) to write simple, system-specific compiler extensions that automatically check their code for rule violations. By melding domain-specific knowledge with the automatic machinery of compilers, MC brings the benefits of language-level checking and optimizing to the higher, \"meta\" level of the systems implemented in these languages. This paper demonstrates the effectiveness of the MC approach by applying it to four complex, real systems: Linux, OpenBSD, the Xok exokernel, and the FLASH machine's embedded software. MC extensions found roughly 500 errors in these systems and led to numerous kernel patches. Most extensions were less than a hundred lines of code and written by implementors who had a limited understanding of the systems checked.","PeriodicalId":90294,"journal":{"name":"Proceedings of the -- USENIX Symposium on Operating Systems Design and Implementation (OSDI). USENIX Symposium on Operating Systems Design and Implementation","volume":"66 1","pages":"1-16"},"PeriodicalIF":0.0,"publicationDate":"2000-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"91267493","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 618
期刊
Proceedings of the -- USENIX Symposium on Operating Systems Design and Implementation (OSDI). USENIX Symposium on Operating Systems Design and Implementation
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1