Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of FacebookThe Hive
This presentation describes the reasons why Facebook decided to build yet another key-value store, the vision and architecture of RocksDB and how it differs from other open source key-value stores. Dhruba describes some of the salient features in RocksDB that are needed for supporting embedded-storage deployments. He explains typical workloads that could be the primary use-cases for RocksDB. He also lays out the roadmap to make RocksDB the key-value store of choice for highly-multi-core processors and RAM-speed storage devices.
The document provides an overview of the internal workings of Neo4j. It describes how the graph data is stored on disk as linked lists of fixed size records and how two levels of caching work - a low-level filesystem cache and a high-level object cache that stores node and relationship data in a structure optimized for traversals. It also explains how traversals are implemented using relationship expanders and evaluators to iteratively expand paths through the graph, and how Cypher builds on this but uses graph pattern matching rather than the full traversal system.
This document discusses Pinot, Uber's real-time analytics platform. It provides an overview of Pinot's architecture and data ingestion process, describes a case study on modeling trip data in Pinot, and benchmarks Pinot's performance on ingesting large volumes of data and answering queries in real-time.
Yahoo has long been involved in HBase and its community. In 2013, HBase was offered as a hosted service at Yahoo. Since then, adoption has grown rapidly., and today, HBase is used by numerous teams across the company, helping to enable a diverse set of use cases ranging from near real-time processing to data warehousing. This was made possible thanks to HBase along with some enhancements to support multi-tenancy and scale. As our clusters continue to grow and use cases become more demanding we are working towards supporting a million regions in a single cluster. In this keynote, we’ll paint a picture of where Yahoo! is today and the enhancements we have been working on to reach today’s scale as well as supporting a million regions and beyond.
MariaDB 10.0 introduces domain-based parallel replication which allows transactions in different domains to execute concurrently on replicas. This can result in out-of-order transaction commit. MariaDB 10.1 adds optimistic parallel replication which maintains commit order. The document discusses various parallel replication techniques in MySQL and MariaDB including schema-based replication in MySQL 5.6 and logical clock replication in MySQL 5.7. It provides performance benchmarks of these techniques from Booking.com's database environments.
This talk discusses how we structure our analytics information at Adjust. The analytics environment consists of 20+ 20TB databases and many smaller systems for a total of more than 400 TB of data. See how we make it work, from structuring and modelling the data through moving data around between systems.
Webinar - Key Reasons to Upgrade to MySQL 8.0 or MariaDB 10.11Federico Razzoli
- MySQL 5.7 is no longer supported and will not receive any bugfixes or security updates after October 2023. Users need to upgrade to either MySQL 8.0 or MariaDB 10.11. - MySQL is developed by Oracle while MariaDB has its own independent foundation. MariaDB aims to be compatible with MySQL but also has unique features like storage engines. - Both MySQL 8.0 and MariaDB 10.11 are good options to upgrade to. Users should consider each product's unique features and governance model as well as test which one works better for their applications and use cases.
Secrets of Performance Tuning Java on KubernetesBruno Borges
Java on Kubernetes may seem complicated, but after a bit of YAML and Dockerfiles, you will wonder what all that fuss was. But then the performance of your app in 1 CPU/1 GB of RAM makes you wonder. Learn how JVM ergonomics, CPU throttling, and GCs can help increase performance while reducing costs.
How We Reduced Performance Tuning Time by Orders of Magnitude with Database O...ScyllaDB
This document discusses how a new performance dashboard for TiDB databases helps reduce performance tuning time significantly. It introduces TiDB and its architecture, then explains why performance tuning was previously difficult due to the large number of metrics. The dashboard uses "tuning by database time" and "tuning by color" to identify issues. Case studies show how the dashboard helped optimize small table caching, data migration, and social media platform performance. The dashboard articulates issues numerically and reduces human resource needs for tuning by orders of magnitude.
LinkedIn Data Infrastructure (QCon London 2012)Sid Anand
LinkedIn uses DataBus to replicate data changes from Oracle in real-time. DataBus consists of relay and bootstrap services that capture changes from Oracle and distribute them to various services like search indexes, graphs, and read replicas to keep them updated in real-time. This allows users to immediately see profile updates or new connections in search results and feeds.
Resilient Distributed DataSets - Apache SPARKTaposh Roy
RDDs (Resilient Distributed Datasets) provide a fault-tolerant abstraction for data reuse across jobs in distributed applications. They allow data to be persisted in memory and manipulated using transformations like map and filter. This enables efficient processing of iterative algorithms. RDDs achieve fault tolerance by logging the transformations used to build a dataset rather than the actual data, enabling recovery of lost partitions through recomputation.
This document discusses indexing strategies in MySQL to improve performance and concurrency. It covers how indexes can help avoid lock contention on tables by enabling concurrent queries to access and modify different rows. However, indexes can also cause deadlocks in some situations. The document outlines several cases exploring how indexes impact locking, covering indexes, sorting and query plans.
Percona Live 2012PPT: MySQL Query optimizationmysqlops
The document discusses techniques for optimizing MySQL queries. It begins by explaining how to use EXPLAIN to view a query's execution plan and identify opportunities for improvement. Examples demonstrate how adding appropriate indexes can speed up queries by reducing the number of rows examined. The use of composite indexes, covering indexes, and index column order are also addressed. More advanced profiling techniques are presented to further analyze query performance beyond what EXPLAIN shows.
This document summarizes optimizations for MySQL performance on Linux hardware. It covers SSD and memory performance impacts, file I/O, networking, and useful tools. The history of MySQL performance improvements is discussed from hardware upgrades like SSDs and more CPU cores to software optimizations like improved algorithms and concurrency. Optimizing per-server performance to reduce total servers needed is emphasized.
This document summarizes how LINE messaging uses Redis. It discusses: - How LINE has scaled Redis from 3 nodes in 2011 to over 14,000 nodes today to support over 25 billion messages per day. - The key ways LINE uses Redis, including for storing sequences, caches, secondary indexes, and local queues. - Challenges LINE faced in scaling their in-house Redis cluster to over 1,000 nodes and workarounds they developed. - How LINE monitors Redis for slow commands, bursting operations, and connections to address performance issues. - Future work LINE is doing with Redis 4 and improving latency and scalability.
The talk by Maksud Ibrahimov, Chief Data Scientist at InfoReady Analytics. He is going to share with us how to maximise the performance of Spark. As a user of Apache Spark from very early releases, he generally sees that the framework is easy to start with but as the program grows its performance starts to suffer. In this talk Maksud will answer the following questions: - How to reach higher level of parallelism of your jobs without scaling up your cluster? - Understanding shuffles, and how to avoid disk spills - How to identify task stragglers and data skews? - How to identify Spark bottlenecks?
Producer Performance Tuning for Apache KafkaJiangjie Qin
Kafka is well known for high throughput ingestion. However, to get the best latency characteristics without compromising on throughput and durability, we need to tune Kafka. In this talk, we share our experiences to achieve the optimal combination of latency, throughput and durability for different scenarios.
New optimizer features in MariaDB releases before 10.12Sergey Petrunya
The document discusses new optimizer features in recent and upcoming MariaDB releases. MariaDB 10.8 introduced JSON histograms and support for reverse-ordered indexes. JSON produced by the optimizer is now valid and processible. MariaDB 10.9 added SHOW EXPLAIN FORMAT=JSON and SHOW ANALYZE can return partial results. MariaDB 10.10 enabled table elimination for derived tables and improved optimization of many-table joins. Future releases will optimize queries on stored procedures and show optimizer timing in EXPLAIN FORMAT=JSON.
PgQ Generic high-performance queue for PostgreSQLelliando dias
PgQ is a generic high-performance queue for PostgreSQL. It allows for processing of data created in transactions at a later time in a high-throughput, low-latency, and robust manner. This is achieved by exporting PostgreSQL's MVCC visibility information which allows querying events that occurred between snapshots in a efficient manner without locking. PgQ provides APIs for easily inserting and consuming events in batches between snapshots.
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
This presentation covers the following topics: What is logging? The purpose of logging: Debugging The purpose of logging: Security The purpose of logging: Stats & analytics Traditional logging Traditional logging: Advantages Traditional logging: Disadvantages The solution: Large-scale logging Large-scale logging: Core principles Large-scale logging: Solution types Large-scale logging: Cloud vs on-prem Large-scale logging: Operational complexity Large-scale logging: Security Large-scale logging: Costs Large-scale logging: On-prem comparison - Elasticsearch - Grafana Loki - VictoriaLogs On-prem comparison: Setup and operation On-prem comparison: Costs On-prem comparison: Full-text search support On-prem comparison: How to efficiently query 100TB of logs? On-prem comparison: Integration with CLI tools VictoriaLogs for large-scale logging VictoriaLogs demo instance - Ingestion rate: 3600 messages / minute - The number of log messages: 1.1 billion - Uncompressed log messages’ size: 1.5TB - Compressed log messages’ size: 23GB - Compression ratio: 47x - Memory usage: 150MB VictoriaLogs CLI integration demo - Which errors have occurred in all the apps during the last hour? - How many errors have occurred during the last hour? - Which apps generated the most of errors during the last hour? - The number of per-minute errors for the last 10 minutes - Status codes for the last hour - Non-200 status codes for the last week - Top client IPs for the last 4 weeks with 404 and 500 response status codes - Per-month stats for the given IP across all the logs Large-scale logging solution MUST provide excellent CLI integration VictoriaLogs: (temporary) drawbacks VictoriaLogs: Recap - Easy to setup and operate - The lowest RAM usage and disk space usage (up to 30x less than Elasticsearch and Grafana Loki) - Fast full-text search - Excellent integration with traditional command-line tools for log analysis - Accepts logs from popular log shippers (Filebeat, Fluentbit, Logstash, Vector, Promtail, Grafana Agent) - Open source and free to use!
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion RecordsScyllaDB
In this talk, we will discuss Happn's war story about migrating a Cassandra 2.1 cluster containing more than 68 Billion records in a counter table to ScyllaDB Open Source. To watch all of the recordings hosted during Scylla Summit 2022 visit our website here: https://www.scylladb.com/summit.
Deep Dive : Spark Data Frames, SQL and Catalyst OptimizerSachin Aggarwal
RDD recap Spark SQL library Architecture of Spark SQL Comparison with Pig and Hive Pipeline DataFrames Definition of a DataFrames API DataFrames Operations DataFrames features Data cleansing Diagram for logical plan container Plan Optimization & Execution Catalyst Analyzer Catalyst Optimizer Generating Physical Plan Code Generation Extensions
An Approach to Data Quality for Netflix Personalization SystemsDatabricks
Personalization is one of the key pillars of Netflix as it enables each member to experience the vast collection of content tailored to their interests.
Fast federated SQL with Apache CalciteChris Baynes
This document discusses Apache Calcite, an open source framework for federated SQL queries. It provides an introduction to Calcite and its components. It then evaluates Calcite's performance on single data sources through benchmarks. Lastly, it proposes a hybrid approach to enable efficient federated queries using Calcite and Spark.
The document provides an overview of the InnoDB storage engine used in MySQL. It discusses InnoDB's architecture including the buffer pool, log files, and indexing structure using B-trees. The buffer pool acts as an in-memory cache for table data and indexes. Log files are used to support ACID transactions and enable crash recovery. InnoDB uses B-trees to store both data and indexes, with rows of variable length stored within pages.
This document provides guidance on commissioning programs available to enlisted Navy personnel, including the U.S. Naval Academy, Officer Candidate School, Medical Enlisted Commissioning Program, Medical Service Corps In-service Procurement Program, Limited Duty Officer and Chief Warrant Officer programs, and Seaman to Admiral-21 Program. It outlines eligibility requirements and application procedures for each program. The document cancels OPNAVINST 1420.1A and directs commanding officers to follow the application procedures in the enclosure, which provides a manual on applying for enlisted commissioning programs.
Secrets of Performance Tuning Java on KubernetesBruno Borges
Java on Kubernetes may seem complicated, but after a bit of YAML and Dockerfiles, you will wonder what all that fuss was. But then the performance of your app in 1 CPU/1 GB of RAM makes you wonder. Learn how JVM ergonomics, CPU throttling, and GCs can help increase performance while reducing costs.
How We Reduced Performance Tuning Time by Orders of Magnitude with Database O...ScyllaDB
This document discusses how a new performance dashboard for TiDB databases helps reduce performance tuning time significantly. It introduces TiDB and its architecture, then explains why performance tuning was previously difficult due to the large number of metrics. The dashboard uses "tuning by database time" and "tuning by color" to identify issues. Case studies show how the dashboard helped optimize small table caching, data migration, and social media platform performance. The dashboard articulates issues numerically and reduces human resource needs for tuning by orders of magnitude.
LinkedIn Data Infrastructure (QCon London 2012)Sid Anand
LinkedIn uses DataBus to replicate data changes from Oracle in real-time. DataBus consists of relay and bootstrap services that capture changes from Oracle and distribute them to various services like search indexes, graphs, and read replicas to keep them updated in real-time. This allows users to immediately see profile updates or new connections in search results and feeds.
Resilient Distributed DataSets - Apache SPARKTaposh Roy
RDDs (Resilient Distributed Datasets) provide a fault-tolerant abstraction for data reuse across jobs in distributed applications. They allow data to be persisted in memory and manipulated using transformations like map and filter. This enables efficient processing of iterative algorithms. RDDs achieve fault tolerance by logging the transformations used to build a dataset rather than the actual data, enabling recovery of lost partitions through recomputation.
This document discusses indexing strategies in MySQL to improve performance and concurrency. It covers how indexes can help avoid lock contention on tables by enabling concurrent queries to access and modify different rows. However, indexes can also cause deadlocks in some situations. The document outlines several cases exploring how indexes impact locking, covering indexes, sorting and query plans.
Percona Live 2012PPT: MySQL Query optimizationmysqlops
The document discusses techniques for optimizing MySQL queries. It begins by explaining how to use EXPLAIN to view a query's execution plan and identify opportunities for improvement. Examples demonstrate how adding appropriate indexes can speed up queries by reducing the number of rows examined. The use of composite indexes, covering indexes, and index column order are also addressed. More advanced profiling techniques are presented to further analyze query performance beyond what EXPLAIN shows.
This document summarizes optimizations for MySQL performance on Linux hardware. It covers SSD and memory performance impacts, file I/O, networking, and useful tools. The history of MySQL performance improvements is discussed from hardware upgrades like SSDs and more CPU cores to software optimizations like improved algorithms and concurrency. Optimizing per-server performance to reduce total servers needed is emphasized.
This document summarizes how LINE messaging uses Redis. It discusses: - How LINE has scaled Redis from 3 nodes in 2011 to over 14,000 nodes today to support over 25 billion messages per day. - The key ways LINE uses Redis, including for storing sequences, caches, secondary indexes, and local queues. - Challenges LINE faced in scaling their in-house Redis cluster to over 1,000 nodes and workarounds they developed. - How LINE monitors Redis for slow commands, bursting operations, and connections to address performance issues. - Future work LINE is doing with Redis 4 and improving latency and scalability.
The talk by Maksud Ibrahimov, Chief Data Scientist at InfoReady Analytics. He is going to share with us how to maximise the performance of Spark. As a user of Apache Spark from very early releases, he generally sees that the framework is easy to start with but as the program grows its performance starts to suffer. In this talk Maksud will answer the following questions: - How to reach higher level of parallelism of your jobs without scaling up your cluster? - Understanding shuffles, and how to avoid disk spills - How to identify task stragglers and data skews? - How to identify Spark bottlenecks?
Producer Performance Tuning for Apache KafkaJiangjie Qin
Kafka is well known for high throughput ingestion. However, to get the best latency characteristics without compromising on throughput and durability, we need to tune Kafka. In this talk, we share our experiences to achieve the optimal combination of latency, throughput and durability for different scenarios.
New optimizer features in MariaDB releases before 10.12Sergey Petrunya
The document discusses new optimizer features in recent and upcoming MariaDB releases. MariaDB 10.8 introduced JSON histograms and support for reverse-ordered indexes. JSON produced by the optimizer is now valid and processible. MariaDB 10.9 added SHOW EXPLAIN FORMAT=JSON and SHOW ANALYZE can return partial results. MariaDB 10.10 enabled table elimination for derived tables and improved optimization of many-table joins. Future releases will optimize queries on stored procedures and show optimizer timing in EXPLAIN FORMAT=JSON.
PgQ Generic high-performance queue for PostgreSQLelliando dias
PgQ is a generic high-performance queue for PostgreSQL. It allows for processing of data created in transactions at a later time in a high-throughput, low-latency, and robust manner. This is achieved by exporting PostgreSQL's MVCC visibility information which allows querying events that occurred between snapshots in a efficient manner without locking. PgQ provides APIs for easily inserting and consuming events in batches between snapshots.
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
This presentation covers the following topics: What is logging? The purpose of logging: Debugging The purpose of logging: Security The purpose of logging: Stats & analytics Traditional logging Traditional logging: Advantages Traditional logging: Disadvantages The solution: Large-scale logging Large-scale logging: Core principles Large-scale logging: Solution types Large-scale logging: Cloud vs on-prem Large-scale logging: Operational complexity Large-scale logging: Security Large-scale logging: Costs Large-scale logging: On-prem comparison - Elasticsearch - Grafana Loki - VictoriaLogs On-prem comparison: Setup and operation On-prem comparison: Costs On-prem comparison: Full-text search support On-prem comparison: How to efficiently query 100TB of logs? On-prem comparison: Integration with CLI tools VictoriaLogs for large-scale logging VictoriaLogs demo instance - Ingestion rate: 3600 messages / minute - The number of log messages: 1.1 billion - Uncompressed log messages’ size: 1.5TB - Compressed log messages’ size: 23GB - Compression ratio: 47x - Memory usage: 150MB VictoriaLogs CLI integration demo - Which errors have occurred in all the apps during the last hour? - How many errors have occurred during the last hour? - Which apps generated the most of errors during the last hour? - The number of per-minute errors for the last 10 minutes - Status codes for the last hour - Non-200 status codes for the last week - Top client IPs for the last 4 weeks with 404 and 500 response status codes - Per-month stats for the given IP across all the logs Large-scale logging solution MUST provide excellent CLI integration VictoriaLogs: (temporary) drawbacks VictoriaLogs: Recap - Easy to setup and operate - The lowest RAM usage and disk space usage (up to 30x less than Elasticsearch and Grafana Loki) - Fast full-text search - Excellent integration with traditional command-line tools for log analysis - Accepts logs from popular log shippers (Filebeat, Fluentbit, Logstash, Vector, Promtail, Grafana Agent) - Open source and free to use!
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion RecordsScyllaDB
In this talk, we will discuss Happn's war story about migrating a Cassandra 2.1 cluster containing more than 68 Billion records in a counter table to ScyllaDB Open Source. To watch all of the recordings hosted during Scylla Summit 2022 visit our website here: https://www.scylladb.com/summit.
Deep Dive : Spark Data Frames, SQL and Catalyst OptimizerSachin Aggarwal
RDD recap Spark SQL library Architecture of Spark SQL Comparison with Pig and Hive Pipeline DataFrames Definition of a DataFrames API DataFrames Operations DataFrames features Data cleansing Diagram for logical plan container Plan Optimization & Execution Catalyst Analyzer Catalyst Optimizer Generating Physical Plan Code Generation Extensions
An Approach to Data Quality for Netflix Personalization SystemsDatabricks
Personalization is one of the key pillars of Netflix as it enables each member to experience the vast collection of content tailored to their interests.
Fast federated SQL with Apache CalciteChris Baynes
This document discusses Apache Calcite, an open source framework for federated SQL queries. It provides an introduction to Calcite and its components. It then evaluates Calcite's performance on single data sources through benchmarks. Lastly, it proposes a hybrid approach to enable efficient federated queries using Calcite and Spark.
The document provides an overview of the InnoDB storage engine used in MySQL. It discusses InnoDB's architecture including the buffer pool, log files, and indexing structure using B-trees. The buffer pool acts as an in-memory cache for table data and indexes. Log files are used to support ACID transactions and enable crash recovery. InnoDB uses B-trees to store both data and indexes, with rows of variable length stored within pages.
This document provides guidance on commissioning programs available to enlisted Navy personnel, including the U.S. Naval Academy, Officer Candidate School, Medical Enlisted Commissioning Program, Medical Service Corps In-service Procurement Program, Limited Duty Officer and Chief Warrant Officer programs, and Seaman to Admiral-21 Program. It outlines eligibility requirements and application procedures for each program. The document cancels OPNAVINST 1420.1A and directs commanding officers to follow the application procedures in the enclosure, which provides a manual on applying for enlisted commissioning programs.
Este documento resume conceptos y métodos de evaluación de la lesión renal aguda (LRA), revisa el enfoque diagnóstico actual de la LRA e integra las bases teóricas sobre su desarrollo. El objetivo es revisar la LRA, aumentar el interés por la nefroprotección y estandarizar su definición, clasificación, prevención y tratamiento. Se revisan las escalas RIFLE, AKIN y criterios diagnósticos para evaluar la progresión de la LRA.
A Limited Duty Officer (LDO) is an officer who was selected for commissioning based on his/her skill and expertise, and is not required to have a bachelor’s degree. The term "Limited Duty" refers not to an LDO's authority, but rather the LDO's career progression and restrictions.
The document summarizes the fuel oil and drainage systems at APML. It describes the two types of fuel oil used - light diesel oil (LDO) and heavy fuel oil (HFO) - and provides details on their properties, storage, transfer, and boiler systems. It also outlines the drainage system for collecting and separating oil and water from the fuel systems.
Inflation is a rise in the general level of prices over time which decreases the purchasing power of a currency. It is measured using indices like the Wholesale Price Index (WPI), Consumer Price Index (CPI), and GDP deflator. There are two main types of inflation - demand-pull inflation caused by increased aggregate demand, and cost-push inflation caused by increased production costs. Governments use monetary policy like changing interest rates, fiscal policy like altering taxation and expenditures, and price controls to combat inflation.
This document provides an overview of aggregate supply (AS) in macroeconomics. It defines aggregate supply as the quantity of goods and services producers are willing and able to supply at a given price level. The short-run aggregate supply curve shows the relationship between real GDP and the price level in the short-term. Factors like input costs, taxes, and supply shocks can cause the short-run AS curve to shift. In the long-run, aggregate supply is determined by factors of production and technology.
A2 Economics Exam Technique - Weesteps to Evaluationtutor2u
While low inflation used to be a top priority, it may no longer be appropriate given today's economic context. High unemployment and the risk of deflation are more immediate concerns. However, maintaining some inflation target is still important for long-term stability and investment. Overall, the appropriate policy priorities depend on weighing these different factors against the wider economic situation.
The document discusses different types and measurements of unemployment. It describes seasonal, frictional, structural, and cyclical unemployment. It also discusses how unemployment is measured using the claimant count and labour force survey. Unemployment trends in the UK since 1990 are presented, showing the impacts of recessions. Policies to reduce unemployment through demand-side and supply-side approaches are outlined.
The document discusses memory management in operating systems. It covers key concepts like logical versus physical addresses, binding logical addresses to physical addresses, and different approaches to allocating memory like contiguous allocation. It also discusses dynamic storage allocation using a buddy system to merge adjacent free spaces, as well as compaction techniques to reduce external fragmentation by moving free memory blocks together. Memory management aims to efficiently share physical memory between processes using mechanisms like partitioning memory and enforcing protection boundaries.
The document discusses various types of nonprofit organizations and their public relations goals and strategies. It describes membership organizations, advocacy groups, social organizations, trade associations, chambers of commerce, professional associations, labor unions, social issue organizations, environmental groups, and social service agencies. It also discusses the public relations goals of raising awareness, educating the public, recruiting volunteers, obtaining funds, and strengthening an organization's public image. Specific nonprofit organizations discussed include Grammy U and the St. Bernard Project.
Short-run economic fluctuations are caused by shifts in aggregate demand and aggregate supply. A decrease in aggregate demand causes output to fall in the short run as the economy enters a recession, with declining GDP and rising unemployment. In the long run, output returns to its natural rate. An adverse shift in aggregate supply also causes output to fall and can lead to stagflation, with both recession and inflation. Policymakers aim to stabilize output by influencing aggregate demand.
This week our students have had the opportunity to be part of real-time current events. With the media circus buzzing around Kony2012, Invisible Children, and the LRA – I created a (fairly) student-friendly powerpoint that objectively explains the background of Kony and the LRA. I am not getting into the hype surrounding supporters and opponents of Invisible Children, but have included them as well as other organizations at the end of the presentation to give students options regarding how to get involved. No matter what people feel about Invisible Children, it’s obvious that they have created a successful awareness raising campaign. My students have had a lot of questions about the whole situation, so I created this powerpoint that I am now sharing with you.
This document provides definitions and diagrams related to macroeconomics concepts including: - Definitions of macroeconomics, national income, GDP, GNP, real GDP - Circular flow diagrams showing flows between households, firms, government - Components of aggregate demand and supply - Causes of shifts in aggregate demand and short-run aggregate supply - Business cycles and use of diagrams to illustrate macroeconomic goals - Unemployment, inflation, and Phillips curve concepts - Monetary and fiscal policy approaches and their strengths/weaknesses
The document discusses various macroeconomic concepts related to fiscal and monetary policy such as: - Supply side policies can shift the LRAS curve to increase potential output without raising inflation. - Fiscal policy tools like government spending, taxation, and transfers can be used for demand management. - Monetary policy tools like interest rates can influence money supply and demand to impact output and inflation. - Crowding out refers to how increased government spending and borrowing can reduce private investment by raising interest rates.
This document describes key macroeconomic concepts related to aggregate demand and aggregate supply, including: 1) The components of aggregate demand (C, I, G, X-M) and factors that can change each component. 2) The short-run and long-run aggregate supply curves and how costs of production and productivity can cause shifts. 3) Using AD/AS models to illustrate inflationary and deflationary gaps and analyze the effects of fiscal and monetary policy changes.
Furnace safegaurd supervisory system logic-1Ashvani Shukla
This document outlines the logic and conditions for a pulverized coal fired boiler. It describes 17 conditions that can trigger a manual fire trip (MFT), including issues with fans, pumps, pressures, and flame detection. It also explains the requirements and process for furnace purging after an MFT occurs. This includes conditions that must be met and interlocks in place. Additionally, it provides the process and permissives for testing for oil leaks in the heavy and light fuel oil supply pipes.
Thank you for all video clips. https://www.youtube.com/watch?v=HWZXinRwCaE (icbm) https://www.youtube.com/watch?v=mE-q1IaPIUk (how missiles launch) https://www.youtube.com/watch?v=SOXmVi3A_PI (satan R36) https://www.youtube.com/watch?v=LvHlW1h_0XQ (LRASM)
SSDs use solid state memory like NAND flash instead of spinning disks to store data. SSDs access data much faster than hard disk drives and have no moving parts, providing benefits like higher reliability, lower power consumption, and silent operation. An SSD contains a controller, flash memory, and an interface to connect to a computer or device. The controller manages the flash memory by mapping data to pages and blocks. SSDs are being used increasingly in devices like laptops, servers, and cameras due to their faster speeds and reliability compared to HDDs.
This document compares the specifications and performance of various hard drives and solid state drives. It finds that while SSDs provide much faster seek times, higher RPMs, and greater IOPS than HDDs, they also have higher prices per gigabyte and more complex memory management due to the limitations of flash memory. The optimal SSD performance depends most on the controller technology used rather than the flash memory itself.
The document summarizes key topics and industry talks from the China Linux Summit Forum (CLSF) 2010 conference in Shanghai. It discusses presentations on writeback optimization, the BTRFS file system, SSD challenges, VFS scalability, kernel testing frameworks, and talks from companies like Intel, EMC, Taobao, and Baidu on their storage architectures and solutions. Attendees included representatives from Intel, EMC, Fujitsu, Taobao, Novell, Oracle, Baidu, and Canonical discussing topics around file systems, storage, and kernel optimizations.
Solid state drives use solid state memory like NAND flash instead of spinning disks. They have faster access times than hard disk drives. An SSD contains a controller, flash memory, and an interface. The controller manages read and write operations to the flash which is organized into pages and blocks. SSDs are found in devices like thumb drives, memory cards, and embedded systems. They provide benefits like faster startup, access, and application loading compared to HDDs. SSDs are used where fast storage access is important, like financial trading systems.
This document provides an overview of a presentation by Advanced Systems Group on top technology trends for virtualization. It discusses flash storage technologies, the importance of disaster recovery (DR), and architecting for the cloud. The presentation covers various flash storage options and their performance characteristics. It emphasizes the need for DR to address hardware failures, data corruption, and natural disasters. It also discusses best practices for virtualization including cluster sizing, resource allocation, and security considerations for virtual machines.
This document discusses disk I/O performance testing tools. It introduces SQLIO and IOMETER for measuring disk throughput, latency, and IOPS. Examples are provided for running SQLIO tests and interpreting the output, including metrics like throughput in MB/s, latency in ms, and I/O histograms. Other disk performance factors discussed include the number of outstanding I/Os, block size, and sequential vs random access patterns.
MADE BY: TUSHAR CHAUHAN linkedin: https://www.linkedin.com/in/tushar-chauhan-34910b209/ This pptx include the selection of types of memories: external. internal, RAM, ROM, EPROM, PPROM, etc, along with their working , advantages, disadvantages, future trends along with how to choose perfect memory for your design. slides contain comparison tables on basis of performance, area , cost and various other parameters along with proper working diagrams. easy to understand language.
This document discusses the use of solid state drives (SSDs) in servers to improve performance, reduce costs, and increase reliability compared to spinning hard disk drives (HDDs). It summarizes three main uses of SSDs: 1) replacing boot disks to speed up applications, 2) replacing disks in high input/output systems, and 3) using SSDs as a fast virtual memory paging device. It then provides details on IBM's 50GB high input/output SSD options for servers and blades, and 160GB/320GB PCIe SSD adapters that provide even higher performance than SATA/SAS attached SSDs.
002-Storage Basics and Application Environments V1.0.pptxDrewMe1
Storage Basics and Application Environments is a document that discusses storage concepts, hardware, protocols, and data protection basics. It begins by defining storage and describing different types including block storage, file storage, and object storage. It then covers basic concepts of storage hardware such as disks, disk arrays, controllers, enclosures, and I/O modules. Storage protocols like SCSI, NVMe, iSCSI, and Fibre Channel are also introduced. Additional concepts like RAID, LUNs, multipathing, and file systems are explained. The document provides a high-level overview of fundamental storage topics.
"The Open Source effect in the Storage world" by George Mitropoulos @ eLibera...eLiberatica
This is a presentation held at eLiberatica 2009. http://www.eliberatica.ro/2009/ One of the biggest events of its kind in Eastern Europe, eLiberatica brings community leaders from around the world to discuss about the hottest topics in FLOSS movement, demonstrating the advantages of adopting, using and developing Open Source and Free Software solutions. The eLiberatica organizational committee together with our speakers and guests, have graciously allowed media representatives and all attendees to photograph, videotape and otherwise record their sessions, on the condition that the photos, videos and recordings are licensed under the Creative Commons Share-Alike 3.0 License.
How to randomly access data in close-to-RAM speeds but a lower cost with SSD’...JAXLondon2014
This document discusses how SSDs are improving data processing performance compared to HDDs and memory. It outlines the performance differences between various storage levels like registers, caches, RAM, SSDs, and HDDs. It then discusses some of the challenges with SSDs related to their NAND chip architecture and controllers. It provides examples of how databases like Cassandra and MySQL can be optimized for SSD performance characteristics like sequential writes. The document argues that software needs to better utilize direct SSD access and trim commands to maximize performance.
SSDs, IMDGs and All the Rest - Jax LondonUri Cohen
This document discusses how SSDs are improving data processing performance compared to HDDs and memory. It provides numbers showing SSDs have faster access times than HDDs but slower than memory. It also explains some of the challenges of SSDs like limited write cycles and that updates require erasing entire blocks. It discusses how databases like Cassandra and technologies like flash caching are optimized for SSDs, but there is still room for improvement like reducing read path complexity and write amplification. The document advocates for software optimizations to directly access SSDs and reduce overhead to further improve performance.
The document discusses best practices for deploying MongoDB including sizing hardware with sufficient memory, CPU and I/O; using an appropriate operating system and filesystem; installing and upgrading MongoDB; ensuring durability with replication and backups; implementing security, monitoring performance with tools, and considerations for deploying on Amazon EC2.
SSD uses NAND flash memory instead of spinning disks, providing much faster read and write speeds. SLC NAND flash is commonly used in enterprise environments due to its excellent performance and endurance. However, SSDs have higher costs and more limited endurance than HDDs. Emerging technologies like MLC flash, new controller designs, and tiered storage systems aim to improve SSD performance, capacity, endurance and lower costs to make SSDs more viable for enterprise storage.
Optimizing Oracle databases with SSD - April 2014Guy Harrison
Presentation on using Solid State Disk (SSD) with Oracle databases, including the 11GR2 db flash cache and using flash in Exadata. Last given at Collaborate 2014 #clv14.
Solid State Drive Technology - MIT Lincoln LabsMatt Simmons
Solid State Drive technology uses NAND flash memory instead of spinning disks. NAND flash uses floating gate transistors to store data in individual cells. It reads and writes data in pages of 4KB but erases in larger blocks. SSD performance depends on factors like cell type (SLC, MLC, TLC), controller, and flash chips used. Over time and with writes, cells degrade and must be garbage collected. TRIM and discard commands help optimize SSD performance and longevity by informing the drive of deleted data.
Oracle Open World 2014: Lies, Damned Lies, and I/O Statistics [ CON3671]Kyle Hailey
The document discusses analyzing I/O performance and summarizing lessons learned. It describes common tools used to measure I/O like moats.sh, strace, and ioh.sh. It also summarizes the top 10 anomalies encountered like caching effects, shared drives, connection limits, I/O request consolidation and fragmentation over NFS, and tiered storage migration. Solutions provided focus on avoiding caching, isolating workloads, proper sizing of NFS parameters, and direct I/O.
Meta/Facebook's database serving social workloads is running on top of MyRocks (MySQL on RocksDB). This means our performance and reliability depends a lot on RocksDB. Not just MyRocks, but also we have other important systems running on top of RocksDB. We have learned many lessons from operating and debugging RocksDB at scale. In this session, we will offer an overview of RocksDB, key differences from InnoDB, and share a few interesting lessons learned from production.
Consistency between Engine and Binlog under Reduced DurabilityYoshinori Matsunobu
- When MySQL instances fail and recover, the binary logs and storage engines can become inconsistent due to different levels of durability settings. This can cause issues when trying to rejoin instances to replication. - The document discusses challenges in ensuring consistency between binary logs and storage engines like InnoDB under reduced durability settings. It also addresses issues that can occur when restarting masters or replicas due to potential inconsistencies. - Solutions discussed include using the max GTID from the storage engine to determine where to start replication, truncating binary logs on restart if they are ahead of the engines, and using idempotent recovery techniques to handle potential duplicate or missing rows. Ensuring consistency across multiple storage engines is also challenging.
MyRocks is an open source LSM based MySQL database, created by Facebook. This slides introduce MyRocks overview and how we deployed at Facebook, as of 2017.
The document discusses using MySQL for large scale social games. It describes DeNA's use of over 1000 MySQL servers and 150 master-slave pairs to support 25 million users and 2-3 billion page views per day for their social games. It outlines the challenges of dynamically scaling games that can unexpectedly increase or decrease in traffic. It proposes automating master migration and failover to reduce maintenance downtime. A new open source tool called MySQL MHA is introduced that allows switching a master in under 3 seconds by blocking writes, promoting a slave, and ensuring data consistency across slaves.
Automated, Non-Stop MySQL Operations and Failover discusses automating master failover in MySQL to minimize downtime. The goal is to have no single point of failure by automatically promoting a slave as the new master when the master goes down. This is challenging due to asynchronous replication and the possibility that not all slaves have received the same binary log events from the crashed master. Differential relay log events must be identified and applied to bring all slaves to an eventually consistent state.
Linux performance tuning & stabilization tips (mysqlconf2010)Yoshinori Matsunobu
This document provides tips for optimizing Linux performance and stability when running MySQL. It discusses managing memory and swap space, including keeping hot application data cached in RAM. Direct I/O is recommended over buffered I/O to fully utilize memory. The document warns against allocating too much memory or disabling swap completely, as this could trigger the out-of-memory killer to crash processes. Backup operations are noted as a potential cause of swapping, and adjusting swappiness is suggested.
A Product Information Management (PIM) system helps businesses deliver consistent, accurate, and up-to-date product data across all sales channels—websites, marketplaces, apps, and more—ensuring better customer experience and higher conversion rates.
Presentation covering artificial intelligence (AI) security, attack vectors, defense techniques, ethical and legal landscape, and future of AI security.
The History of Artificial Intelligence: From Ancient Ideas to Modern Algorithmsisoftreview8
The history of Artificial Intelligence: From Ancient Ideas to Modern Algorithms is a remarkable journey through time—one that blends human curiosity with technological breakthroughs. While the dream of intelligent machines dates back to ancient civilizations, it wasn’t until the 20th century that the idea began to take scientific shape. In 1950, British mathematician Alan Turing introduced a revolutionary concept: that machines could imitate human thought. His creation of the "Turing Test" provided a framework for measuring machine intelligence. This milestone was one of the first major chapters in the history of Artificial Intelligence: From Ancient Ideas to Modern Algorithms. By 1956, the term "Artificial Intelligence" had been officially coined during the Dartmouth Conference, igniting decades of innovation. From symbolic AI in the 1960s to expert systems in the 1980s, and the rise of machine learning and neural networks in the 1990s and 2000s, each era brought us closer to what we now recognize as modern AI. Technologies like deep learning, real-time automation, and natural language processing have turned AI into a powerful tool used in everyday life. The ongoing evolution in the history of Artificial Intelligence: From Ancient Ideas to Modern Algorithms reveals how ancient visions are becoming today’s realities—and tomorrow’s possibilities.
Jeremy Millul - A Junior Software DeveloperJeremy Millul
Jeremy Millul is a junior software developer specializing in scalable applications. With expertise in databases like MySQL and MongoDB, Jeremy ensures efficient performance and seamless user experiences. A graduate of NYU, and living in Rochester, NY, with a degree in Computer Science, he also excels in frameworks such as React and Node.js. Jeremy’s commitment to delivering robust, high-quality solutions is matched by his dedication to staying ahead in the ever-evolving tech landscape.
You know you need to invest in a CRM platform, you just need to invest in the right one for your business. It sounds easy enough but, with the onslaught of information out there, the decision-making process can be quite convoluted. In a recent webinar we compared two options – HubSpot’s Sales Hub and Salesforce’s Sales Cloud – and explored ways to help you determine which CRM is better for your business.
This vibrant Medium blog post explores **Doctronic**, a New York-based healthcare AI startup that raised **$5 million in seed funding** to revolutionize medical advice. Founded by Matt Pavelle and Adam Oskowitz, Doctronic uses **specialized AI agents** and 24/7 telehealth to deliver fast, accurate, and anonymous health guidance, challenging “Dr. Google.” Backed by Union Square Ventures, the startup stands out with its consumer-first approach and multi-agent AI system. The post highlights Doctronic’s mission, technology, competitive edge, and future plans, making it a must-read for healthcare and tech enthusiasts.
With the onset of digital transformation journeys for enterprises across the world, APIs have become a natural strategy for enterprises to provide access to their products and services. APIs enable easy communication and integration of various systems that help accomplish enterprise business goals. What was once a sizeable undertaking of building custom code that involved understanding the internals of other systems, building, and configuring the adapters, has now become an API-based integration that is both easy and familiar for the developer community to integrate with. It is safe to say that if API is not part of the strategy for the product or a service, the real business value of the product may never be realized.
GDG Cincinnati presentation by Ben Hicks, April 16, 2024. As AI continues to permeate our industry, it's crucial to consider how it will reshape the way both seasoned and new developers learn, code, and create. This presentation offers a candid look at the evolving landscape – the opportunities, challenges, and the imperative for continuous adaptation. Let's explore the good, the bad, and the ugly of AI's influence on development, and discuss how we can best utilize what it has to offer while avoiding the snake oil.
Oil seed milling, also known as oilseed crushing, is the process of extracting oil from seeds like soybeans, sunflower seeds, and rapeseed. This process involves several steps, including seed preparation, oil extraction (often using mechanical pressing or solvent extraction), and oil refining.
An introductory presentation of a short paper with same name in the ICUFN2022: The 13th International Conference on Ubiquitous and Future Networks in Barcelona, Spain. The presentation and paper describes our (Karri Huhtanen, Antti Kolehmainen) initial proposal for distributed multi-factor AAA architecture capable of surviving connectivity disruptions. Together with Tampere University we intended to design, implement and deploy the proposed architecture in practice to ensure its validity, but did not have time to do it.
This paper supports the importance of teaching logic (and logic programming) in computer science degrees and discusses several proposals that can be included in current curricula without the need to adapt the academic guides. In addition, some practical examples are described and the tools used for their subsequent application are related.
📢 UiPath Community Meetup: LLM and UiPath – From AI Center to GenAI Activities & Agents Join us for an exciting UiPath Community Virtual Meetup where we explore how UiPath is evolving from AI Center towards GenAI, unlocking new possibilities with specialized GenAI activities and AI-powered Agents. Hosted by the Rome Chapter in collaboration with Zurich (and potentially other chapters), this session will provide insights into the latest advancements in AI-driven automation. 📅 17th April 2025 | 🕙 10:30 - 11:30 AM CET 🔥 What’s on the agenda? From AI Center to LLM-Powered-Automation – Understanding the transition from AI Center to GenAI, DocPath and CommPath. GenAI Activities in UiPath – Exploring new AI capabilities and how to leverage them effectively. AI Agents and Agentic Orchestration – A live demo showcasing how LLMs can power intelligent Agents and how they can be effectively orchestrated. 🎤 Speakers: 🔹 Roman Tobler, UiPath MVP, CEO at Routinuum 🔹 Flavio Martinelli, UiPath MVP 2023, Technical Account Manager at UiPath Whether you’re an automation developer, AI enthusiast, or business leader, this session will help you navigate the next phase of AI-driven automation in UiPath.
The Gold Jacket Journey - How I passed 12 AWS Certs without Burning Out (and ...VictorSzoltysek
Only a few hundred people on the planet have done this — and even fewer have documented the journey like this. In just one year, I passed all 12 AWS certifications and earned the ultra-rare AWS Gold Jacket — without burning out, without quitting my job, and without wasting hours on fluff. My secret? A completely AI-powered study workflow using ChatGPT, custom prompts, and a technique I call DeepResearch — a strategy that pulls high-signal insights from Reddit, blogs, and real-world exam feedback to shortcut the noise and fast-track what actually matters. This is the slide deck from my live talk — it breaks down everything: ✅ How I used ChatGPT to quiz, explain, and guide me ✅ How DeepResearch helped me prioritize the right content ✅ My top 80/20 study tips, service-specific rules of thumb, and real-world exam traps ✅ The surprising things that still trip up even experienced cloud teams If you’re considering AWS certifications — or want to learn how to study smarter using AI — this is your blueprint.
Autopilot for Everyone Series - Session 3: Exploring Real-World Use CasesUiPathCommunity
Welcome to 'Autopilot for Everyone Series' - Session 3: Exploring Real-World Use Cases! Join us for an interactive session where we explore real-world use cases of UiPath Autopilot, the AI-powered automation assistant. 📕 In this engaging event, we will: - demonstrate how UiPath Autopilot enhances productivity by combining generative AI, machine learning, and automation to streamline business processes - discover how UiPath Autopilot enables intelligent task automation with natural language inputs and AI-powered decision-making for smarter workflows Whether you're new to automation or a seasoned professional, don't miss out on this opportunity to transform your approach to business automation. Register now and step into the future of efficient work processes!
AI adoption is moving fast, but most organizations are struggling with AI readiness as they jump in before ensuring data, strategy, and governance are in place.
Introduction to LLM Post-Training - MIT 6.S191 2025Maxime Labonne
In this talk, we will cover the fundamentals of modern LLM post-training at various scales with concrete examples. High-quality data generation is at the core of this process, focusing on the accuracy, diversity, and complexity of the training samples. We will explore key training techniques, including supervised fine-tuning, preference alignment, and model merging. The lecture will delve into evaluation frameworks with their pros and cons for measuring model performance. We will conclude with an overview of emerging trends in post-training methodologies and their implications for the future of LLM development.
Introducing Agnetic AI: Redefining Intelligent Customer Engagement for the Future of Business In a world where data is abundant but actionable insights are scarce, Agnetic AI emerges as a transformative force in AI-powered customer engagement and predictive intelligence solutions. Our cutting-edge platform harnesses the power of machine learning, natural language processing, and real-time analytics to help businesses drive deeper connections, streamline operations, and unlock unprecedented growth. Whether you're a forward-thinking startup or an enterprise scaling globally, Agnetic AI is designed to automate customer journeys, personalize interactions at scale, and deliver insights that move the needle. Built for performance, agility, and results, this AI solution isn’t just another tool—it’s your competitive advantage in the age of intelligent automation.
Autopilot for Everyone Series Session 2: Elevate Your Automation SkillsUiPathCommunity
📕 This engaging session will include: Quick recap of Session 1: refresh your knowledge and get ready for what's next Hands-on experience: import prebuilt automations to fast-track your automation journey with practical insights Build your own tools: dive into creating tailored automation solutions that meet your specific needs Live Q&A with experts: engage directly with industry experts and get your burning questions answered 👉 Register to our next Autopilot for Everyone Series - Session 3: Exploring Real-World Use Cases: https://bit.ly/4cMgC8F Don't miss this unique opportunity to enhance your skills and connect with fellow automation enthusiasts. RSVP now to secure your spot and bring a friend along! Let's make automation accessible and exciting for everyone. This session streamed live on April 17, 2025, 18:00 GST. Check out our upcoming UiPath Community sessions at https://community.uipath.com/events/.
Autopilot for Everyone Series Session 2: Elevate Your Automation SkillsUiPathCommunity
SSD Deployment Strategies for MySQL
1. SSD Deployment Strategies for MySQL Yoshinori Matsunobu Lead of MySQL Professional Services APAC Sun Microsystems Yoshinori.Matsunobu@sun.com Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 1
2. What do you need to consider? (H/W layer) • SSD or HDD? • Interface – SATA/SAS or PCI-Express? • RAID – H/W RAID, S/W RAID or JBOD? • Network – Is 1GbE enough? • Memory – Is 2GB RAM + PCI-E SSD faster than 64GB RAM + 8HDDs? • CPU – Nehalem or older Xeon? Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 2
3. What do you need to consider? • Redundancy – RAID – DRBD (network mirroring) – Semi-Sync MySQL Replication – Async MySQL Replication • Filesystem – ext3, xfs, raw device ? • File location – Data file, Redo log file, etc • SSD specific issues – Write performance deterioration – Write endurance Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 3
4. Why SSD? IOPS! • IOPS: Number of (random) disk i/o operations per second • Almost all database operations require random access – Selecting records by index scan – Updating records – Deleting records – Modifying indexes • Regular SAS HDD : 200 iops per drive (disk seek & rotation is slow) • SSD : 2,000+ (writes) / 5,000+ (reads) per drive – highly depending on SSDs and device drivers • Let’s start from basic benchmarks Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 4
5. Tested HDD/SSD for this session • SSD – Intel X25-E (SATA, 30GB, SLC) – Fusion I/O (PCI-Express, 160GB, SLC) • HDD – Seagate 160GB SAS 15000RPM Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 5
6. Table of contents • Basic Performance on SSD/HDD – Random Reads – Random Writes – Sequential Reads – Sequential Writes – fsync() speed – Filesystem difference – IOPS and I/O unit size • MySQL Deployments Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 6
7. Random Read benchmark Direct Random Read IOPS (Single Drive, 16KB, xfs) 45000 40000 35000 30000 25000 HDD IOPS 20000 Intel SSD 15000 Fusion I/O 10000 5000 0 1 2 3 4 5 6 8 10 15 20 30 40 50 100 200 # of I/O threads • HDD: 196 reads/s at 1 i/o thread, 443 reads/s at 100 i/o threads • Intel : 3508 reads/s at 1 i/o thread, 14538 reads/s at 100 i/o threads • Fusion I/O : 10526 reads/s at 1 i/o thread, 41379 reads/s at 100 i/o threads • Single thread throughput on Intel is 16x better than on HDD, Fusion is 25x better • SSD’s concurrency (4x) is much better than HDD’s (2.2x) • Very strong reason to use SSD Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 7
8. High Concurrency • Single SSD drive has multiple NAND Flash Memory chips (i.e. 40 x 4GB Flash Memory = 160GB) • Highly depending on I/O controller and Applications – Single threaded application can not gain concurrency advantage Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 8
9. PCI-Express SSD CPU North Bridge South Bridge PCI-Express Controller SAS/SATA Controller 2GB/s (PCI-Express x 8) 300MB/s SSD I/O Controller SSD I/O Controller Flash Flash • Advantage – PCI-Express is much faster interface than SAS/SATA • (current) Disadvantages – Most motherboards have limited # of PCI-E slots – No hot swap mechanism Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 9
10. Write performance on SSD Random Write IOPS (16KB Blocks) 20000 18000 16000 14000 12000 1 i/o thread 10000 100 i/o threads 8000 6000 4000 2000 0 HDD(4 RAID10 xfs) Intel(xfs) Fusion (xfs) • Very strong reason to use SSD • But wait.. Can we get a high write throughput *anytime*? – Not always.. Let’s check how data is written to Flash Memory Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 10
11. Understanding how data is written to SSD (1) Block (empty) Block (empty) Block (empty) Block Page Page …. Flash memory chips • Single SSD drive consists of many flash memory chips (i.e. 2GB) • A flash memory chip internally consists of many blocks (i.e. 512KB) • A block internally consists of many pages (i.e. 4KB) • It is *not* possible to overwrite to a non-empty block – Reading from pages is possible – Writing to pages in an empty block is possible – Appending is possible – Overwriting to pages in a non-empty block is *not* possible Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 11
12. Understanding how data is written to SSD (2) Block (empty) Block (empty) New data Block (empty) Block × Page Page …. • Overwriting to a non-empty block is not possible • Writing new data to an empty block instead • Writing to a non-empty block is fast (-200 microseconds) • Even though applications write to same positions in same files (i.e. InnoDB Log File), written pages/blocks are distributed (Wear-Leveling) Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 12
13. Understanding how data is written to SSD (3) Block P Block P Block P P P P 1. Reading all pages Block P Block P Block P P P New P 2. Erasing the block Block Block P Block P P P P 3. Writing all data P P • In the long run, almost all blocks will be fully used New P – i.e. Allocating 158GB files on 160GB SSD • New empty block must be allocated on writes • Basic steps to write new data: – 1. Reading all pages from a block – 2. ERASE the block – 3. Writing all data w/ new data into the block • ERASE is very expensive operation (takes a few milliseconds) • At this stage, write performance becomes very slow because of massive ERASE operations Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 13
14. Data Space Reserved Space Reserved Space Block P Block P Block P Block (empty) P P P Block P Block P Block P Block (empty) P P P Block Block P Block P 2. Writing data P P P 1. Reading pages P New data Background jobs ERASE unused blocks P • To keep high enough write performance, SSDs have a feature of “reserved space” • Data size visible to applications is limited to the size of data space – i.e. 160GB SSD, 120GB data space, 40GB reserved space • Fusion I/O has a functionality to change reserved space size – # fio-format -s 96G /dev/fct0 Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 14
15. Write performance deterioration Write IOPS deterioration (16KB random write) 30000 Continuous write-intensive workloads 25000 20000 IOPS Fastest 15000 Slowest 10000 5000 Stopping writing for a while 0 Intel Fusion(150G) Fusion(120G) Fusion(96G) Fusion(80G) • At the beginning, write IOPS was close to “Fastest” line • When massive writes happened, write IOPS gradually deteriorated toward “Slowest” line (because massive ERASE happened) • Increasing reserved space improves steady-state write throughput • Write IOPS recovered to “Fastest” when stopping writes for a long time (Many blocks were ERASEd by background job) • Highly depending on Flash memory and I/O controller (TRIM support, ERASE scheduling, etc) Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 15
16. Sequential I/O Sequential Read/Write throughput (1MB consecutive reads/writes) 600 500 400 MB/s Seq read 300 Seq write 200 100 0 4 HDD(raid10, xfs) Intel(xfs) Fusion(xfs) • Typical scenario: Full table scan (read), logging/journaling (write) • SSD outperforms HDD for sequential reads, but less significant • HDD (4 RAID10) is fast enough for sequential i/o • Data transfer size by sequential writes tends to be huge, so you need to care about write deterioration on SSD • No strong reason to use SSD for sequential writes Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 16
17. fsync() speed fsync speed 20000 18000 16000 14000 fsync/sec 12000 1KB 10000 8KB 8000 16KB 6000 4000 2000 0 HDD(xfs) Intel (xfs) Fusion I/O(xfs) • 10,000+ fsync/sec is fine in most cases • Fusion I/O was CPU bound (%system), not I/O bound (%iowait). Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 17
18. HDD is fast for sequential writes / fsync • Best Practice: Writes can be boosted by using BBWC (Battery Backed up Write Cache), especially for REDO Logs (because it’s sequentially written) • No strong reason to use SSDs here seek & rotation time Write cache disk disk seek & rotation time Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 18
19. Filesystem matters Random write iops (16KB Blocks) 20000 18000 16000 14000 12000 1 thread iops 10000 8000 16 thread 6000 4000 2000 0 Fusion(ext3) Fusion (xfs) Fusion (raw) Filesystem • On xfs, multiple threads can write to the same file if opened with O_DIRECT, but can not on ext* • Good concurrency on xfs, close to raw device • ext3 is less optimized for Fusion I/O Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 19
20. Changing I/O unit size Read IOPS and I/O unit size (4 HDD RAID10) 2500 2000 1KB 1500 IOPS 4KB 1000 16KB 500 0 1 2 3 4 5 6 8 10 15 20 30 40 50 100 200 concurrency • On HDD, maximum 22% performance difference was found between 1KB and 16KB • No big difference when concurrency < 10 Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 20
21. Changing I/O unit size on SSD Read IOPS and I/O unit size (Fusion I/O) 200000 150000 1KB IOPS 100000 4KB 16KB 50000 0 1 2 3 4 5 6 8 10 15 20 30 40 50 100 200 concurrency • Huge difference • On SSDs, not only IOPS, but also I/O transfer size matters • It’s worth considering that Storage Engines support “configurable block size” functionality Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 21
22. Let’s start MySQL benchmarking • Base: Disk-bound application (DBT-2) running on: – Sun Fire X4270 – Nehalem 8 Core – 4 HDD – RAID1+0, Write Cache with Battery • What will happen if … – Replacing HDD with Intel SSD (SATA) – Replacing HDD with Fusion I/O (PCI-E) – Moving log files and ibdata to HDD – Not using Nehalem – Using two Fusion I/O drives with Software RAID1 – Deploying DRBD protocol B or C • Replacing 1GbE with 10GbE – Using MySQL 5.5.4 Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 22
23. DBT-2 condition • SuSE Enterprise Linux 11, xfs • MySQL 5.5.2M2 (InnoDB Plugin 1.0.6) • 200 Warehouses (20GB – 25GB hot data) • Buffer pool size – 1GB – 2GB – 5GB – 30GB (large enough to cache all data) • 1000 seconds warm up time • Running 3600 seconds (1 hour) • Fusion I/O: 96GB data space, 64GB reserved space Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 23
24. HDD vs Intel SSD HDD Intel Buffer pool 1G 1125.44 5709.06 (NOTPM: Transactions per minute) • Storing all data on HDD or Intel SSD • Massive disk i/o happens – Random reads for all accesses – Random writes for updating rows and indexes – Sequential writes for REDO log files, etc • SSD is very good at these kinds of workloads • 5.5 times performance improvement, without any application change! Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 24
25. HDD vs Intel SSD vs Fusion I/O HDD Intel Fusion I/O Buffer pool 1G 1125.44 5709.06 15122.75 • Fusion I/O is a PCI-E based SSD • PCI-E is much faster than SAS/SATA • 14x improvement compared to 4HDDs Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 25
26. Which should we spend money, RAM or SSD? HDD Intel Fusion I/O Buffer pool 1G 1125.44 5709.06 15122.75 Buffer pool 2G 1863.19 Buffer pool 5G 4385.18 Buffer pool 30G 36784.76 (Caching all hot data) • Increasing RAM (buffer pool size) reduces random disk reads – Because more data are cached in the buffer pool • If all data are cached, only disk writes (both random and sequential) happen • Disk writes happen asynchronously, so application queries can be much faster • Large enough RAM + HDD outperforms too small RAM + SSD Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 26
27. Which should we spend money, RAM or SSD? HDD Intel Fusion I/O Buffer pool 1G 1125.44 5709.06 15122.75 Buffer pool 2G 1863.19 7536.55 20096.33 Buffer pool 5G 4385.18 12892.56 30846.34 Buffer pool 30G 36784.76 - 57441.64 (Caching all hot data) • It is not always possible to cache all hot data • Fusion I/O + good amount of memory (5GB) was pretty good • Basic rule can be: – If you can cache all active data, large enough RAM + HDD – If you can’t, or if you need extremely high throughput, spending on both RAM and SSD Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 27
28. Let’s think about MySQL file location • SSD is extremely good at random reads • SSD is very good at random writes • HDD is good enough at sequential reads/writes • No strong reason to use SSD for sequential writes • Random I/O oriented: – Data Files (*.ibd) • Sequential reads if doing full table scan – Undo Log, Insert Buffer (ibdata) • UNDO tablespace (small in most cases, except for running long-running batch) • On-disk insert buffer space (small in most cases, except that InnoDB can not catch up with updating indexes) • Sequential Write oriented: – Doublewrite Buffer (ibdata) • Write volume is equal to *ibd files. Huge – Binary log (mysql-bin.XXXXXX) – Redo log (ib_logfile) – Backup files Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 28
29. Moving sequentially written files into HDD Fusion I/O Fusion I/O + HDD Up Buffer pool 1G 15122.75 19295.94 +28% (us=25%, wa=15%) (us=32%, wa=10%) Buffer pool 2G 20096.33 25627.49 +28% (us=30%, wa=12.5%) (us=36%, wa=8%) Buffer pool 5G 30846.34 39435.25 +28% (us=39%, wa=10%) (us=49%, wa=6%) Buffer pool 30G 57441.64 66053.68 +15% (us=70%, wa=3.5%) (us=77%, wa=1%) • Moving ibdata, ib_logfile, (+binary logs) into HDD • High impact on performance – Write volume to SSD becomes half because doublewrite area is allocated in HDD – %iowait was significantly reduced – You can delay write performance deterioration Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 29
30. Does CPU matter? Nehalem Older Xeon CPUs Memory CPUs QPI: 25.6GB/s FSB: 10.6GB/s North Bridge North Bridge (IOH) Memory (MCH) PCI-Express PCI-Express • Nehalem has two big advantages 1. Memory is directly attached to CPU : Faster for in-memory workloads 2. Interface speed between CPU and North Bridge is 2.5x higher, and interface traffics do not conflict with CPU<->Memory workloads : Faster for disk i/o workloads when using PCI-Express SSDs Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 30
31. Harpertown X5470 (older Xeon) vs Nehalem X5570 (HDD) HDD Harpertown X5470, Nehalem(X5570, Up 3.33GHz 2.93GHz) Buffer pool 1G 1135.37 (us=1%) 1125.44 (us=1%) -1% Buffer pool 2G 1922.23 (us=2%) 1863.19 (us=2%) -3% Buffer pool 5G 4176.51 (us=7%) 4385.18(us=7%) +5% Buffer pool 30G 30903.4 (us=40%) 36784.76 (us=40%) +19% us: userland CPU utilization • CPU difference matters on CPU bound workloads Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 31
32. Harpertown X5470 vs Nehalem X5570 (Fusion) Fusion I/O+HDD Harportown X5470, Nehalem(X5570, Up 3.33GHz 2.93GHz) Buffer pool 1G 13534.06 (user=35%) 19295.94 (user=32%) +43% Buffer pool 2G 19026.64 (user=40%) 25627.49 (user=37%) +35% Buffer pool 5G 30058.48 (user=50%) 39435.25 (user=50%) +31% Buffer pool 30G 52582.71 (user=76%) 66053.68 (user=76%) +26% • TPM difference was much higher than HDD • For disk i/o bound workloads (buffer pool 1G/2G), CPU utilizations on Nehalem were smaller, but TPM were much higher – Verified that Nehalem is much more efficient for PCI-E workloads • Benefit from high interface speed between CPU and PCI-Express • Fusion I/O fits with Nehalem much better than with traditional CPUs Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 32
33. We need to think about redundancy overhead • Single server + No RAID is meaningless in the real database world • Redundancy – RAID 1 / 5 / 10 – Network mirroring (DRBD) – Replication (Sync / Async) • Relative overhead for redundancy will be (much) higher than on traditional HDD environment Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 33
34. Fusion I/O + Software RAID1 • Fusion I/O itself has RAID5 feature – Writing parity bits into Flash Memory – Flash Chips are not Single Point of Failure – Controller / PCI-E Board is Single Point of Failure • Right now no H/W RAID controller is provided for PCI-E SSDs • Using Software RAID1 (or RAID10) – Two Fusion I/O drives in the same machine Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 34
35. Understanding how software RAID1 works H/W RAID1 App/DB S/W RAID1 App/DB Writing to files Writing to files on /dev/sdX Response Response on /dev/md0 Write cache with battery Software RAID daemon RAID controller “md0_raid1” process Background writes Writing to disks (in parallel) (in parallel) Disk1 Disk2 Disk1 Disk2 • Response time on Software RAID1 is max(time-to-write-to-disk1, time-to-write-to-disk2) • If either of the two takes time for ERASE, response time will be longer • On faster storages / faster writes (i.e. sequential write + fsync), relative overheads of the software raid process are higher Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 35
36. Random Write IOPS, S/W RAID1 vs No-RAID Random Write IOPS (Fusion I/O 160GB SLC, 16KB I/O unit, XFS) 50000 45000 40000 35000 No-RAID (120G) 30000 IOPS S/W RAID1 (120G) 25000 No-RAID (96G) 20000 15000 S/W RAID1 (96G) 10000 5000 0 1 61 121 181 241 301 361 421 481 Running time (minutes) • 120GB data space = 40GB additional reserved space • 96GB data space = 64GB additional reserved space • On S/W RAID1, IOPS deteriorated more quickly than on No-RAID • On S/W RAID1 with 96GB data space, the slowest line was smaller than No-RAID • 20-25% performance drop can be expected on disk write bound workloads Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 36
37. What about Reads? Read IOPS (16KB Blocks) 80000 70000 60000 50000 IOPS No-RAID 40000 S/W RAID1 30000 20000 10000 0 1 2 3 4 5 6 8 10 15 20 30 40 50 100 200 concurrency • Theoretically reads IOPS can be twice by RAID1 • Peak IOPS was 43636 on No-RAID, 75627 on RAID, 73% up • Good scalability Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 37
38. DBT-2, No-RAID vs S/W RAID on Fusion I/O Fusion I/O+HDD RAID 1 Fusion %iowait Down I/O+HDD Buffer pool 1G 19295.94 15468.81 10% -19.8% Buffer pool 2G 25627.49 21405.23 8% -16.5% Buffer pool 5G 39435.25 35086.21 6-7% -11.0% Buffer pool 30G 66053.68 66426.52 0-1% +0.56% Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 38
39. Intel SSDs with a traditional H/W raid controller Single raw Intel Four RAID5 Intel Down Buffer pool 1G 5709.06 2975.04 -48% Buffer pool 2G 7536.55 4763.60 -37% Buffer pool 5G 12892.56 11739.27 -9% • Raw SSD drives performed much better than using a traditional H/W raid controller – Even on RAID10 performance was worse than single raw drive – H/W Raid controller seemed serious bottleneck – Make sure SSD drives have write cache and capacitor itself (Intel X25- V/M/E doesn’t have capacitor) • Use JBOD + write cache + capacitor • Research appliances such as Schooner, Gear6, etc • Wait until H/W vendors release great H/R raid controllers that work well with SSDs Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 39
40. What about DRBD? • Single server is not Highly Available – Mother Board/RAID Controller/etc are Single Point of Failure • Heartbeat + DRBD + MySQL is one of the most common HA (Active/Passive) solutions • Network might be a bottleneck – 1GbE -> 10GbE, InfiniBand, Dolphin Interconnect, etc • Replication level – Protocol A (async) – Protocol B (sync to remote drbd receiver process) – Protocol C (sync to remote disk) • Network channel is single threaded – Storing all data under /data (single DRBD partition) => single thread – Storing log/ibdata under /hdd, *ibd under /ssd => two threads Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 40
41. DRBD Overheads on HDD HDD No DRBD DRBD Protocol DRBD Protocol B, B, 1GbE 10GbE Buffer pool 1G 1125.44 1080.8 1101.63 Buffer pool 2G 1863.19 1824.75 1811.95 Buffer pool 5G 4385.18 4285.22 4326.22 Buffer pool 30G 36784.76 32862.81 35689.67 • DRBD 8.3.7 • DRBD overhead (protocol B) was not big on disk i/o bound workloads • Network bandwidth difference was not big on disk i/o bound workloads Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 41
42. DRBD Overheads on Fusion I/O Fusion I/O+HDD No DRBD DRBD Protocol Down DRBD Protocol Down B, 1GbE B, 10GbE Buffer pool 1G 19295.94 5976.18 -69.0% 12107.88 -37.3% Buffer pool 2G 25627.49 8100.5 -68.4% 16776.19 -34.5% Buffer pool 5G 39435.25 16073.9 -59.2% 30288.63 -23.2% Buffer pool 30G 66053.68 37974 -42.5% 62024.68 -6.1% • DRBD overhead was not negligible • 10GbE performed much better than 1GbE • Still 6-10 times faster than HDD • Note: DRBD supports faster interface such as InfiniBand SDP and Dolphin Interconnect Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 42
43. Misc topic: Insert performance on InnoDB vs MyISAM (HDD) Time to insert 1 million records (HDD) 5000 4000 250 rows/s Seconds 3000 innodb 2000 myisam 1000 0 1 10 19 28 37 46 55 64 73 82 91 100 109 118 127 136 145 Existing records (millions) • MyISAM doesn’t do any special i/o optimization like “Insert Buffering” so a lot of random reads/writes happen, and highly depending on OS • Disk seek & rotation overhead is really serious on HDD Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 43
44. Note: Insert Buffering (InnoDB feature) • If non-unique, secondary index blocks are not in memory, InnoDB inserts entries to a special buffer(“insert buffer”) to avoid random disk i/o operations – Insert buffer is allocated on both memory and innodb SYSTEM tablespace • Periodically, the insert buffer is merged into the secondary index trees in the database (“merge”) Insert buffer • Pros: Reducing I/O overhead – Reducing the number of disk i/o operations by merging i/o requests to the same block Optimized i/o – Some random i/o operations can be sequential • Cons: Additional operations are added Merging might take a very long time – when many secondary indexes must be updated and many rows have been inserted. – it may continue to happen after a server shutdown and restart Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 44
45. Insert performance: InnoDB vs MyISAM (SSD) Time to insert 1million records (SSD) 600 500 2,000 rows/s 400 Seconds InnoDB 300 MyISAM 200 5,000 rows/s 100 0 1 7 13 19 25 31 37 43 49 55 61 67 73 79 85 91 97 103 Existing records (millions) Index size exceeded buffer pool size Filesystem cache was fully used, disk reads began • MyISAM got much faster by just replacing HDD with SSD ! Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 45
46. Try MySQL 5.5.4 ! Fusion I/O + HDD MySQL5.5.2 MySQL5.5.4 Up Buffer pool 1G 19295.94 24019.32 +24% Buffer pool 2G 25627.49 32325.76 +26% Buffer pool 5G 39435.25 47296.12 +20 Buffer pool 30G 66053.68 67253.45 +1.8% • Got 20-26% improvements for disk i/o bound workloads on Fusion I/O – Both CPU %user and %iowait were improved • %user: 36% (5.5.2) to 44% (5.5.4) when buf pool = 2g • %iowait: 8% (5.5.2) to 5.5% (5.5.4) when buf pool = 2g, but iops was 20% higher – Could handle a lot more concurrent i/o requests in 5.5.4 ! – No big difference was found on 4 HDDs • Works very well on faster storages such as Fusion I/O, lots of disks Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 46
47. Conclusion for choosing H/W • Disks – PCI-E SSDs (i.e. Fusion I/O) perform very well – SAS/SATA SSDs (i.e. Intel X25) – Carefully research RAID controller. Many controllers do not scale with SSD drives – Keep enough reserved space if you need to handle massive write traffics – HDD is good at sequential writes • Use fast network adapter – 1GbE will be saturated on DRBD – 10GbE or Infiniband • Use Nahalem CPU – Especially when using PCI-Express SSDs Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 47
48. Conclusion for database deployments • Put sequentially written files on HDD – ibdata, ib_logfile, binary log files – HDD is fast enough for sequential writes – Write performance deterioration can be mitigated – Life expectancy of SSD will be longer • Put randomly accessed files on SSD – *ibd files, index files(MYI), data files(MYD) – SSD is 10x -100x faster for random reads than HDD • Archive less active tables/records to HDD – SSD is still much expensive than HDD • Use InnoDB Plugin – Higher scalability & concurrency matters on faster storage Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 48
49. What will happen in the real database world? • These are just my thoughts.. • Less demand for NoSQL – Isn’t it enough for many applications just to replace HDD with Fusion I/O? – Importance on functionality will be relatively stronger • Stronger demand for Virtualization – Single server will have enough capacity to run two or more mysqld instances • I/O volume matters – Not just IOPS – Block size, disabling doublewrite, etc • Concurrency matters – Single SSD scales as well as 8-16 HDDs – Concurrent ALTER TABLE, parallel query Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 49
50. Special Thanks To • Koji Watanabe – Fusion I/O Japan • Hideki Endo – Sumisho Computer Systems, Japan – Rent me two Fusion I/O 160GB SLC drives • Daisuke Homma, Masashi Hasegawa - Sun Japan – Did benchmarks together Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 50
51. Thanks for attending! • Contact: – E-mail: Yoshinori.Matsunobu@sun.com – Blog http://yoshinorimatsunobu.blogspot.com – @matsunobu on Twitter Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 51
52. Copyright 2010 Sun Microsystems inc The World’s Most Popular Open Source Database 52