Bigtable: A Distributed Storage System for Structured Data : part7 Performance Evaluation

Bigtable: A Distributed Storage System for Structured Data中文翻译 立即下载
7 Performance Evaluation
We set up a Bigtable cluster with N tablet servers to measure the performance and scalability of Bigtable as N is varied. 
The tablet servers were configured to use 1 GB of memory and to write to a GFS cell consisting of 1786 machines with two 400 GB IDE hard drives each.
N client machines generated the Bigtable load used for these tests. 
(We used the same number of clients as tablet servers to ensure that clients were never a bottleneck.)
Each machine had two dual-core Opteron 2 GHz chips, enough physical memory to hold the working set of all running processes, and a single gigabit Ethernet link.
The machines were arranged in a two-level tree-shaped switched network with approximately 100-200 Gbps of aggregate bandwidth available at the root. 
All of the machines were in the same hosting facility and therefore the round-trip time between any pair of machines was less than a millisecond.
The tablet servers and master, test clients, and GFS servers all ran on the same set of machines. 

Every machine ran a GFS server. 
Some of the machines also ran either a tablet server, or a client process, or processes from other jobs that were using the pool at the same time as these experiments.

7性能评估
我们设置了一个带有N个 tablet 服务器的Bigtable集群,以测量Bigtable的性能和可扩展性,因为N是多样的。
 tablet 服务器配置为使用1 GB内存,并写入由1786台机器组成的GFS单元,每台机器具有两个400 GB IDE硬盘驱动器。
N个客户机生成了用于这些测试的Bigtable负载。
(我们使用与 tablet 服务器相同数量的客户端,以确保客户端不会成为瓶颈。)
每台机器都有两个双核Opteron 2 GHz芯片,足够的物理内存来保存所有运行进程的工作集,以及一个千兆以太网链路。
这些机器被安排在两层树状交换网络中,其根部可用的总带宽约为100-200Gbps。
所有的机器都在同一个托管设备中,因此任何一台机器之间的往返时间都不到一毫秒。
 tablet 服务器和主服务器,测试客户端和GFS服务器都运行在同一台机器上。

每台机器都运行一个GFS服务器。
某些计算机还运行 tablet 服务器或客户端进程,或者在与这些实验同时使用池的其他作业进行处理。

R is the distinct number of Bigtable row keys involved in the test. 
R was chosen so that each benchmark read or wrote approximately 1 GB of data per tablet server.
The sequential write benchmark used row keys with names 0 to R − 1. 
This space of row keys was partitioned into 10N equal-sized ranges. 
These ranges were assigned to the N clients by a central scheduler that assigned the next available range to a client as soon as the client finished processing the previous range assigned to it. 
This dynamic assignment helped mitigate the effects of performance variations caused by other processes running on the client machines. 
We wrote a single string under each row key. 
Each string was generated randomly and was therefore uncompressible. 
In addition, string under different row key were distinct, so no cross-row compression was possible. 
The random write benchmark was similar except that the row key was hashed modulo R immediately before writing so that the write load was spread roughly uniformly across the entire row space for the entire duration of the benchmark.

The sequential read benchmark generated row keys in exactly the same way as the sequential write benchmark, but instead of writing under the row key, it read the string stored under the row key (which was written by an earlier invocation of the sequential write benchmark). 
Similarly,the random read benchmark shadowed the operation of the random write benchmark.

R是测试中涉及到的Bigtable行键的不同数量。
选择R,以便每个基准测试读取或写入每个 tablet 服务器大约1GB的数据。
顺序写入基准测试使用名称为0到R-1的行键。
行键的这个空间被分割成10N相等大小的范​​围。
只要客户端完成处理分配给它的上一个范围,中央调度程序将这些范围分配给N个客户端,该中央调度程序为客户端分配了下一个可用范围。
此动态分配有助于缓解由客户端计算机上运行的其他进程引起的性能变化的影响。
我们在每行键下写了一个字符串。
每个字符串都是随机产生的,因此是不可压缩的。
另外,不同行键下的字符串是不同的,所以不能进行跨行压缩。
随机写入基准测试是相似的,只是行键在写入之前立即散列为模R,以便写入负载在基准的整个持续时间内在整个行空间中大致均匀地扩散。
顺序读取基准测试生成的行键与顺序写入基准完全相同,但不是在行键下写入,它读取存储在行键下的字符串(由先前调用顺序写入基准写入的字符串) 。
类似地,随机读取基准影响了随机写入基准的操作。

The scan benchmark is similar to the sequential read benchmark, but uses support provided by the Bigtable API for scanning over all values in a row range. 

Using a scan reduces the number of RPCs executed by the benchmark since a single RPC fetches a large sequence of values from a tablet server.
The random reads (mem) benchmark is similar to the random read benchmark, but the locality group that contains the benchmark data is marked as in-memory, and therefore the reads are satisfied from the tablet server’s memory instead of requiring a GFS read. 
For just this benchmark, we reduced the amount of data per tablet server from 1 GB to 100 MB so that it would fit comfortably in the memory available to the tablet server.


Figure 6 shows two views on the performance of our benchmarks when reading and writing 1000-byte values to Bigtable. 

The table shows the number of operations per second per tablet server; the graph shows the aggregate number of operations per second.

扫描基准测试与顺序读取基准测试类似,但使用Bigtable API提供的支持来扫描行范围内的所有值。

使用扫描可以减少基准测试执行的RPC数量,因为单个RPC从 tablet 服务器获取大量的值。
随机读取(mem)基准测试与随机读取基准测试类似,但包含基准数据的位置组被标记为内存,因此从 tablet 服务器的内存中可以看到读数,而不需要GFS读取。
对于这个基准测试,我们将每个 tablet 服务器的数据量从1 GB减少到100 MB,以便舒适地适应 tablet 服务器的内存。
图6显示了对BigTable读取和写入1000字节值时,我们的基准测试的性能的两个视图。
该表显示每个 tablet 服务器每秒的操作次数; 该图显示了每秒的总操作次数。

Single tablet-server performance
Let us first consider performance with just one tablet server. 
Random reads are slower than all other operations by an order of magnitude or more. 
Each random read involves the transfer of a 64 KB SSTable block over the network from GFS to a tablet server, out of which only a single 1000-byte value is used. 
The tablet server executes approximately 1200 reads per second, which translates into approximately 75 MB/s of data read from GFS. 
This bandwidth is enough to saturate the tablet server CPUs because of overheads in our networking stack, SSTable parsing, and Bigtable code, and is also almost enough to saturate the network links used in our system. 
Most Bigtable applications with this type of an access pattern reduce the block size to a smaller value, typically 8KB.
Random reads from memory are much faster since each 1000-byte read is satisfied from the tablet server’s local memory without fetching a large 64 KB block from GFS.

单个 tablet 服务器性能
让我们首先考虑一下只需一台 tablet 的性能。
随机读取比所有其他操作慢一个数量级或更多。
每个随机读取涉及通过网络将64 KB SSTable块从GFS传输到 tablet 服务器,其中仅使用单个1000字节值。
 tablet 服务器每秒执行大约1200次读取,这转换为从GFS读取的大约75 MB / s的数据。
这个带宽足以使 tablet 服务器CPU饱和,因为我们的网络堆栈,SSTable解析和Bigtable代码的开销,也足以使我们系统中使用的网络链接饱和。
大多数Bigtable应用程序使用这种类型的访问模式将块大小减小到较小的值,通常为8KB。
从内存中随机读取速度要快得多,因为从 tablet 服务器的本地内存中可以满足每个1000字节的读取,而不会从GFS中获取大型64 KB块。

Random and sequential writes perform better than random reads since each tablet server appends all incoming writes to a single commit log and uses group commit to stream these writes efficiently to GFS. 
There is no significant difference between the performance of random writes and sequential writes; in both cases, all writes to the tablet server are recorded in the same commit log.
Sequential reads perform better than random reads since every 64 KB SSTable block that is fetched from GFS is stored into our block cache, where it is used to serve the next 64 read requests.
Scans are even faster since the tablet server can return a large number of values in response to a single client RPC, and therefore RPC overhead is amortized over a large number of values.

随机和顺序写入性能优于随机读取,因为每个 tablet 服务器将所有传入写入附加到单个提交日志,并使用组提交将这些写入有效地流式传输到GFS。
随机写入和顺序写入的性能没有显着差异; 在这两种情况下,对 tablet 服务器的所有写入都将记录在同一个提交日志中。
顺序读取比随机读取更好,因为从GFS获取的每个64 KB SSTable块都存储在我们的块高速缓存中,用于提供下一个64个读取请求。
扫描速度甚至更快,因为 tablet 服务器可以响应于单个客户端RPC返回大量值,因此RPC开销在大量值上进行分摊。

Scaling
Aggregate throughput increases dramatically, by over a factor of a hundred, as we increase the number of tablet servers in the system from 1 to 500. 

缩放
随着我们将系统中的 tablet 服务器数量从1个增加到500个,总吞吐量大幅提升了一百倍。



Table 1: Distribution of number of tablet servers in Bigtable clusters.


For example, the performance of random reads from memory increases by almost a factor of 300 as the number of tablet server increases by a factor of 500. 
This behavior occurs because the bottleneck on performance for this benchmark is the individual tablet server CPU.
However, performance does not increase linearly. 
For most benchmarks, there is a significant drop in per-server throughput when going from 1 to 50 tablet servers. 
This drop is caused by imbalance in load in multiple server configurations, often due to other processes contending for CPU and network. 
Our load balancing algorithm attempts to deal with this imbalance, but cannot do a perfect job for two main reasons: rebalancing is throttled to
reduce the number of tablet movements (a tablet is unavailable for a short time, typically less than one second, when it is moved), and the load generated by our benchmarks shifts around as the benchmark progresses.
The random read benchmark shows the worst scaling 
(an increase in aggregate throughput by only a factor of 100 for a 500-fold increase in number of servers). 
This behavior occurs because (as explained above) we transfer one large 64KB block over the network for every 1000-byte read. 
This transfer saturates various shared 1 Gigabit links in our network and as a result, the per-server throughput drops significantly as we increase the number of machines.

表1:Bigtable群集中的 tablet 服务器数量的分布。

例如,由于 tablet 服务器的数量增加了500倍,所以从内存中随机读取的性能提高了近300倍。
出现此行为是因为该基准测试的性能瓶颈是单个 tablet 服务器CPU。
然而,性能不会线性增加。
对于大多数基准测试,从1到50个 tablet 服务器,每个服务器的吞吐量显着下降。
这种下降是由于多个服务器配置中的负载不平衡导致的,这通常是由于其他与CPU和网络竞争的过程。
我们的负载平衡算法试图处理这种不平衡,但是由于两个主要原因,不能做一个完美的工作:重新平衡被限制到
减少 tablet 移动的数量(一个 tablet 在短时间内不可用,通常在移动时通常不到一秒),并且基准测试产生的负载随着基准测试的进行而发生变化。
随机读取基准显示最差的缩放
(聚合吞吐量仅增加100倍,服务器数量增加了500倍)。
出现这种情况是因为(如上所述),我们每隔1000字节读取一次通过网络传输一个大的64KB块。
这种传输使我们网络中的各种共享的1千兆位链路饱和,因此,随着机器数量的增加,每服务器吞吐量显着下降。
Bigtable:A Distributed Storage System for Structured Data Bigtable:A Distributed Storage System for Structured Data,谷歌的一个大型的分布式数据库,这个数据库不是关系式的数据库。像它的名字一样,就是一个巨大的表格,用来存储结构化的数据。 立即下载

相关推荐

Bigtable : A Distributed Storage System for Structured Data

Paper for Big Table developed by Google

谷歌三大论文中文版之一:Bigtable:一个分布式的结构化数据存储系统

修正了alex翻译版的几个欠妥之处 Bigtable:一个分布式的结构化数据存储系统 摘要 Bigtable是一个管理结构化数据的分布式存储系统,它被设计用来处理海量数据:分布在数千台通用服务器上的PB级的数据。Google的很多项目将数据存储在Bigtable中,包括Web索引、Google Earth、Google Finance。这些应用对Bigtable提出的要求差异非常大,无论...

android_mylove的专栏 1132

【AI方案集】AI与人机协作相结合的智能法律咨询系统.docx

AI技术方案以算力、算法、数据三角协同为核心,通过搭建标准化的数据预处理、模型训练与边缘云端协同部署流程,将计算机视觉、自然语言处理、机器学习等核心能力深度融入业务场景,既实现自动化流程降本提效,又通过精准的模式识别与预测分析为管理层提供数据驱动的决策支撑,最终完成从通用AI技术到行业定制化场景的适配落地,为企业数字化转型提供可落地的技术路径。

Bigtable: A Distributed Storage System for Structured Data : part1 Abstract and Introduction

Abstract Bigtable is a distributed storage system for managing structured data that is designed to scale to a very large size: petabytes of data across thousands of commodity servers.  Many projects

poeticHadoop的博客 580

picture again

picture again

计算机二级通关宝典1计算机二级通关宝典

计算机二级通关宝典1计算机二级通关宝典

A Distributed Storage System for Structured Data

Bigtable: A Distributed Storage System for Structured Data Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach Mike Burrows, Tushar Chandra, Andrew Fikes, Rob...

douglas8287的专栏 985

MobaXterm终端工具个人学习版安装包及常用配置备份

资源包含 MobaXterm 个人版的安装包以及日常运维常用的基础配置备份文件。适用于网络工程师及运维人员用于日常的服务器管理、SSH 连接及串口调试。 压缩包内附带了个人整理的软件使用技巧与配置说明(仅供个人学习参考)。请各位同行下载后注意,技术工具请尽量支持官方正版,本资源仅供个人测试与交流使用,切勿用于商业环境。

Bigtable: A Distributed Storage System for Structured Data : part2 Data Model (数据模型)

2 Data Model A Bigtable is a sparse, distributed, persistent multidimensional sorted map.  The map is indexed by a row key, column key, and a timestamp;  each value in the map is an uninterpreted a

poeticHadoop的博客 1278

机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取

机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取

科技中介服务机构如何借助平台提升技术撮合服务的专业性与响应速度?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

大数据系统——Bigtable: A Distributed Storage System for Structured Data论文分享

1.背景介绍 Bigtable通常放在大数据课程NoSQL中,NoSQL解决方案主要落实在两个领域:(1)key-value形式,其代表是Bigtable和Dynamo;(2)Scheme-less形式,代表是Cassandra(接下来也会分享到Cassandra相关论文)。其中Cassandra是处于传统数据库和key-value形式中间。Biatable这篇论文是Google大数据领域的“三驾...

MyNuTh的博客 3667

产业园区如何利用AI技术提升科技成果转化服务的响应速度与转化成功率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

三电平维也纳VIENNA双闭环控制整流器仿真(Simulink仿真实现)

内容概要:本文档系统介绍了“三电平维也纳VIENNA双闭环控制整流器”的Simulink仿真资源,重点涵盖电压电流双闭环控制、中点电位平衡控制及SVPWM调制等核心技术,服务于高精度电力电子系统的建模与优化。资源包不仅包含三相维也纳整流器、双有源桥DAB变换器、LLC谐振变换器等多种典型拓扑的仿真模型,还整合了Mathcad计算书、参考文献、MATLAB代码及设计报告等配套材料,突出科研复现与工程设计双重价值。特别针对控制策略优化、软开关技术实现、最小应力控制等前沿方向提供顶级EI期刊级别的复现案例,强化理论深度与实践指导意义。; 适合人群:面向具备电力电子、自动控制或电气工程等相关专业背景的研究生、科研人员及从事新能源、电力变换系统开发的工程技术人员,尤其适合正在进行高性能整流器与DC-DC变换器研究的专业人士。; 使用场景及目标:①支持高校与科研机构在三电平整流器、功率因数校正(PFC)、DC-DC变换器等领域开展控制系统建模与算法验证;②助力高质量学术论文复现(如EI/SCI期刊)、硕士/博士课题研究、毕业设计及企业级项目开发;③深入掌握SVPWM调制、双闭环动态调节、中点电位平衡控制等关键电力电子控制技术的实现机制与参数整定方法。; 阅读建议:建议结合提供的完整资源目录循序渐进地学习,优先研读控制框图与数学建模部分,理解控制逻辑与参数设计原理后,再通过Simulink平台进行仿真实验与参数调试,注重理论推导与仿真结果的对比分析,全面提升科研创新能力与工程实践能力。

11232131231231是的

11232131231231是的

基于双向Buck-Boost电路的锂电池储能充电+放电控制Simulink仿真

内容概要:本文档详细介绍了一种基于双向Buck-Boost电路的锂电池储能系统充放电控制的Simulink仿真模型,重点实现了充电与放电过程中双向能量流动的精确控制。通过Simulink平台构建完整的电路拓扑与控制系统,采用电压、电流双闭环控制策略,有效提升了系统的稳定性与能量转换效率。文档不仅提供了详细的仿真建模方法,还结合参考文献增强了理论支撑,具有较高的科研与工程应用价值。此外,文中列举了大量电力电子领域的相关仿真资源,涵盖LLC谐振变换器、PFC电路、PWM整流器、状态估计等多种技术方向,形成了一个综合性强、覆盖面广的技术资料库,便于研究人员拓展学习和复用设计。; 适合人群:电气工程、自动化、新能源等相关专业的研究生、科研人员及从事电力电子系统设计的工程师。; 使用场景及目标:①研究锂电池储能系统的双向能量管理与高效充放电控制策略;②掌握基于Simulink的电力电子系统建模与闭环控制器设计方法;③为科研项目、毕业设计或工程开发提供可复现的仿真案例与技术支持。; 阅读建议:建议结合文档中提供的参考文献与外部资源链接,系统性地学习Buck-Boost电路的工作原理与控制理论,优先理解基础拓扑运行机制后再深入双闭环控制策略的设计与参数整定,同时可参照同系列其他仿真案例进行对比分析与拓展实践。

jp-host-release.apk

jp-host-release.apk

【Trans论文复现】基于Agent的电力市场深度决策梯度(深度强化学习)算法建模研究(Python代码实现)

内容概要:本文详细介绍了“Plecs全桥LLC谐振变换器仿真模型”这一技术资源,聚焦于利用PLECS仿真工具对隔离型全桥LLC谐振变换器进行建模、参数设计与性能分析。该资源系统阐述了LLC谐振变换器的工作原理,涵盖谐振参数设计、软开关实现机制、效率优化等关键技术环节,并配套提供了完整的仿真模型、设计报告与计算书,便于用户深入理解其在高效率、软开关功率转换中的优势与应用。研究内容不仅支持理论学习,还可用于控制策略的验证与优化设计,具有较强的工程实践价值。; 适合人群:具备电力电子技术基础知识,从事开关电源、高频功率变换器研发及相关领域研究的工程技术人员与高校研究生。; 使用场景及目标:①用于全桥LLC谐振变换器的教学演示与原理学习;②支持科研人员开展高效DC-DC变换器的建模、仿真与优化设计;③为掌握PLECS在电力电子系统仿真中的高级应用提供详实案例。; 阅读建议:建议结合PLECS仿真软件进行实际操作,通过运行仿真模型并对照设计文档,深入理解电路各模块功能、参数设置依据及软开关实现条件,重点关注谐振腔参数对系统效率与动态响应的影响,以全面提升对LLC变换器工作特性的认知水平与工程设计能力。

上一篇: Bigtable: A Distributed Storage System for Structured Data : part6 Refinements
下一篇: Bigtable: A Distributed Storage System for Structured Data : part8 Real Applications
雙重底
博客等级 码龄12年 28粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值