8 Performance
Running a single TAO deployment for all of Facebook
allows us to benefit from economies of scale, and makes
it easy for new products to integrate with existing portions
of the social graph. In this section, we report on the
performance of TAO under a real workload.
Availability: Over a period of 90 days, the fraction
of failed TAO queries as measured from the web server
was 4.9×10−6. Care must be taken when interpreting
this number, since the failure of one TAO query might
prevent the client from issuing another query with a dynamic data dependence on the first. TAO’s failures may
also be correlated with those of other dependent systems.
Follower capacity: The peak throughput of a follower
depends on its hit rate. Figure 7 shows the highest 15-
minute average throughput we observe in production for
our current hardware configuration, which has 144GB
of RAM, 2 Intel Xeon 8 core E5-2660 CPUs running at
2.2Ghz with Hyperthreading, and 10 Gigabit ethernet.
Hit rates and latency: As part of the data collection
process that was described in § 7, we measured latencies
in the client application; these measurements include all
network latencies and the time taken to traverse the PHP
TAO client stack. Requests were sampled at the same
rate in all regions. TAO’s overall hit rate for reads was
96.4%. Figure 8 shows the client-observed latencies for
reads. obj get has higher miss latencies than the other
reads because objects typically have more data (see Figure
6). assoc count requests to the persistent store have a
larger id1 working set than other association queries, and
hence make poorer use of the database’s buffer cache.
TAO’s writes are performed synchronously to the master
database, so writes from other regions include an
inter-region round trip. Figure 9 compares the latency
in two data centers that are 58.1 milliseconds away from
each other (average round trip). Average write latency
in the same region as the master was 12.1 msec; in the
remote region it was 74.4 = 58.1 + 16.3 msec.
Replication lag: TAO’s asynchronous replication of
writes between regions is a design trade-off that favors read performance and throughput over consistency. We
observed that TAO’s slave storage servers lag their master
by less than 1 second during 85% of the tracing window,
by less than 3 seconds 99% of the time, and by less
than 10 seconds 99.8% of the time.
Failover: Follower caches directly contact the
database when a leader is unavailable; this failover path
was used on 0.15% of follower cache misses over our
sample. Failover for write requests involves delegating
those requests to a random leader, which occurred for
0.045% of association and object writes. Slave databases
were promoted to be the master 0.25% of the time due to
planned maintenance or unplanned downtime.
9 Related Work
TAO is a geographically distributed eventually consistent
graph store optimized for reads. Previous distributed
systems works have explored relaxed consistency, graph
databases, and read-optimized storage. To our knowledge,
TAO is the first to combine all of these techniques
in a single system at large scale.
Eventual consistency: Terry et al. [33] describe
eventual consistency, the relaxed consistency model
which is used by TAO.Werner describes read-after-write
consistency as a property of some variants of eventual
consistency [35].
Geographically distributed data stores: The Coda
file system uses data replication to improve performance
and availability in the face of slow or unreliable networks
[29]. Unlike Coda, TAO does not allow writes
in portions of the system that are disconnected.
Megastore is a storage system that uses Paxos across
geographically distributed data centers to provide strong
consistency guarantees and high availability [5]. Spanner,
the next generation globally distributed database developed
at Google after Megastore, introduces the concept
of a time API that exposes time uncertainty and
leverages that to improve commit throughput and provide
snapshot isolation for reads [8]. TAO addresses a very
different use case, providing no consistency guarantees
but handling many orders of magnitude more requests.
Distributed hash tables and key-value systems: Unstructured key-value systems are an attractive approach
to scaling distributed storage because data can be easily
partitioned and little communication is needed between
partitions. Amazon’s Dynamo [10] demonstrates how
they can be used in building flexible and robust commercial
systems. Drawing inspiration from Dynamo,
LinkedIn’s Voldemort [4] also implements a distributed
key-value store but for a social network. TAO accepts
lower write availability than Dynamo in exchange for
avoiding the programming complexities that arise from
multi-master conflict resolution. The simplicity of key value stores also allows for aggressive performance optimizations, as seen in Facebook’s use of memcache [21].
Many contributions in distributed hash tables have focused
on routing [28, 32, 25, 24]. Li et al. [16] characterize
the performance of DHTs under churn while Dabek et
al. [9] focus on designing DHTs in a wide-area network.
TAO exploits the hierarchy of inter-cluster latencies afforded by our data center placement and assumes a controlled environment that has few membership or cluster
topology changes. Many other works have focused on the consistency semantics provided by key-value stores. Gribble et al. [13] provide a coherent view of cached data by leveraging two-phase commit. Glendenning et al. [12] built a linearizable key-value store tolerant of churn. Sovran et al. [31] implement geo-replicated transactions.
The COPS system [17] provides causal consistency
in a highly available key-value store by tracking all dependencies for all keys accessed by a client context.
Eiger [18] improves on COPS by tracking conflicts between
pending operations in a column-family database.
The techniques used in Eiger may be applicable TAO if
the per-machine efficiency can be improved.
Hierarchical connectivity: Nygren et al. [22] describe
how the Akamai content cache optimizes latency
by grouping edge clusters into regional groups that share
a more powerful ‘parent’ cluster, which are similar to
TAO’s follower and leader tiers.
Structured storage: TAO follows the recent trend of
shifting away from relational databases towards structured
storage approaches. While loosely defined, these
systems typically provide weaker guarantees than the
traditional ACID properties. Google’s BigTable [6],
Yahoo!’s PNUTS [7], Amazon’s SimpleDB [1], and
Apache’s HBase [34] are examples of this more scalable
approach. These systems all provide consistency
and transactions at the per-record or row level similar to
TAO’s semantics for objects and associations, but do not
provide TAO’s read efficiency or graph semantics. Escriva
et al. [27] describe a searchable key-value store.
Redis [26] is an in-memory storage system providing a
range of data types and an expressive API for data sets
that fit entirely in memory.
Graph serving: Since TAO was designed specifically
to serve the social graph, it is unsurprising that it shares
features with existing works on graph databases. Shao
and Wang’s Trinity effort [30] stores its graph structures
in-memory. Neo4j [20] is a popular open-source graph
database that provides ACID semantics and the ability
to shard data across several machines. Twitter uses its
FlockDB [11] to store parts of its social graph, as well.
To the best our knowledge, none of these systems scale
to support Facebook’s workload.
Redis [26] is a key-value store with a rich selection of value types sufficient to efficiently implement the objects
and associations API. Unlike TAO, however, it requires
that the data set fit entirely in memory. Redis replicas are
read-only, so they don’t provide read-after-write consistency without a higher-level system like Nishtala et al.’s remote markers [21].
Graph processing: TAO does not currently support
an advanced graph processing API. There are several
systems that try to support such operations but they are
not designed to receive workloads directly from client
applications. PEGASUS [14] and Yahoo’s Pig Latin [23]
are systems to do data mining and analysis of graphs on
top of Hadoop, with PEGASUS being focused on petascale
graphs and Pig Latin focusing on a more-expressive
query language. Similarly, Google’s Pregel [19] tackles
a lot of the same graph analysis issues but uses its own
more-expressive job distribution model. These systems
focus on throughput for large tasks, rather than a high
volume of updates and simple queries. Facebook has
similar large-scale offline graph-processing systems that
operate on data copied from TAO’s databases, but these
analysis jobs do not execute within TAO itself.
ประสิทธิภาพการทำงาน 8ทำการปรับใช้เต่าเดียวของ Facebookช่วยให้เราสามารถได้รับประโยชน์จากเศรษฐกิจของขนาด และทำให้เป็นเรื่องง่ายสำหรับผลิตภัณฑ์ใหม่เพื่อรวมเข้ากับส่วนที่มีอยู่ของกราฟทางสังคม ในส่วนนี้ เรารายงานเกี่ยวกับการประสิทธิภาพของเต่าภายใต้ปริมาณงานจริงความพร้อมใช้งาน: ในช่วง 90 วัน เศษส่วนแบบสอบถามเต่าล้มวัดจากเว็บเซิร์ฟเวอร์4.9 × 10−6 การดูแลต้องดำเนินการเมื่อการตีความหมายเลขนี้ เนื่องจากความล้มเหลวของสอบถามเต่าหนึ่งอาจป้องกันลูกค้าจากการออกแบบสอบถามอื่นด้วยที่ข้อมูลแบบไดนามิกพึ่งครั้งแรก ความล้มเหลวของเต่าอาจนอกจากนี้ยัง มี correlated กับระบบอื่น ๆ ขึ้นอยู่ กำลังหล่อ: อัตราความเร็วสูงสุดของผู้ติดตามขึ้นอยู่กับอัตราการเข้าชม รูปที่ 7 แสดงสูง 15-อัตราความเร็วเฉลี่ยที่นาทีที่เราปฏิบัติในการผลิตของเราปัจจุบันกำหนดค่าฮาร์ดแวร์ ซึ่งมี 144GBของ RAM, 2 Intel Xeon 8 หลัก E5 2660 Cpu ทำงาน2.2Ghz กับ Hyperthreading และ 10 กิกะบิตอีเทอร์เน็ตราคาและเวลาแฝงในการเข้าชม: เป็นส่วนหนึ่งของชุดข้อมูลกระบวนการที่ได้อธิบายไว้ในแท้ 7 เราวัดเวลาแฝงในโปรแกรมประยุกต์ของไคลเอ็นต์ วัดเหล่านี้รวมทั้งหมดเวลาแฝงเครือข่ายและเวลาที่ใช้ในการข้าม PHPเต่าไคลเอนต์กอง คำขอมีตัวอย่างที่เหมือนกันอัตราในทุกภูมิภาค มีเต่าตีโดยรวมสำหรับผู้อ่าน96.4% รูปที่ 8 แสดงเวลาแฝงสังเกตลูกค้าสำหรับอ่าน กับวัตถุได้มีนางสาวเวลาแฝงที่สูงกว่าอื่นอ่านได้เนื่องจากวัตถุมีข้อมูลเพิ่มเติมโดยทั่วไป (ดูรูป6) . รศนพร้องขอนับไปยังที่เก็บแบบมีการทำงาน id1 ใหญ่ตั้งกว่าแบบสอบถามความสัมพันธ์อื่น ๆ และดังนั้น ย่อมใช้แคชของบัฟเฟอร์ของฐานข้อมูลได้เต่าเขียนดำเนินการพร้อมกันกับหลักฐานข้อมูล เพื่อเขียนจากภูมิภาคอื่นรวมถึงการภูมิภาคระหว่างกลับ รูปที่ 9 เปรียบเทียบแฝงที่ในศูนย์ข้อมูลที่ 58.1 มิลลิวินาทีจากกัน (เฉลี่ยกลับ) เวลาแฝงเฉลี่ยเขียนในภูมิภาคเดียวกันเป็นหลัก 12.1 มิลลิวินาที ในภูมิภาคระยะไกลมันเป็น 74.4 = 58.1 + 16.3 มิลลิวินาทีความล่าช้าในการจำลองแบบ: เต่าจำลองแบบอะซิงโครนัสของเขียนระหว่างภูมิภาคเป็น trade-off ออกที่สนับสนุนประสิทธิภาพการอ่านและอัตราความเร็วมากกว่าความสอดคล้อง เราสังเกตว่า เต่าทาสเก็บเซิร์ฟเวอร์หลักของพวกเขาล่าช้าโดยน้อยกว่า 1 วินาทีระหว่าง 85% ของหน้าต่างติดตามน้อยกว่า 3 วินาที 99% ของเวลา และน้อยกว่า 10 วินาที 99.8% ของเวลาล้ม: แคชหล่อโดยตรงติดต่อเมื่อผู้นำไม่พร้อมใช้งาน ฐานข้อมูล เส้นทางนี้ล้มใช้บน 0.15% ของหล่อแคพุ่งผ่านของเราตัวอย่างการ ล้มสำหรับคำขอเขียนเกี่ยวข้องกับการมอบหมายคำขอดังกล่าวจะสุ่มผู้นำ ซึ่งเกิดขึ้นใน0.045% สมาคมและวัตถุที่เขียน ฐานข้อมูลของทาสขึ้นชั้นเป็นหลัก 0.25% เวลาเนื่องซ่อมบำรุงหรือหยุดทำงานไม่ได้วางแผนงานที่เกี่ยวข้อง 9เต่าจะกระจายกันทางภูมิศาสตร์ในที่สุดสอดคล้องกันการจัดเก็บกราฟเหมาะสำหรับผู้อ่าน ก่อนหน้านี้ที่กระจายระบบทำงานได้สำรวจความผ่อนคลาย กราฟฐานข้อมูล และปรับการจัดเก็บ ความรู้ของเราเต่าเป็นครั้งแรกรวมทั้งหมดของเทคนิคเหล่านี้ในระบบหนึ่ง ๆ ที่ขนาดใหญ่ความสอดคล้องใน: อธิบายเทอร์รี่ et al. [33]ความสอดคล้องใน แบบความผ่อนคลายซึ่งถูกใช้ โดยเต่า อ่านหลังจากเขียนอธิบาย Wernerความสอดคล้องตามคุณสมบัติของตัวแปรบางอย่างของในความสอดคล้องกัน [35]กระจายเก็บข้อมูลกันทางภูมิศาสตร์: Codaแฟ้มระบบจำลองแบบข้อมูลที่ใช้เพื่อปรับปรุงประสิทธิภาพและความพร้อมหน้าของเครือข่ายที่ช้า หรือไม่[29] ต่างจาก Coda เต่าไม่อนุญาตให้เขียนในส่วนของระบบที่ยกMegastore เป็นระบบการจัดเก็บที่ใช้ Paxos ข้ามศูนย์ข้อมูลที่กระจายกันทางภูมิศาสตร์ให้แข็งแกร่งรับประกันคุณภาพความสอดคล้องและความพร้อมสูง [5] อีกองรุ่นต่อไปกระจายฐานข้อมูลพัฒนาทั่วโลกที่ Google หลังจาก Megastore แนะนำแนวคิดของ API เวลาที่แสดงถึงเวลาความไม่แน่นอน และใช้ที่ปรับปรุงอัตราความเร็วในการยอมรับ และให้แยกสแนปช็อตสำหรับอ่าน [8] เต่าที่อยู่ตัวมากให้สอดคล้องไม่รับประกันกรณีที่ใช้แตกต่างกันแต่เพิ่มเติมการจัดการหลายอันดับของขนาดร้องขอแจกจ่ายตารางแฮและค่าคีย์ระบบ: ระบบค่าคีย์ที่ไม่มีโครงสร้างเป็นวิธีน่าสนใจการปรับขนาดจัดเก็บกระจายเนื่องจาก ข้อมูลนั้นได้จำเป็นต้องมีการสื่อสาร partitioned และน้อยระหว่างพาร์ติชัน ไดนาโมของ Amazon [10] แสดงให้เห็นว่าสามารถใช้ในอาคารพาณิชย์ที่มีความยืดหยุ่น และแข็งแรงระบบ วาดแรงบันดาลใจจากไดนาโมอย่างไร LinkedIn ของโวลเดอมอร์ [4] นอกจากนี้ยังใช้การกระจายเก็บค่าคีย์แต่ สำหรับเครือข่ายสังคม ยอมรับเต่าพร้อมเขียนต่ำกว่าไดนาโมใน exchange สำหรับหลีกเลี่ยงความซับซ้อนที่เกิดขึ้นจากโปรแกรมแก้ไขความขัดแย้งหลายหลักการ ความเรียบง่ายของร้านค่าคีย์ยังได้สำหรับประสิทธิภาพสูงก้าวร้าว เห็นใช้ของ Facebook ของ memcache [21]มีเน้นผลงานมากมายในตารางแฮกระจายในสายงานการผลิต [28, 32, 25, 24] ลักษณะของ Li et al. [16]ประสิทธิภาพของ DHTs ใต้เดือดพล่านขณะ Dabek ร้อยเอ็ดความ al. [9] ในการออกแบบ DHTs ในเครือข่ายพื้นที่กว้างเต่านำของคลัสเตอร์ระหว่างเวลาแฝงที่ afforded โดยวางศูนย์ข้อมูลของเรา และสภาพแวดล้อมการควบคุมที่มีสมาชิกน้อยหรือคลัสเตอร์สันนิษฐานการเปลี่ยนแปลงโครงสร้าง รู้ความหมายสอดคล้องกันโดยเก็บค่าคีย์งานอื่น ๆ Gribble et al. [13] ให้ดู coherent ของข้อมูลที่เก็บไว้ โดยใช้ทราน two-phase Glendenning et al. [12] สร้างเก็บตามค่าคีย์ linearizable ที่ทนกับเดือดพล่าน Sovran et al. [31] ใช้ธุรกรรมที่มีการจำลองแบบทางภูมิศาสตร์ระบบตำรวจ [17] ให้ความสอดคล้องเชิงสาเหตุในการเก็บสูงมีค่าคีย์โดยการติดตามการอ้างอิงทั้งหมดสำหรับคีย์ทั้งหมดที่เข้าถึงบริบทของไคลเอ็นต์Eiger [18] ปรับปรุงกับตำรวจ โดยการติดตามความขัดแย้งระหว่างการดำเนินการที่ค้างอยู่ในฐานข้อมูลคอลัมน์ครอบครัวเทคนิคที่ใช้ใน Eiger อาจใช้เต่าถ้าสามารถปรับปรุงประสิทธิภาพสำหรับแต่ละเครื่องลำดับชั้นการเชื่อมต่อ: อธิบาย Nygren et al. [22]วิธีแคเนื้อหาอคะไมปรับแฝงโดยจัดกลุ่มคลัสเตอร์ขอบในภูมิภาคกลุ่มที่ใช้ร่วมกันมีประสิทธิภาพมากขึ้นคลัสเตอร์ 'หลัก' ซึ่งคล้ายกับเต่าหล่อและระดับผู้นำโครงสร้างการจัดเก็บ: เต่าตามแนวโน้มล่าสุดของขยับจากฐานข้อมูลเชิงสัมพันธ์ต่อโครงสร้างวิธีเก็บข้อมูล ในขณะซึ่งกำหนด เหล่านี้ระบบโดยทั่วไปให้ประกันที่แข็งแกร่งกว่านี้คุณสมบัติกรดแบบดั้งเดิม ของ Google BigTable [6],ของ yahoo! PNUTS [7] ของ Amazon SimpleDB [1], และของอะแพชี HBase [34] อย่างนี้สามารถต่อขยายเพิ่มเติมแนวทางการ ระบบเหล่านี้ทั้งหมดให้สอดคล้องและธุรกรรมสำหรับแต่ละเรกคอร์ดหรือแถวระดับคล้ายกับความหมายของเต่าในวัตถุและความสัมพันธ์ของ แต่ไม่ให้เต่าอ่านประสิทธิภาพหรือกราฟความหมาย Escrivaal. ร้อยเอ็ด [27] อธิบายการจัดเก็บค่าคีย์ยากคุณ redis [26] เป็นระบบจัดเก็บข้อมูลในหน่วยความจำให้เป็นช่วงของชนิดข้อมูลและ API แสดงออกสำหรับชุดข้อมูลที่พอดีทั้งในหน่วยความจำกราฟการให้บริการ: เต่าเนื่องจากถูกออกแบบมาโดยเฉพาะการบริการสังคมกราฟ ก็ unsurprising ว่า หุ้นลักษณะการทำงานกับงานที่มีอยู่ในฐานข้อมูลกราฟ เสียวและความพยายามของทรินิตี้ของวัง [30] จัดเก็บโครงสร้างของกราฟในหน่วยความจำ Neo4j [20] เป็นกราฟเปิดแหล่งยอดนิยมฐานข้อมูลที่ให้ความหมายของกรดและความสามารถในข้อมูลชาร์ดข้ามหลายเครื่อง ทวิตเตอร์ใช้ของFlockDB [11] เพื่อเก็บชิ้นส่วนของของสังคมกราฟ เช่นกับ ความรู้ของเรา ระบบเหล่านี้ไม่มีขนาดเพื่อรองรับปริมาณงานของ Facebookคุณ redis [26] เป็นการจัดเก็บค่าคีย์พร้อมอาหารหลากหลายชนิดค่าเพียงพอที่จะใช้วัตถุได้อย่างมีประสิทธิภาพและความสัมพันธ์ของ API ซึ่งแตกต่างจากเต่า อย่างไร ตามต้องการข้อมูลที่ตั้งพอดีทั้งในหน่วยความจำ Redis จำลองมีนั้น ดังนั้นพวกเขาไม่ได้ให้อ่านหลังจากเขียนสอดคล้องกัน โดยระบบที่สูงกว่าเช่นเครื่องหมายระยะไกล Nishtala et al. [21]ประมวลผลกราฟ: เต่าในปัจจุบันสนับสนุนAPI การประมวลผลของกราฟขั้นสูง มีหลายระบบที่พยายามสนับสนุนการดำเนินงานดังกล่าว แต่ก็มีจะได้รับปริมาณงานจากลูกค้าโดยตรงใช้งาน เพกาซัส [14] และละตินหมูของ Yahoo [23]มีระบบการทำเหมืองข้อมูลและการวิเคราะห์กราฟบนด้านบนของอย่างไร Hadoop กับเพกาซัสที่กำลังเน้น petascaleกราฟและละตินหมูเน้นที่เพิ่มเติมแสดงออกภาษาสอบถาม ในทำนองเดียวกัน tackles Pregel [19] ของ Googleปัญหาจำนวนมากการวิเคราะห์กราฟเดียวกัน แต่ใช้ตัวเองแบบจำลองการกระจายงานที่แสดงออกมากขึ้น ระบบเหล่านี้ในอัตราความเร็วสำหรับงานขนาดใหญ่ สูงปริมาตรของการปรับปรุงและสอบถาม มี Facebookระบบประมวลผลกราฟการออฟไลน์ขนาดใหญ่ที่คล้ายกันที่มีข้อมูลที่ถูกคัดลอกจากฐานข้อมูลของเต่า แต่เหล่านี้วิเคราะห์งานปฏิบัติภายในเต่าตัวเองไม่
การแปล กรุณารอสักครู่..

8
ผลการดำเนินงานวิ่งการใช้งานTAO เดียวสำหรับทุก Facebook ช่วยให้เราสามารถได้รับประโยชน์จากการประหยัดจากขนาดและทำให้มันง่ายสำหรับผลิตภัณฑ์ใหม่เพื่อบูรณาการกับส่วนที่มีอยู่ของกราฟทางสังคม ในส่วนนี้เรารายงานเกี่ยวกับประสิทธิภาพการทำงานของอบตภายใต้ภาระงานจริง. จำหน่าย: ในช่วง 90 วันส่วนของคำสั่งTAO ล้มเหลวที่วัดจากเว็บเซิร์ฟเวอร์ได้4.9 × 10-6 การดูแลจะต้องดำเนินการเมื่อการตีความจำนวนนี้เนื่องจากความล้มเหลวของการค้นหา TAO หนึ่งอาจป้องกันไม่ให้ลูกค้าจากการออกแบบสอบถามที่มีการพึ่งพาอาศัยข้อมูลแบบไดนามิกในครั้งแรก ความล้มเหลวของ TAO อาจยังมีความสัมพันธ์กับผู้ที่ขึ้นอยู่กับระบบอื่นๆ . ความจุติดตามการผ่านจุดสูงสุดของการเป็นผู้ตามขึ้นอยู่กับอัตราการตีของ รูปที่ 7 แสดงให้เห็นถึงสูงสุด 15 นาทีผ่านเฉลี่ยเราสังเกตในการผลิตสำหรับการกำหนดค่าฮาร์ดแวร์ในปัจจุบันของเราซึ่งมี 144GB แรม 2 Intel Xeon E5-2660 8 แกนซีพียูทำงานที่2.2Ghz กับ Hyperthreading และอีเธอร์เน็ต 10 กิกะบิต. ตีราคาและ แฝง: เป็นส่วนหนึ่งของการเก็บรวบรวมข้อมูลกระบวนการที่ได้อธิบายไว้ใน§ 7 เราวัดศักยภาพในการประยุกต์ใช้ของลูกค้า; วัดเหล่านี้รวมถึงศักยภาพของเครือข่ายและเวลาที่จะสำรวจ PHP สแต็คของลูกค้า TAO การขอเก็บตัวอย่างในเวลาเดียวกันอัตราการในทุกภูมิภาค อัตราการตีโดยรวม TAO สำหรับอ่านเป็น96.4% รูปที่ 8 แสดงให้เห็นถึงศักยภาพของลูกค้าสังเกตอ่าน รับ obj มีศักยภาพสูงพลาดกว่าที่อื่น ๆอ่านเพราะวัตถุมักจะมีข้อมูลมากขึ้น (ดูรูปที่6) การร้องขอนับรองในการจัดเก็บถาวรมีid1 ขนาดใหญ่ชุดการทำงานกว่าคำสั่งสมาคมอื่น ๆ และด้วยเหตุนี้ทำให้การใช้งานที่ยากจนของแคชbuffer ฐานข้อมูลของ. เขียน TAO จะดำเนินการพร้อมกันต้นแบบฐานข้อมูลเพื่อเขียนจากภูมิภาคอื่นๆ รวมถึงรอบระหว่างภูมิภาคการเดินทาง รูปที่ 9 เปรียบเทียบแอบแฝงในสองศูนย์ข้อมูลที่มี58.1 มิลลิวินาทีห่างจากแต่ละอื่นๆ (รอบเฉลี่ยการเดินทาง) แฝงเขียนเฉลี่ยในภูมิภาคเดียวกับต้นแบบเป็น 12.1 มิลลิวินาที; ในพื้นที่ห่างไกลมันเป็น 74.4 = 58.1 + 16.3 มิลลิวินาที. ความล่าช้าการจำลองแบบ: การจำลองแบบไม่ตรงกัน TAO ของการเขียนระหว่างภูมิภาคคือการปิดการออกแบบที่โปรดปรานประสิทธิภาพการอ่านและการส่งผ่านความสม่ำเสมอมากกว่า เราสังเกตเห็นว่าอบเซิร์ฟเวอร์จัดเก็บทาสล่าช้าเจ้านายของตนน้อยกว่า1 วินาทีในช่วง 85% ของหน้าต่างติดตามน้อยกว่า3 วินาที 99% ของเวลาและน้อยกว่า10 วินาที 99.8% ของเวลา. Failover: แคชติดตาม โดยตรงติดต่อฐานข้อมูลเมื่อผู้นำไม่สามารถใช้งาน; เส้นทางที่ล้มเหลวนี้ถูกนำมาใช้ใน 0.15% คิดถึงแคชสาวกของเรามากกว่าตัวอย่าง ล้มเหลวสำหรับการร้องขอการเขียนเกี่ยวกับการมอบหมายการร้องขอเหล่านั้นเพื่อเป็นผู้นำแบบสุ่มซึ่งเกิดขึ้น0.045% ของสมาคมและการเขียนวัตถุ ฐานข้อมูลทาสรับการเลื่อนตำแหน่งให้เป็นหลัก 0.25% ของเวลาเนื่องจากการบำรุงรักษาตามแผนหรือหยุดทำงานโดยทันที. 9 งานที่เกี่ยวข้องTAO เป็นที่สอดคล้องกันในที่สุดกระจายทางภูมิศาสตร์ร้านกราฟเหมาะสำหรับการอ่าน ก่อนหน้าการกระจายระบบการทำงานมีการสำรวจความสอดคล้องผ่อนคลายกราฟฐานข้อมูลและการจัดเก็บข้อมูลที่ดีที่สุดอ่าน ความรู้ของเราTAO เป็นครั้งแรกที่รวมทั้งหมดของเทคนิคเหล่านี้ในระบบเดียวที่มีขนาดใหญ่. ความมั่นคงในที่สุด: เทอร์รี่, et al [33] อธิบายความสอดคล้องในที่สุดรูปแบบสอดคล้องผ่อนคลายซึ่งถูกใช้โดยTAO.Werner อธิบายอ่านหลังจากเขียนความสอดคล้องเป็นทรัพย์สินของบางสายพันธุ์ของที่สุดความมั่นคง[35]. การกระจายทางภูมิศาสตร์เก็บข้อมูลการ Coda ระบบไฟล์ที่ใช้การจำลองแบบข้อมูล เพื่อปรับปรุงประสิทธิภาพและความพร้อมในการเผชิญกับเครือข่ายที่ช้าหรือไม่น่าเชื่อถือ[29] ซึ่งแตกต่างจากตอนจบ, TAO ไม่อนุญาตให้เขียนในส่วนของระบบที่จะเชื่อมต่อ. Megastore เป็นระบบจัดเก็บข้อมูลที่ใช้ทั่ว Paxos กระจายทางภูมิศาสตร์ศูนย์ข้อมูลที่แข็งแกร่งเพื่อให้การค้ำประกันความมั่นคงและความพร้อมใช้งานสูง [5] ประแจ, รุ่นต่อไปฐานข้อมูลกระจายทั่วโลกได้รับการพัฒนาที่ Google หลังจาก Megastore แนะนำแนวคิดของเวลาAPI ที่ตีแผ่ความไม่แน่นอนของเวลาและใช้ประโยชน์ในการปรับปรุงที่กระทำผ่านและให้แยกsnapshot สำหรับอ่าน [8] TAO อยู่มากกรณีใช้ที่แตกต่างกันให้การค้ำประกันความมั่นคงไม่มีแต่การจัดการคำสั่งซื้อจำนวนมากของขนาดการร้องขอมากขึ้น. กระจายตารางแฮชและระบบค่าคีย์: ไม่มีโครงสร้างระบบค่าคีย์เป็นวิธีการที่น่าสนใจในการจัดเก็บข้อมูลการปรับการกระจายเนื่องจากข้อมูลได้อย่างง่ายดายแบ่งพาร์ติชันและการสื่อสารเป็นสิ่งจำเป็นเล็ก ๆ น้อย ๆ ระหว่างพาร์ทิชัน ไดนาโมของ Amazon [10] แสดงให้เห็นว่าพวกเขาสามารถนำมาใช้ในการสร้างการค้ามีความยืดหยุ่นและมีประสิทธิภาพระบบ แรงบันดาลใจจากเครื่องปั่นไฟ, LinkedIn ของโวลเดอม [4] นอกจากนี้ยังดำเนินการกระจายการจัดเก็บค่าคีย์แต่สำหรับเครือข่ายทางสังคม TAO ยอมรับความพร้อมในการเขียนต่ำกว่าไดนาโมในการแลกเปลี่ยนสำหรับการหลีกเลี่ยงความซับซ้อนการเขียนโปรแกรมที่เกิดขึ้นจากการแก้ปัญหาความขัดแย้งหลายหลัก ความเรียบง่ายของร้านค้าค่าคีย์ยังช่วยให้การเพิ่มประสิทธิภาพการปฏิบัติงานเชิงรุกเท่าที่เห็นในการใช้งานของ Facebook ของ memcache [21]. ผลงานจำนวนมากในตารางแฮชกระจายได้มุ่งเน้นในการกำหนดเส้นทาง [28, 32, 25, 24] Li et al, [16] ลักษณะการทำงานของDHTs ภายใต้การปั่นในขณะที่ Dabek et al, [9] มุ่งเน้นไปที่การออกแบบ DHTs ในเครือข่ายพื้นที่กว้าง. TAO ใช้ประโยชน์จากศักยภาพของลำดับชั้นระหว่างคลัสเตอร์ afforded โดยตำแหน่งศูนย์ข้อมูลของเราและถือว่าสภาพแวดล้อมการควบคุมที่มีสมาชิกน้อยหรือกลุ่มการเปลี่ยนแปลงโครงสร้าง ผลงานอื่น ๆ จำนวนมากได้มุ่งเน้นไปที่ความหมายสอดคล้องที่ได้รับจากร้านค้าที่สำคัญที่มีมูลค่า กริบเบิ้ et al, [13] ให้มุมมองที่สอดคล้องกันของข้อมูลที่เก็บไว้โดยใช้ประโยชน์จากทั้งสองเฟสกระทำ Glendenning et al, [12] สร้างการจัดเก็บค่าคีย์ linearizable ใจกว้างของปั่น Sovran et al, [31] การดำเนินการทำธุรกรรมทางภูมิศาสตร์จำลองแบบ. ระบบตำรวจ [17] ให้สอดคล้องสาเหตุในร้านพร้อมใช้งานสูงค่าคีย์โดยการติดตามการอ้างอิงทั้งหมดคีย์ทั้งหมดเข้าถึงได้โดยบริบทลูกค้า. Eiger [18] ช่วยเพิ่มเกี่ยวกับตำรวจโดยการติดตามความขัดแย้งระหว่างการดำเนินงานที่ค้างอยู่ในฐานข้อมูลคอลัมน์ครอบครัว. เทคนิคที่ใช้ในการ Eiger อาจจะบังคับ TAO ถ้าประสิทธิภาพต่อเครื่องได้ดีขึ้น. การเชื่อมต่อลำดับชั้น: Nygren et al, [22] อธิบายวิธีการแคชเนื้อหาAkamai เพิ่มประสิทธิภาพแฝงโดยการจัดกลุ่มกลุ่มขอบเป็นกลุ่มในระดับภูมิภาคที่ใช้ร่วมกันที่มีประสิทธิภาพมากขึ้น'ผู้ปกครอง' กลุ่มซึ่งมีความคล้ายคลึงกับลูกศิษย์ของTAO และชั้นผู้นำ. การจัดเก็บข้อมูลที่มีโครงสร้าง: TAO ตามแนวโน้มล่าสุดของการขยับตัวออกห่างจากฐานข้อมูลเชิงสัมพันธ์ที่มีต่อโครงสร้างวิธีการจัดเก็บข้อมูล ในขณะที่กำหนดไว้อย่างหลวม ๆ เหล่านี้ระบบมักจะให้การค้ำประกันอ่อนแอกว่าคุณสมบัติกรดแบบดั้งเดิม BigTable ของ Google [6], ยาฮู! PNUTS [7] ของ Amazon SimpleDB [1] และของApache HBase [34] เป็นตัวอย่างของการขยายขีดความสามารถมากขึ้นนี้วิธีการ ระบบเหล่านี้ทั้งหมดให้สอดคล้องและการทำธุรกรรมที่บันทึกต่อหรือระดับแถวคล้ายกับความหมายของTAO สำหรับวัตถุและสมาคม แต่ไม่ได้ให้อบตอ่านอย่างมีประสิทธิภาพหรือความหมายของกราฟ Escriva et al, [27] อธิบายการจัดเก็บค่าคีย์ค้นหา. Redis [26] เป็นระบบการจัดเก็บข้อมูลในหน่วยความจำให้หลากหลายของชนิดข้อมูลและแสดงออกAPI สำหรับข้อมูลชุดที่เหมาะสมกับทั้งหมดในความทรงจำ. กราฟที่ให้บริการ: ตั้งแต่ TAO ได้รับการออกแบบมาโดยเฉพาะเพื่อบริการกราฟทางสังคมก็เป็นที่แปลกใจเลยว่าหุ้นมันมีคุณสมบัติที่มีผลงานที่มีอยู่ในฐานข้อมูลกราฟ Shao และวังของความพยายามที่ทรินิตี้ [30] เก็บโครงสร้างกราฟในหน่วยความจำ Neo4j [20] เป็นที่นิยมมาเปิดกราฟฐานข้อมูลที่ให้ความหมายกรดและความสามารถในการShard ข้อมูลในหลายเครื่อง ทวิตเตอร์ใช้ของFlockDB [11] ในการจัดเก็บชิ้นส่วนของกราฟทางสังคมของตนเช่นเดียว. ที่ดีที่สุดความรู้ของเราไม่มีของเหล่านี้ขนาดระบบเพื่อสนับสนุนภาระงานของ Facebook. Redis [26] เป็นร้านค้าที่สำคัญคุ้มค่ากับการเลือกที่อุดมไปด้วยค่า ชนิดเพียงพอที่จะดำเนินการได้อย่างมีประสิทธิภาพวัตถุและสมาคมAPI ซึ่งแตกต่างจากเต่า แต่ก็ต้องว่าข้อมูลชุดพอดีทั้งหมดในหน่วยความจำ แบบจำลอง Redis จะอ่านอย่างเดียวเพื่อให้พวกเขาไม่ได้ให้อ่านหลังจากเขียนสอดคล้องไม่มีระบบระดับสูงเช่นNishtala et al, เครื่องหมายของระยะไกล [21].. การประมวลผลกราฟ: TAO ไม่สนับสนุนประมวลผลกราฟขั้นสูงAPI มีหลายระบบที่พยายามที่จะสนับสนุนการดำเนินการดังกล่าวแต่พวกเขาจะไม่ได้ออกแบบให้ได้รับปริมาณงานโดยตรงจากลูกค้าการใช้งาน เพกาซัส [14] และ Yahoo ของละติน [23] เป็นระบบที่จะทำเหมืองข้อมูลและการวิเคราะห์กราฟบนด้านบนของ Hadoop กับเพกาซัสได้รับการมุ่งเน้นไปที่ petascale กราฟและละตินมุ่งเน้นไปที่การแสดงมากขึ้นภาษาแบบสอบถาม ในทำนองเดียวกัน Pregel ของ Google [19] โหม่งมากในประเด็นการวิเคราะห์กราฟเดียวกันแต่ใช้ของตัวเองรูปแบบการกระจายงานที่แสดงออกมากขึ้น ระบบเหล่านี้มุ่งเน้นไปที่การส่งผ่านสำหรับงานที่มีขนาดใหญ่มากกว่าสูงปริมาณของการปรับปรุงและคำสั่งที่เรียบง่าย Facebook มีที่คล้ายกันขนาดใหญ่แบบออฟไลน์ระบบการประมวลผลกราฟที่ดำเนินการเกี่ยวกับข้อมูลที่คัดลอกจากฐานข้อมูลของTAO แต่งานวิเคราะห์ไม่ดำเนินการภายในอบตตัวเอง
การแปล กรุณารอสักครู่..
