Facebook uses a LAMP stack with additional services and customizations for its architecture. The LAMP stack includes PHP, MySQL, and Memcache. PHP is used for its web programming capabilities but has scaling issues. MySQL is used primarily as a key-value store and is optimized for recency of data. Memcache provides high-performance caching. Additional services are created using Thrift for tasks better suited to other languages. Services include News Feed, Search, and logging via Scribe. The architecture emphasizes scalability, simplicity, and optimizing for common use cases.
This talk discusses the core concepts behind the Kubernetes extensibility model. We are going to see how to implement new CRDs, operators and when to use them to automate the most critical aspects of your Kubernetes clusters.
This document discusses Apache Ranger, an open source framework for centralized security administration across Hadoop components like HDFS, Hive, HBase, Knox, Storm, YARN, Kafka, and Solr. It provides authorization and auditing capabilities. Ranger allows defining flexible access policies in a centralized manner and enforcing them. It has an extensible architecture to easily add new components and customize authorization decisions using conditions and context enrichers. The document outlines Ranger's key capabilities and provides examples of its policy definitions and extensibility features.
This document discusses techniques for improving latency in HBase. It analyzes the write and read paths, identifying sources of latency such as networking, HDFS flushes, garbage collection, and machine failures. For writes, it finds that single puts can achieve millisecond latency while streaming puts can hide latency spikes. For reads, it notes cache hits are sub-millisecond while cache misses and seeks add latency. GC pauses of 25-100ms are common, and failures hurt locality and require cache rebuilding. The document outlines ongoing work to reduce GC, use off-heap memory, improve compactions and caching to further optimize for low latency.
This document discusses Spark shuffle, which is an expensive operation that involves data partitioning, serialization/deserialization, compression, and disk I/O. It provides an overview of how shuffle works in Spark and the history of optimizations like sort-based shuffle and an external shuffle service. Key concepts discussed include shuffle writers, readers, and the pluggable block transfer service that handles data transfer. The document also covers shuffle-related configuration options and potential future work.
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 provides a summary of improvements made to Hive's performance through the use of Apache Tez and other optimizations. Some key points include:
- Hive was improved to use Apache Tez as its execution engine instead of MapReduce, reducing latency for interactive queries and improving throughput for batch queries.
- Statistics collection was optimized to gather column-level statistics from ORC file footers, speeding up statistics gathering.
- The cost-based optimizer Optiq was added to Hive, allowing it to choose better execution plans.
- Vectorized query processing, broadcast joins, dynamic partitioning, and other optimizations improved individual query performance by over 100x in some cases.
Hyper-Converged Infrastructure: ConceptsNick Scuola
This document provides an overview of various appliance and software offerings from different vendors. It lists vendors that provide niche offerings for specific uses like VDI or video surveillance. It also outlines standard appliance options from vendors like Dell, HP, and Lenovo that are optimized for Hyper-V or KVM, as well as software-defined storage solutions and reference architectures from vendors including VMware, HP, Cisco, and Lenovo. Reference architectures provide validated designs and support and some solutions include subscription models for software. The document covers a wide range of preconfigured hardware and software options from major IT vendors.
Redis is an in-memory key-value store that is often used as a database, cache, and message broker. It supports various data structures like strings, hashes, lists, sets, and sorted sets. While data is stored in memory for fast access, Redis can also persist data to disk. It is widely used by companies like GitHub, Craigslist, and Engine Yard to power applications with high performance needs.
Ceph: Open Source Storage Software Optimizations on Intel® Architecture for C...Odinot Stanislas
Après la petite intro sur le stockage distribué et la description de Ceph, Jian Zhang réalise dans cette présentation quelques benchmarks intéressants : tests séquentiels, tests random et surtout comparaison des résultats avant et après optimisations. Les paramètres de configuration touchés et optimisations (Large page numbers, Omap data sur un disque séparé, ...) apportent au minimum 2x de perf en plus.
Best Practices for ETL with Apache NiFi on Kubernetes - Albert Lewandowski, G...GetInData
Did you like it? Check out our E-book: Apache NiFi - A Complete Guide
https://ebook.getindata.com/apache-nifi-complete-guide
Apache NiFi is one of the most popular services for running ETL pipelines otherwise it’s not the youngest technology. During the talk, there are described all details about migrating pipelines from the old Hadoop platform to the Kubernetes, managing everything as the code, monitoring all corner cases of NiFi and making it a robust solution that is user-friendly even for non-programmers.
Author: Albert Lewandowski
Linkedin: https://www.linkedin.com/in/albert-lewandowski/
___
Getindata is a company founded in 2014 by ex-Spotify data engineers. From day one our focus has been on Big Data projects. We bring together a group of best and most experienced experts in Poland, working with cloud and open-source Big Data technologies to help companies build scalable data architectures and implement advanced analytics over large data sets.
Our experts have vast production experience in implementing Big Data projects for Polish as well as foreign companies including i.a. Spotify, Play, Truecaller, Kcell, Acast, Allegro, ING, Agora, Synerise, StepStone, iZettle and many others from the pharmaceutical, media, finance and FMCG industries.
https://getindata.com
Flink Forward San Francisco 2022.
Resource Elasticity is a frequently requested feature in Apache Flink: Users want to be able to easily adjust their clusters to changing workloads for resource efficiency and cost saving reasons. In Flink 1.13, the initial implementation of Reactive Mode was introduced, later releases added more improvements to make the feature production ready. In this talk, we’ll explain scenarios to deploy Reactive Mode to various environments to achieve autoscaling and resource elasticity. We’ll discuss the constraints to consider when planning to use this feature, and also potential improvements from the Flink roadmap. For those interested in the internals of Flink, we’ll also briefly explain how the feature is implemented, and if time permits, conclude with a short demo.
by
Robert Metzger
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.
Log System As Backbone – How We Built the World’s Most Advanced Vector Databa...StreamNative
Milvus is an open-source vector database that leverages a novel data fabric to build and manage vector similarity search applications. As the world's most popular vector database, it has already been adopted in production by thousands of companies around the world, including Lucidworks, Shutterstock, and Cloudinary. With the launch of Milvus 2.0, the community aims to introduce a cloud-native, highly scalable and extendable vector similarity solution, and the key design concept is log as data.
Milvus relies on Pulsar as the log pub/sub system. Pulsar helps Milvus to reduce system complexity by loosely decoupling each micro service, making the system stateless by disaggregating log storage and computation, which also makes the system further extendable. We will introduce the overview design, the implementation details of Milvus and its roadmap in this topic.
Takeaways:
1) Get a general idea about what is a vector database and its real-world use cases.
2) Understand the major design principles of Milvus 2.0.
3) Learn how to build a complex system with the help of a modern log system like Pulsar.
Kubernetes is an open-source system for managing containerized applications across multiple hosts. It includes key components like Pods, Services, ReplicationControllers, and a master node for managing the cluster. The master maintains state using etcd and schedules containers on worker nodes, while nodes run the kubelet daemon to manage Pods and their containers. Kubernetes handles tasks like replication, rollouts, and health checking through its API objects.
Change Data Streaming Patterns for Microservices With Debezium confluent
(Gunnar Morling, RedHat) Kafka Summit SF 2018
Debezium (noun | de·be·zi·um | /dɪ:ˈbɪ:ziːəm/): secret sauce for change data capture (CDC) streaming changes from your datastore that enables you to solve multiple challenges: synchronizing data between microservices, gradually extracting microservices from existing monoliths, maintaining different read models in CQRS-style architectures, updating caches and full-text indexes and feeding operational data to your analytics tools
Join this session to learn what CDC is about, how it can be implemented using Debezium, an open source CDC solution based on Apache Kafka and how it can be utilized for your microservices. Find out how Debezium captures all the changes from datastores such as MySQL, PostgreSQL and MongoDB, how to react to the change events in near real time and how Debezium is designed to not compromise on data correctness and completeness also if things go wrong. In a live demo we’ll show how to set up a change data stream out of your application’s database without any code changes needed. You’ll see how to sink the change events into other databases and how to push data changes to your clients using WebSockets.
MongoDB is an open-source, document-oriented database that provides high performance and horizontal scalability. It uses a document-model where data is organized in flexible, JSON-like documents rather than rigidly defined rows and tables. Documents can contain multiple types of nested objects and arrays. MongoDB is best suited for applications that need to store large amounts of unstructured or semi-structured data and benefit from horizontal scalability and high performance.
Ranger provides centralized authorization policies for Hadoop resources. A new Ranger Hive Metastore security agent was introduced to address gaps in authorizing Hive CLI and synchronizing policies with object changes. It enforces authorization for Hive CLI, synchronizes access control lists when objects are altered via DDL in HiveServer2, and provides consistent authorization between Hive and HDFS resources. The agent has been implemented through custom classes extending Hive authorization hooks. A demo showed the new capabilities working with Ranger, Hive, and Hadoop.
The document discusses 10 tips and tricks for tuning Cypher queries in Neo4j. It covers using PROFILE to analyze query plans, avoiding unnecessary property reads, elevating properties to labels when possible, effectively using indexes and constraints, handling relationships efficiently, leveraging lists and map projections, implementing pattern comprehensions and subqueries, batching updates, and using user-defined procedures and functions. The final slides provide examples of special slide formatting and include placeholders for images or logos.
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...HostedbyConfluent
Time series data is everywhere -- connected IoT devices, application monitoring & observability platforms, and more. What makes time series datastreams challenging is that they often have orders of magnitude more data than other workloads, with millions of time series datapoints being quite common. Given its ability to ingest high volumes of data, Kafka is a natural part of any data architecture handling large volumes of time series telemetry, specifically as an intermediate buffer before that data is persisted in InfluxDB for processing, analysis, and use in other applications. In this session, we will show you how you can stream time series data to your IoT application using Kafka queues and InfluxDB, drawing upon deployments done at Hulu and Wayfair that allow both to ingest 1 million metrics per second. Once this session is complete, you’ll be able to connect a Kafka queue to an InfluxDB instance as the beginning of your own time series data pipeline.
The document provides an overview of Google Cloud's Anthos platform and how it can be used with HPE SimpliVity infrastructure to build a hybrid cloud strategy. Some key points:
- Anthos allows building and managing modern hybrid and multi-cloud applications across on-premise and public cloud infrastructure without vendor lock-in.
- HPE and Google Cloud visions are aligned in providing freedom of choice and a hybrid cloud optimized for containers.
- Using Anthos with HPE SimpliVity's hyperconverged infrastructure allows managing container-based applications across on-premise, Google Cloud, and other clouds in a flexible way.
MariaDB MaxScale is a database proxy that provides scalability, high availability, and data streaming capabilities for MariaDB and MySQL databases. It acts as a load balancer and router to distribute queries across database servers. MaxScale supports services like read/write splitting, query caching, and security features like selective data masking. It can monitor replication lag and route queries accordingly. MaxScale uses a plugin architecture and its core remains stateless to provide flexibility and high performance.
PostgreSQL is a very popular and feature-rich DBMS. At the same time, PostgreSQL has a set of annoying wicked problems, which haven't been resolved in decades. Miraculously, with just a small patch to PostgreSQL core extending this API, it appears possible to solve wicked PostgreSQL problems in a new engine made within an extension.
0-60: Tesla's Streaming Data Platform ( Jesse Yates, Tesla) Kafka Summit SF 2019confluent
Tesla ingests trillions of events every day from hundreds of unique data sources through our streaming data platform. Find out how we developed a set of high-throughput, non-blocking primitives that allow us to transform and ingest data into a variety of data stores with minimal development time. Additionally, we will discuss how these primitives allowed us to completely migrate the streaming platform in just a few months. Finally, we will talk about how we scale team size sub-linearly to data volumes, while continuing to onboard new use cases.
Stream Processing with Apache Kafka and .NETconfluent
Presentation from South Bay.NET meetup on 3/30.
Speaker: Matt Howlett, Software Engineer at Confluent
Apache Kafka is a scalable streaming platform that forms a key part of the infrastructure at many companies including Uber, Netflix, Walmart, Airbnb, Goldman Sachs and LinkedIn. In this talk Matt will give a technical overview of Kafka, discuss some typical use cases (from surge pricing to fraud detection to web analytics) and show you how to use Kafka from within your C#/.NET applications.
Migrating your clusters and workloads from Hadoop 2 to Hadoop 3DataWorks Summit
The Hadoop community announced Hadoop 3.0 GA in December, 2017 and 3.1 around April, 2018 loaded with a lot of features and improvements. One of the biggest challenges for any new major release of a software platform is its compatibility. Apache Hadoop community has focused on ensuring wire and binary compatibility for Hadoop 2 clients and workloads.
There are many challenges to be addressed by admins while upgrading to a major release of Hadoop. Users running workloads on Hadoop 2 should be able to seamlessly run or migrate their workloads onto Hadoop 3. This session will be deep diving into upgrade aspects in detail and provide a detailed preview of migration strategies with information on what works and what might not work. This talk would focus on the motivation for upgrading to Hadoop 3 and provide a cluster upgrade guide for admins and workload migration guide for users of Hadoop.
Speaker
Suma Shivaprasad, Hortonworks, Staff Engineer
Rohith Sharma, Hortonworks, Senior Software Engineer
This document discusses using Apache Kafka as a data hub to capture changes from various data sources using change data capture (CDC). It outlines several common CDC patterns like using modification dates, database triggers, or log files to identify changes. It then discusses using Kafka Connect to integrate various data sources like MongoDB, PostgreSQL and replicate changes. The document provides examples of open source CDC connectors and concludes with suggestions for getting involved in the Apache Kafka community.
How can you avoid inconsistencies between Kafka and the database? Enter change data capture (CDC) and Debezium. By capturing changes from the log files of the database, Debezium gives you both reliable and consistent inter-service messaging via Kafka and instant read-your-own-write semantics for services themselves.
Facebook uses a distributed systems architecture with services like Memcache, Scribe, Thrift, and Hip Hop to handle large data volumes and high concurrency. Key components include the Haystack photo storage system, BigPipe for faster page loading, and a PHP front-end optimized using Hip Hop. Data is partitioned horizontally and services communicate using lightweight protocols like Thrift.
Facebook Platform allows developers to build applications that integrate with Facebook user data and social connections through APIs and web services. It provides methods for authentication, querying data through FQL, and rendering content on Facebook through either FBML or iframes. While FBML played an important role historically, Facebook now recommends using iframes for new applications as FBML support will be phased out over time.
Redis is an in-memory key-value store that is often used as a database, cache, and message broker. It supports various data structures like strings, hashes, lists, sets, and sorted sets. While data is stored in memory for fast access, Redis can also persist data to disk. It is widely used by companies like GitHub, Craigslist, and Engine Yard to power applications with high performance needs.
Ceph: Open Source Storage Software Optimizations on Intel® Architecture for C...Odinot Stanislas
Après la petite intro sur le stockage distribué et la description de Ceph, Jian Zhang réalise dans cette présentation quelques benchmarks intéressants : tests séquentiels, tests random et surtout comparaison des résultats avant et après optimisations. Les paramètres de configuration touchés et optimisations (Large page numbers, Omap data sur un disque séparé, ...) apportent au minimum 2x de perf en plus.
Best Practices for ETL with Apache NiFi on Kubernetes - Albert Lewandowski, G...GetInData
Did you like it? Check out our E-book: Apache NiFi - A Complete Guide
https://ebook.getindata.com/apache-nifi-complete-guide
Apache NiFi is one of the most popular services for running ETL pipelines otherwise it’s not the youngest technology. During the talk, there are described all details about migrating pipelines from the old Hadoop platform to the Kubernetes, managing everything as the code, monitoring all corner cases of NiFi and making it a robust solution that is user-friendly even for non-programmers.
Author: Albert Lewandowski
Linkedin: https://www.linkedin.com/in/albert-lewandowski/
___
Getindata is a company founded in 2014 by ex-Spotify data engineers. From day one our focus has been on Big Data projects. We bring together a group of best and most experienced experts in Poland, working with cloud and open-source Big Data technologies to help companies build scalable data architectures and implement advanced analytics over large data sets.
Our experts have vast production experience in implementing Big Data projects for Polish as well as foreign companies including i.a. Spotify, Play, Truecaller, Kcell, Acast, Allegro, ING, Agora, Synerise, StepStone, iZettle and many others from the pharmaceutical, media, finance and FMCG industries.
https://getindata.com
Flink Forward San Francisco 2022.
Resource Elasticity is a frequently requested feature in Apache Flink: Users want to be able to easily adjust their clusters to changing workloads for resource efficiency and cost saving reasons. In Flink 1.13, the initial implementation of Reactive Mode was introduced, later releases added more improvements to make the feature production ready. In this talk, we’ll explain scenarios to deploy Reactive Mode to various environments to achieve autoscaling and resource elasticity. We’ll discuss the constraints to consider when planning to use this feature, and also potential improvements from the Flink roadmap. For those interested in the internals of Flink, we’ll also briefly explain how the feature is implemented, and if time permits, conclude with a short demo.
by
Robert Metzger
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.
Log System As Backbone – How We Built the World’s Most Advanced Vector Databa...StreamNative
Milvus is an open-source vector database that leverages a novel data fabric to build and manage vector similarity search applications. As the world's most popular vector database, it has already been adopted in production by thousands of companies around the world, including Lucidworks, Shutterstock, and Cloudinary. With the launch of Milvus 2.0, the community aims to introduce a cloud-native, highly scalable and extendable vector similarity solution, and the key design concept is log as data.
Milvus relies on Pulsar as the log pub/sub system. Pulsar helps Milvus to reduce system complexity by loosely decoupling each micro service, making the system stateless by disaggregating log storage and computation, which also makes the system further extendable. We will introduce the overview design, the implementation details of Milvus and its roadmap in this topic.
Takeaways:
1) Get a general idea about what is a vector database and its real-world use cases.
2) Understand the major design principles of Milvus 2.0.
3) Learn how to build a complex system with the help of a modern log system like Pulsar.
Kubernetes is an open-source system for managing containerized applications across multiple hosts. It includes key components like Pods, Services, ReplicationControllers, and a master node for managing the cluster. The master maintains state using etcd and schedules containers on worker nodes, while nodes run the kubelet daemon to manage Pods and their containers. Kubernetes handles tasks like replication, rollouts, and health checking through its API objects.
Change Data Streaming Patterns for Microservices With Debezium confluent
(Gunnar Morling, RedHat) Kafka Summit SF 2018
Debezium (noun | de·be·zi·um | /dɪ:ˈbɪ:ziːəm/): secret sauce for change data capture (CDC) streaming changes from your datastore that enables you to solve multiple challenges: synchronizing data between microservices, gradually extracting microservices from existing monoliths, maintaining different read models in CQRS-style architectures, updating caches and full-text indexes and feeding operational data to your analytics tools
Join this session to learn what CDC is about, how it can be implemented using Debezium, an open source CDC solution based on Apache Kafka and how it can be utilized for your microservices. Find out how Debezium captures all the changes from datastores such as MySQL, PostgreSQL and MongoDB, how to react to the change events in near real time and how Debezium is designed to not compromise on data correctness and completeness also if things go wrong. In a live demo we’ll show how to set up a change data stream out of your application’s database without any code changes needed. You’ll see how to sink the change events into other databases and how to push data changes to your clients using WebSockets.
MongoDB is an open-source, document-oriented database that provides high performance and horizontal scalability. It uses a document-model where data is organized in flexible, JSON-like documents rather than rigidly defined rows and tables. Documents can contain multiple types of nested objects and arrays. MongoDB is best suited for applications that need to store large amounts of unstructured or semi-structured data and benefit from horizontal scalability and high performance.
Ranger provides centralized authorization policies for Hadoop resources. A new Ranger Hive Metastore security agent was introduced to address gaps in authorizing Hive CLI and synchronizing policies with object changes. It enforces authorization for Hive CLI, synchronizes access control lists when objects are altered via DDL in HiveServer2, and provides consistent authorization between Hive and HDFS resources. The agent has been implemented through custom classes extending Hive authorization hooks. A demo showed the new capabilities working with Ranger, Hive, and Hadoop.
The document discusses 10 tips and tricks for tuning Cypher queries in Neo4j. It covers using PROFILE to analyze query plans, avoiding unnecessary property reads, elevating properties to labels when possible, effectively using indexes and constraints, handling relationships efficiently, leveraging lists and map projections, implementing pattern comprehensions and subqueries, batching updates, and using user-defined procedures and functions. The final slides provide examples of special slide formatting and include placeholders for images or logos.
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...HostedbyConfluent
Time series data is everywhere -- connected IoT devices, application monitoring & observability platforms, and more. What makes time series datastreams challenging is that they often have orders of magnitude more data than other workloads, with millions of time series datapoints being quite common. Given its ability to ingest high volumes of data, Kafka is a natural part of any data architecture handling large volumes of time series telemetry, specifically as an intermediate buffer before that data is persisted in InfluxDB for processing, analysis, and use in other applications. In this session, we will show you how you can stream time series data to your IoT application using Kafka queues and InfluxDB, drawing upon deployments done at Hulu and Wayfair that allow both to ingest 1 million metrics per second. Once this session is complete, you’ll be able to connect a Kafka queue to an InfluxDB instance as the beginning of your own time series data pipeline.
The document provides an overview of Google Cloud's Anthos platform and how it can be used with HPE SimpliVity infrastructure to build a hybrid cloud strategy. Some key points:
- Anthos allows building and managing modern hybrid and multi-cloud applications across on-premise and public cloud infrastructure without vendor lock-in.
- HPE and Google Cloud visions are aligned in providing freedom of choice and a hybrid cloud optimized for containers.
- Using Anthos with HPE SimpliVity's hyperconverged infrastructure allows managing container-based applications across on-premise, Google Cloud, and other clouds in a flexible way.
MariaDB MaxScale is a database proxy that provides scalability, high availability, and data streaming capabilities for MariaDB and MySQL databases. It acts as a load balancer and router to distribute queries across database servers. MaxScale supports services like read/write splitting, query caching, and security features like selective data masking. It can monitor replication lag and route queries accordingly. MaxScale uses a plugin architecture and its core remains stateless to provide flexibility and high performance.
PostgreSQL is a very popular and feature-rich DBMS. At the same time, PostgreSQL has a set of annoying wicked problems, which haven't been resolved in decades. Miraculously, with just a small patch to PostgreSQL core extending this API, it appears possible to solve wicked PostgreSQL problems in a new engine made within an extension.
0-60: Tesla's Streaming Data Platform ( Jesse Yates, Tesla) Kafka Summit SF 2019confluent
Tesla ingests trillions of events every day from hundreds of unique data sources through our streaming data platform. Find out how we developed a set of high-throughput, non-blocking primitives that allow us to transform and ingest data into a variety of data stores with minimal development time. Additionally, we will discuss how these primitives allowed us to completely migrate the streaming platform in just a few months. Finally, we will talk about how we scale team size sub-linearly to data volumes, while continuing to onboard new use cases.
Stream Processing with Apache Kafka and .NETconfluent
Presentation from South Bay.NET meetup on 3/30.
Speaker: Matt Howlett, Software Engineer at Confluent
Apache Kafka is a scalable streaming platform that forms a key part of the infrastructure at many companies including Uber, Netflix, Walmart, Airbnb, Goldman Sachs and LinkedIn. In this talk Matt will give a technical overview of Kafka, discuss some typical use cases (from surge pricing to fraud detection to web analytics) and show you how to use Kafka from within your C#/.NET applications.
Migrating your clusters and workloads from Hadoop 2 to Hadoop 3DataWorks Summit
The Hadoop community announced Hadoop 3.0 GA in December, 2017 and 3.1 around April, 2018 loaded with a lot of features and improvements. One of the biggest challenges for any new major release of a software platform is its compatibility. Apache Hadoop community has focused on ensuring wire and binary compatibility for Hadoop 2 clients and workloads.
There are many challenges to be addressed by admins while upgrading to a major release of Hadoop. Users running workloads on Hadoop 2 should be able to seamlessly run or migrate their workloads onto Hadoop 3. This session will be deep diving into upgrade aspects in detail and provide a detailed preview of migration strategies with information on what works and what might not work. This talk would focus on the motivation for upgrading to Hadoop 3 and provide a cluster upgrade guide for admins and workload migration guide for users of Hadoop.
Speaker
Suma Shivaprasad, Hortonworks, Staff Engineer
Rohith Sharma, Hortonworks, Senior Software Engineer
This document discusses using Apache Kafka as a data hub to capture changes from various data sources using change data capture (CDC). It outlines several common CDC patterns like using modification dates, database triggers, or log files to identify changes. It then discusses using Kafka Connect to integrate various data sources like MongoDB, PostgreSQL and replicate changes. The document provides examples of open source CDC connectors and concludes with suggestions for getting involved in the Apache Kafka community.
How can you avoid inconsistencies between Kafka and the database? Enter change data capture (CDC) and Debezium. By capturing changes from the log files of the database, Debezium gives you both reliable and consistent inter-service messaging via Kafka and instant read-your-own-write semantics for services themselves.
Facebook uses a distributed systems architecture with services like Memcache, Scribe, Thrift, and Hip Hop to handle large data volumes and high concurrency. Key components include the Haystack photo storage system, BigPipe for faster page loading, and a PHP front-end optimized using Hip Hop. Data is partitioned horizontally and services communicate using lightweight protocols like Thrift.
Facebook Platform allows developers to build applications that integrate with Facebook user data and social connections through APIs and web services. It provides methods for authentication, querying data through FQL, and rendering content on Facebook through either FBML or iframes. While FBML played an important role historically, Facebook now recommends using iframes for new applications as FBML support will be phased out over time.
Sparklint is a tool for identifying and tuning inefficient Spark jobs across a cluster. It provides live views of application statistics or event-by-event analysis of historical logs for metrics like idle time, core usage, and task locality. The demo shows Sparklint analyzing access logs to count by IP, status, and verb over multiple jobs, tuning configuration settings to improve efficiency and reduce idle time. Future features may include more job detail, auto-tuning, and streaming optimizations. Sparklint is an open source project for contributing to Spark job monitoring and optimization.
The document summarizes how Twitter handles and analyzes large amounts of real-time data, including tweets, timelines, social graphs, and search indices. It describes Twitter's original implementations using relational databases and the problems they encountered due to scale. It then discusses their current solutions, which involve partitioning the data across multiple servers, replicating and indexing the partitions, and pre-computing derived data when possible to enable low-latency queries. The principles discussed include exploiting locality, keeping working data in memory, and distributing computation across partitions to improve scalability and throughput.
OVERVIEW OF FACEBOOK SCALABLE ARCHITECTURE.Rishikese MR
The document provides an overview of Facebook's scalable architecture presented by Sharath Basil Kurian. It discusses how Facebook uses a variety of technologies like LAMP stack, PHP, Memcached, HipHop, Haystack, Scribe, Thrift, Hadoop and Hive to handle large amounts of user data and scale to support its massive user base. The architecture includes front-end components like PHP and BigPipe to dynamically render pages and back-end databases and caches like MySQL, Memcached and Haystack to efficiently store and retrieve user data.
This presentation shortly describes key features of Apache Cassandra. It was held at the Apache Cassandra Meetup in Vienna in January 2014. You can access the meetup here: http://www.meetup.com/Vienna-Cassandra-Users/
The document provides an overview of the activity feeds architecture. It discusses the fundamental entities of connections and activities. Connections express relationships between entities and are implemented as a directed graph. Activities form a log of actions by entities. To populate feeds, activities are copied and distributed to relevant entities and then aggregated. The aggregation process involves selecting connections, classifying activities, scoring them, pruning duplicates, and sorting the results into a merged newsfeed.
Presention on Facebook in f Distributed systemsAhmad Yar
Facebook is a social networking website where users can post comments, share photographs and post links to news or other interesting content on the web, chat live, and watch short-form video. You can even order food on Facebook if that's what you want to do. Shared content can be made publicly accessible, or it can be shared only among a select group of friends or family, or with a single person
Facebook[The Nuts and Bolts Technology]Koushik Reddy
This document provides a summary of a seminar presentation on Facebook and the nuts and bolts of the technology behind it. The presentation covered several key topics:
Languages used at Facebook including JavaScript, PHP, C++, Java, Python, Erlang, and Haskell. Databases used include MySQL, HBase, and Cassandra. Software and technologies discussed were Linux, Apache, Memcache, Haystack, BigPipe, Thrift, Scribe, and HipHop for PHP. The presentation provided details on how some of these technologies are applied at Facebook, such as Erlang for chat messaging, Haskell for spam detection, and HBase for photo storage.
Architecture Patterns - Open DiscussionNguyen Tung
This document provides an overview of software architecture fundamentals and patterns, with a focus on architectures for scalable systems. It discusses key quality attributes for architecture like performance, reliability, and scalability. Common patterns for scalable systems are described, including load balancing, map-reduce, and caching. The document also provides a detailed look at architectures used at Facebook, including the architectures for Facebook's website, chat service, and handling of big data. Key aspects of each system are summarized, including the technologies and design principles used.
Web 2.0: Beyond the Hype.” Usability Professionals Association, Minneapolis M...Samantha Bailey
Presentation deconstructing the "web 2.0" meme that was feverishly taking over the web following the widespread adoption of AJAX programming techniques.
Open web platform talk by daniel hladky at rif 2012 (19 april 2012 moscow)AI4BD GmbH
The document discusses the Open Semantic Web Platform and the role of the W3C. It summarizes that the W3C is working to develop standards like HTML5 to transform the web across devices. HTML5 in particular is becoming the cornerstone for building applications that can work across desktops, mobile devices, and televisions. The document gives examples of how major industries are using or planning to use the Open Web Platform.
This document discusses the evolution of the web from Web 1.0 to Semantic Web or Web 3.0. It explains how the current web contains mostly documents instead of structured data, leading to poorly solved information needs. The solution is the Semantic Web, which involves publishing structured data on the web in a common format and linking it to allow for reasoning and solving of human problems by machines. Examples mentioned include DBPedia, which extracts structured data from Wikipedia, and the Linked Data cloud, which interconnects public datasets.
Data infrastructure at Facebook with reference to the conference paper " Data warehousing and analytics infrastructure at facebook"
Datewarehouse
Hadoop - Hive - scrive
How facebook works and function- a complete approachPrakhar Gethe
Facebook uses a variety of technologies to handle its massive scale, including PHP, C++, Java, Python, and custom technologies like FBML and XHP. It relies on databases like MySQL, Memcached, Haystack and Cassandra, and systems like Scribe, Presto, and Hadoop to store and retrieve massive amounts of user data and content. Technologies like Ajax, JSON, JavaScript, jQuery are used on the front-end to power Facebook's interactive features.
New ICT Trends and Issues of LibrarianshipLiaquat Rahoo
The document summarizes a one-day workshop on new ICT trends and issues in librarianship. It will cover topics like the introduction of ICT in libraries, different types of libraries supported by ICT, necessary ICT infrastructure, software for library automation, digital repositories, and web applications. The workshop will be held at the Institute of Modern Sciences and Arts on April 17, 2016.
Technologie Proche: Imagining the Archival Systems of Tomorrow With the Tools...Artefactual Systems - AtoM
These slides accompanied a June 4th, 2016 presentation made by Dan Gillean of Artefactual Systems at the Association of Canadian Archivists' 2016 Conference in Montreal, QC, Canada.
This presentation aims to examine several existing or emerging computing paradigms, with specific examples, to imagine how they might inform next-generation archival systems to support digital preservation, description, and access. Topics covered include:
- Distributed Version Control and git
- P2P architectures and the BitTorrent protocol
- Linked Open Data and RDF
- Blockchain technology
The session is part of an attempt by the ACA to create interactive "working sessions" at its conferences. Accompanying notes can be found at: http://bit.ly/tech-Proche
Participants were also asked to use the Twitter hashtag of #techProche for online interaction during the session.
Static Site Generators - Developing Websites in Low-resource ConditionIWMW
Paul Walk discusses static site generators as an alternative to content management systems for publishing websites. Static site generators allow content to be authored in simple text files using formats like Markdown and compiled into static HTML and CSS that can be hosted on basic web servers. They provide benefits like minimal infrastructure needs, easy preservation of content, and increased security compared to systems that rely on databases. However, they may not be as user-friendly for content authoring. In general, static site generators are best suited for smaller, simpler websites that don't require advanced user access controls or dynamic functionality.
Facebook uses a variety of open source and proprietary technologies to power its massive social network. It relies on technologies like Linux, Apache, PHP, Memcache, Cassandra and more to handle over 500 million users and massive amounts of content shared every day. Facebook has also developed its own technologies like BigPipe, Haystack, HipHop and others to optimize performance and scalability as it continues to grow.
The document discusses the key concepts of Web 2.0, including how it utilizes collective intelligence through social bookmarking, tagging, wikis and collaborative filtering. It also examines how Web 2.0 applications harness the network effect to aggregate user data and benefit from increased participation. Finally, it outlines some of the design principles of Web 2.0 such as treating the web as a platform, harnessing collective intelligence, and providing rich user experiences through technologies like AJAX.
This document summarizes a talk given on enabling PHP for enterprise systems. It describes the challenges of integrating disparate systems at a major medical institution, including migrating from Oracle to Microsoft SQL Server. It explains why PHP was initially chosen and continues to be suitable for enterprises due to its agility, stability, flexibility, and ability to connect different systems. The talk outlines how the medical institution migrated their legacy PHP application by utilizing a cross-platform framework and migration vectors to facilitate the transition. It concludes that PHP enables enterprises by allowing them to connect resources and hold different systems together.
This document discusses how to write shared libraries. It begins with a brief history of shared libraries, noting that they allow code to be reused across processes by loading it into memory once. It then discusses some of the challenges with early binary formats not being designed for shared libraries, and how Linux initially used a.out but later switched to ELF to address limitations. The document will cover rules for properly using shared libraries to optimize resource usage and structure programs.
The document describes the University of Toronto Libraries' media server called MyMedia. It provides the following key details:
1. MyMedia allows university faculty, staff and students to upload, store, encode and publish various media formats for teaching and research purposes.
2. The media server was built in 4 weeks to support pandemic preparedness efforts and provides tools for easily publishing media to web pages from a central storage location.
3. The system utilizes various open source software components including a MySQL database, ffmpeg for encoding, and a PHP/Flash based interface for viewing media. Media can be streamed or downloaded depending on access permissions.
Introduction to Modern and Emerging Web TechnologiesSuresh Patidar
2017 is here and we are already a couple of days in!
A lot happened in the software development world in 2016. There were new releases of popular programming languages, new versions of important frameworks, and new tools. Let’s discuss some of the most important releases, and find out which skills you can learn that would be a great investment for your time in 2017!
Dev Dives: Automate and orchestrate your processes with UiPath MaestroUiPathCommunity
This session is designed to equip developers with the skills needed to build mission-critical, end-to-end processes that seamlessly orchestrate agents, people, and robots.
📕 Here's what you can expect:
- Modeling: Build end-to-end processes using BPMN.
- Implementing: Integrate agentic tasks, RPA, APIs, and advanced decisioning into processes.
- Operating: Control process instances with rewind, replay, pause, and stop functions.
- Monitoring: Use dashboards and embedded analytics for real-time insights into process instances.
This webinar is a must-attend for developers looking to enhance their agentic automation skills and orchestrate robust, mission-critical processes.
👨🏫 Speaker:
Andrei Vintila, Principal Product Manager @UiPath
This session streamed live on April 29, 2025, 16:00 CET.
Check out all our upcoming Dev Dives sessions at https://community.uipath.com/dev-dives-automation-developer-2025/.
Semantic Cultivators : The Critical Future Role to Enable AIartmondano
By 2026, AI agents will consume 10x more enterprise data than humans, but with none of the contextual understanding that prevents catastrophic misinterpretations.
Artificial Intelligence is providing benefits in many areas of work within the heritage sector, from image analysis, to ideas generation, and new research tools. However, it is more critical than ever for people, with analogue intelligence, to ensure the integrity and ethical use of AI. Including real people can improve the use of AI by identifying potential biases, cross-checking results, refining workflows, and providing contextual relevance to AI-driven results.
News about the impact of AI often paints a rosy picture. In practice, there are many potential pitfalls. This presentation discusses these issues and looks at the role of analogue intelligence and analogue interfaces in providing the best results to our audiences. How do we deal with factually incorrect results? How do we get content generated that better reflects the diversity of our communities? What roles are there for physical, in-person experiences in the digital world?
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxAnoop Ashok
In today's fast-paced retail environment, efficiency is key. Every minute counts, and every penny matters. One tool that can significantly boost your store's efficiency is a well-executed planogram. These visual merchandising blueprints not only enhance store layouts but also save time and money in the process.
Mobile App Development Company in Saudi ArabiaSteve Jonas
EmizenTech is a globally recognized software development company, proudly serving businesses since 2013. With over 11+ years of industry experience and a team of 200+ skilled professionals, we have successfully delivered 1200+ projects across various sectors. As a leading Mobile App Development Company In Saudi Arabia we offer end-to-end solutions for iOS, Android, and cross-platform applications. Our apps are known for their user-friendly interfaces, scalability, high performance, and strong security features. We tailor each mobile application to meet the unique needs of different industries, ensuring a seamless user experience. EmizenTech is committed to turning your vision into a powerful digital product that drives growth, innovation, and long-term success in the competitive mobile landscape of Saudi Arabia.
This is the keynote of the Into the Box conference, highlighting the release of the BoxLang JVM language, its key enhancements, and its vision for the future.
How Can I use the AI Hype in my Business Context?Daniel Lehner
𝙄𝙨 𝘼𝙄 𝙟𝙪𝙨𝙩 𝙝𝙮𝙥𝙚? 𝙊𝙧 𝙞𝙨 𝙞𝙩 𝙩𝙝𝙚 𝙜𝙖𝙢𝙚 𝙘𝙝𝙖𝙣𝙜𝙚𝙧 𝙮𝙤𝙪𝙧 𝙗𝙪𝙨𝙞𝙣𝙚𝙨𝙨 𝙣𝙚𝙚𝙙𝙨?
Everyone’s talking about AI but is anyone really using it to create real value?
Most companies want to leverage AI. Few know 𝗵𝗼𝘄.
✅ What exactly should you ask to find real AI opportunities?
✅ Which AI techniques actually fit your business?
✅ Is your data even ready for AI?
If you’re not sure, you’re not alone. This is a condensed version of the slides I presented at a Linkedin webinar for Tecnovy on 28.04.2025.
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungenpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-und-verwaltung-von-multiuser-umgebungen/
HCL Nomad Web wird als die nächste Generation des HCL Notes-Clients gefeiert und bietet zahlreiche Vorteile, wie die Beseitigung des Bedarfs an Paketierung, Verteilung und Installation. Nomad Web-Client-Updates werden “automatisch” im Hintergrund installiert, was den administrativen Aufwand im Vergleich zu traditionellen HCL Notes-Clients erheblich reduziert. Allerdings stellt die Fehlerbehebung in Nomad Web im Vergleich zum Notes-Client einzigartige Herausforderungen dar.
Begleiten Sie Christoph und Marc, während sie demonstrieren, wie der Fehlerbehebungsprozess in HCL Nomad Web vereinfacht werden kann, um eine reibungslose und effiziente Benutzererfahrung zu gewährleisten.
In diesem Webinar werden wir effektive Strategien zur Diagnose und Lösung häufiger Probleme in HCL Nomad Web untersuchen, einschließlich
- Zugriff auf die Konsole
- Auffinden und Interpretieren von Protokolldateien
- Zugriff auf den Datenordner im Cache des Browsers (unter Verwendung von OPFS)
- Verständnis der Unterschiede zwischen Einzel- und Mehrbenutzerszenarien
- Nutzung der Client Clocking-Funktion
Technology Trends in 2025: AI and Big Data AnalyticsInData Labs
At InData Labs, we have been keeping an ear to the ground, looking out for AI-enabled digital transformation trends coming our way in 2025. Our report will provide a look into the technology landscape of the future, including:
-Artificial Intelligence Market Overview
-Strategies for AI Adoption in 2025
-Anticipated drivers of AI adoption and transformative technologies
-Benefits of AI and Big data for your business
-Tips on how to prepare your business for innovation
-AI and data privacy: Strategies for securing data privacy in AI models, etc.
Download your free copy nowand implement the key findings to improve your business.
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul
Artificial intelligence is changing how businesses operate. Companies are using AI agents to automate tasks, reduce time spent on repetitive work, and focus more on high-value activities. Noah Loul, an AI strategist and entrepreneur, has helped dozens of companies streamline their operations using smart automation. He believes AI agents aren't just tools—they're workers that take on repeatable tasks so your human team can focus on what matters. If you want to reduce time waste and increase output, AI agents are the next move.
Generative Artificial Intelligence (GenAI) in BusinessDr. Tathagat Varma
My talk for the Indian School of Business (ISB) Emerging Leaders Program Cohort 9. In this talk, I discussed key issues around adoption of GenAI in business - benefits, opportunities and limitations. I also discussed how my research on Theory of Cognitive Chasms helps address some of these issues
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPathCommunity
Join this UiPath Community Berlin meetup to explore the Orchestrator API, Swagger interface, and the Test Manager API. Learn how to leverage these tools to streamline automation, enhance testing, and integrate more efficiently with UiPath. Perfect for developers, testers, and automation enthusiasts!
📕 Agenda
Welcome & Introductions
Orchestrator API Overview
Exploring the Swagger Interface
Test Manager API Highlights
Streamlining Automation & Testing with APIs (Demo)
Q&A and Open Discussion
Perfect for developers, testers, and automation enthusiasts!
👉 Join our UiPath Community Berlin chapter: https://community.uipath.com/berlin/
This session streamed live on April 29, 2025, 18:00 CET.
Check out all our upcoming UiPath Community sessions at https://community.uipath.com/events/.
Big Data Analytics Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
Spark is a powerhouse for large datasets, but when it comes to smaller data workloads, its overhead can sometimes slow things down. What if you could achieve high performance and efficiency without the need for Spark?
At S&P Global Commodity Insights, having a complete view of global energy and commodities markets enables customers to make data-driven decisions with confidence and create long-term, sustainable value. 🌍
Explore delta-rs + CDC and how these open-source innovations power lightweight, high-performance data applications beyond Spark! 🚀
AI and Data Privacy in 2025: Global TrendsInData Labs
In this infographic, we explore how businesses can implement effective governance frameworks to address AI data privacy. Understanding it is crucial for developing effective strategies that ensure compliance, safeguard customer trust, and leverage AI responsibly. Equip yourself with insights that can drive informed decision-making and position your organization for success in the future of data privacy.
This infographic contains:
-AI and data privacy: Key findings
-Statistics on AI data privacy in the today’s world
-Tips on how to overcome data privacy challenges
-Benefits of AI data security investments.
Keep up-to-date on how AI is reshaping privacy standards and what this entails for both individuals and organizations.
TrsLabs - Fintech Product & Business ConsultingTrs Labs
Hybrid Growth Mandate Model with TrsLabs
Strategic Investments, Inorganic Growth, Business Model Pivoting are critical activities that business don't do/change everyday. In cases like this, it may benefit your business to choose a temporary external consultant.
An unbiased plan driven by clearcut deliverables, market dynamics and without the influence of your internal office equations empower business leaders to make right choices.
Getting things done within a budget within a timeframe is key to Growing Business - No matter whether you are a start-up or a big company
Talk to us & Unlock the competitive advantage
Quantum Computing Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
5. Facebook Users in Korea
Total Facebook Users: 4 010 980 Penetration of population: 8.25%
Position in the list: 27. Penetration of online pop.: 10.17%
Average CPC(Cost per Click): $0.21 Average CPM(Cost Per Mile): $0.07
출처 : http://www.socialbakers.com
5
6. Social Network Users in Korea
Cyworld - 2010년 11월을 기점으로 traffic / unique visitor도 감소중
Facebook - 2011년 1월, 740만의 unique visitors, 지속적인
상승곡선
6
출처 : http://iblur.tistory.com/328
8. "High Performance at Massive Scale – Lessons learned at Facebook‖
Jeff Rothschild - Vice President of Technology Facebook
Calit2 Auditorium - University of California, San Diego
http://cns.ucsd.edu/lecturearchive09.shtml#Roth 8
9. Web 2.0 Summit 09:, ―High Order Bit: The Infrastructure of Facebook‖
Mike Schroepfer - Vice President of Technology Facebook
http://www.youtube.com/watch?v=iddTbLo5s1M 9
http://channy.creation.net/blog/759
12. • 500 million active users
• 100 billion hits per day
• 50 billion photos
• 2 trillion objects cached, with hundreds of millions of requests per
second
• 130TB of logs every day
2010 / 07 / 22
12
13. • 전통적인 웹사이트에서는
장비를 추가하고 DB를 나누어서 해결
• 하지만 Facebook은 서로 연결된
데이터 구조이기에
전통적 방식으로는 불가능하다
Users spend 8 billion minutes online everyday using Facebook
There are some 2 billion pieces of content shared every week
on the service
Users upload 2 billion photos each month
There are over 20 billion photos now on Facebook
During peak times,
Facebook serves 1.2 million photos a second
Yesterday alone, Facebook served 5 billion API calls
There are 1.2 million users for every engineer at Facebook
2009년 기준 !!
13
15. File Storage at facebook
haystack: efficient storage of billions of photos
Facebook에는 약 20빌리얶(200억)장의 사짂이 보존되고 있으며 각각 4 종류의
해상도로 보존되고 있기 때문에 전체 800억장의 사짂이 보존되고 있다고 말할 수
있다. 이것은 사짂을 전부 이으면 지구를 10회 둘러 쌀 만한 면적이 있다.
15
16. File Storage at facebook
Traditional Filesystem (Posix Standard) Metadata
=> It’s Too Many & Big. We couldn’t cache it at all !!
• File length
• Device ID
• Storage block pointers
• File owner
• Group owner
• Access rights on each assignment: read, write execute
• Change time
• Modification time
• Last access time
• Reference counts
16
19. File Storage at facebook
Haystack : a generic HTTP-based object store containing needles that map to stored opaque objects
• HTTP server : simple evhttp server provided with the open source libevent
library
• Photo Store Server : responsible for accepting HTTP requests and translating
them to the corresponding Haystack store operations (Load all meta data on
Memory)
• Haystack Object Store : Index(meta data) + Data
• Filesystem(XFS) : Haystack object stores are implemented on top of files stored
in a single filesystem created on top of the 10TB volume.
• Storage(Blade server) : 2 x quad-core CPUs, 16GB – 32GB memory, hardware
raid controller with 256MB – 512MB of NVRAM cache, 12+ 1TB SATA drives
19
21. File Storage at facebook
But It’s not opensource yet !!
Pomegranate - Storing Billions And Billions Of Tiny Little Files
Hadoop Archive: File Compaction for HDFS
21
26. Web Tier at facebook
• HipHop is a source code transformer which transforms PHP source code into
highly optimized C++ and then compiles it using g++.
• It will be useful to companies running very large PHP infrastructures who do not
wish to rewrite complex logic within C or C++
• 50% reduction in CPU usage than Apache + PHP
• Facebook’s API tier can serve twice the traffic using 30% less CPU
• It has embedded simple webserver on top of libevent.
90% of Apaches disappear in history.
Reference
Drupal
MediaWiki
phpBB
WordPress (WordPress has become 2.7x faster)
26
27. Web Tier at facebook
Almost-Serialization-Free APC
Faster Serialization and JSON Encoding
Less Reference Counting
More Compact Binary Code
Improved Memory Allocation(jemalloc)
Throughput : the average rate of Web requests successfully served over a given period of time
27
28. Web Tier in facebook
Tornado is a relatively simple, non-
blocking web server framework written
in Python.
It is designed to handle thousands of
simultaneous connections, making it ideal
for real-time Web services.
28
29. Web Tier at facebook
Node's goal is to provide an easy way to build scalable network programs.
Node is similar in design to and influenced by systems like Ruby's Event
Machine or Python's Twisted. Node takes the event model a bit further—it
presents the event loop as a language construct instead of as a library
29
31. Chat Service in facebook
Real-time presence notification is biggest challenge. Not sending messages
31
32. Chat Service at facebook
Real-time presence notification is biggest challenge. Not sending messages
Each Facebook Chat user now needs to be notified whenever one of his/her friends
(a) takes an action such as sending a chat message or loads a Facebook page (if
tracking idleness via a last-active timestamp) or
(b) transitions between idleness states (if representing idleness as a state machine
with states like "idle-for-1-minute", "idle-for-2-minutes", "idle-for-5-minutes", "idle-
for-10-minutes", etc.).
Note that approach (a) changes the sending a chat message / loading a Facebook
page from a one-to-one communication into a multicast to all online friends, while
approach (b) ensures that users who are neither chatting nor browsing Facebook
are nonetheless generating server load.
http://www.facebook.com/note.php?note_id=14218138919
http://www.facebook.com/note.php?note_id=51412338919
32
33. Chat Service at facebook
Facebook Chatting Sub-Systems
For Facebook Chat, we rolled our own subsystem for logging chat messages (in
C++) as well as an epoll-driven web server (in Erlang) that holds online
users' conversations in-memory and serves the long-polled HTTP requests. Both
subsystems are clustered and partitioned for reliability and efficient failover. Why
Erlang? In short, because the problem domain fits Erlang like a glove. Erlang is a
functional concurrency-oriented language with extremely low-weight
user-space "processes", share-nothing message-passing semantics,
built-in distribution, and a "crash and recover" philosophy proven by two
decades of deployment on large soft-realtime production systems.
http://www.facebook.com/note.php?note_id=14218138919&id=9445547199&index=2
34. Chat Service at facebook
Erlang? Why?
• 멀티코어에 적합한 프로그래밍 모델
• CPU가 늘어날수록 속도도 빨라짂다.
• 함수형 얶어
• Light weight process(경량 프로세스)
• 변하지 않는 변수
• 속도와 과부하 문제에 대한 탁월한 해결력
• 무정지(Fault-tolerant) 애플리케이션
출처 : 2008-2009 Neowiz Devlelopers’ Day
35. Chat Service at facebook
1,000
erlang
java
메시지 1건 전송 소요시간(micro second)
C#
100
10
> 200,000
processes
1
10 100 1,000 10,000 100,000
프로세스 수
Source:
출처 : 2008-2009 Neowiz Devlelopers’ Day
Joe Armstrong
SICS
36. Chat Service at facebook
Another Challenge, Communicate with other parts of system
Thrift is a software framework for scalable cross-language services development. It
combines a software stack with a code generation engine to build services that work
efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#,
Cocoa, JavaScript, Node.js, Smalltalk, and OCaml.
36
37. Chat Service at facebook
Chat Service Trio’s Challenge
9 months after launching Service
1. Erlang Channel Server
1. String problem of Erlang makes Memory footprint big.
2. Garbage collecting when wait for new message.
3. We could monitor channel server at runtime.
1. debug & load new code on the fly => Erlang’s feature
2. C++ Logger
1. Memory Fragmentation
3. Presence Server
1. Update user info from channel server data
1. It’s far simpler than the Thrift example service bundled.
2. Collecting user presence to Presence server
3. Use zlib for compressing data to solve network bandwidth problem
4. Facebook Chat Now Available Everywhere
1. They start supporting Jabber(XMPP)
37
38. Social Messaging Service in facebook
over 350 million users sending over 15 billion messages per month
http://blog.facebook.com/blog.php?post=452288242130
http://blog.hankyung.com/kim215/blog/3653251
38
39. The Underlying Technology of Messages
Eventual Consistency Performance
Haystack
http://www.facebook.com/notes/facebook-engineering/the-underlying-technology-of-messages/454991608919
http://zookeeper.apache.org/ 39
http://hbase.apache.org/
41. MySQL at facebook
We use MySQL as a Simple Data Storage(Key-value).
It’s a good RDB, but We do not use that as RDB.
• Logical Migration은 어렵다.
• 많은수의 Logical DB를 생성하고, 다양한 물리노드로 load balancing을 한다
• Scale at Web-Tier
• Business 로직 처리는 Front-end 에서
• No-Join, Compute on Web-tier
• Non-Static data 는 DB에 두지마라
• 많이 참조되는 Static Data는 DB에 두지마라 (Cache하라)
• Service나 Memcache를 이용해서 Global Query를 하라(?)
41
43. Memcached & MySQL at facebook
Global Load Balancing(IP기반)
미국 서부와 아시아권 유럽
43
http://bcho.tistory.com/416
44. Memcached at facebook
1. Per-connection memory buffer
1. Facebook implemented per-thread shared connection buffer pool for TCP/UDP
2. Choose UDP for reduce network traffic / Multi-get
1. UDP Socket Lock ( Linux kernel use single socket lock for multiple thread )
1. separate UDP sockets for transmitting replies
3. On Linux, network interrupt is delivered to one cores => all cores receive soft
interrupt. And some NIC card has high rate of interrupts
1. Solve that combination of interrupt driven and polling driven network I/O
2. Now every core do their work!!
4. Memcached’s stat use global lock
1. moving stats collection per-thread and aggregating results on-demand
5. contention on the lock that protects each network device’s transmit queue
1. changed the dequeue algorithm
2. scale memcached to 8 threads on an 8-core system
http://www.facebook.com/note.php?note_id=39391378919&id=9445547199&index=0
https://github.com/facebook/memcached 44
45. Memcached at facebook
1. 800대의 Memcached 운용중 (2008년 12월)
2. 28 terabytes of memory (2008년 12월)
1. 초당 12억건의 Request 처리중
3. Original memcached can serve 50,000 UDP requests/s
1. 200,000 UDP requests/s with 173 microseconds.
2. 300,000 UDP requests/s with high latency.
http://www.facebook.com/note.php?note_id=39391378919&id=9445547199&index=0
https://github.com/facebook/memcached 45
47. Data Warehousing at facebook
Data: How much?
• 200GB per day in March 2008
• 2+TB(compressed) raw data per day in April 2009
• 4+TB(compressed) raw data per day today ( 2009, 11 )
47
48. Data Warehousing at facebook
Scribe :
A Thrift service for distributed logfile collection. Scribe was designed
to run as a daemon process on every node in your data center and to
forward log files from any process running on that machine back to a
central pool of aggregators. Because of its ubiquity, a major design point
was to make Scribe consume as little CPU as possible.
Scribe is a server for aggregating streaming log data. It is designed
to scale to a very large number of nodes and be robust to network and
node failures. There is a scribe server running on every node in the system,
configured to aggregate messages and send them to a central scribe
server (or servers) in larger groups. If the central scribe server isn’t
available the local scribe server writes the messages to a file on
local disk and sends them when the central server recovers. The
central scribe server(s) can write the messages to the files that are their
final destination, typically on an nfs filer or a distributed filesystem, or send
them to another layer of scribe servers.
48
56. Culture of facebook
Hackathon
56
http://mimul.com/pebble/default/2010/05/23/1274600280000.html
57. Culture of facebook
1. 개발 과정에서 Product Manager의 권한은 미약하고, 오히려 개발자들이 자기 프로젝트에 관심을
가지도록 하기 위해 개발자들을 설득, 로비하는 일이 잦다.
2. 모든 엔지니어는 입사 후 4주~6주 과정의 부트 캠프를 거친다. 부트 캠프에서 페이스북 시스템의
버그를 직접 수정하면서 배우고, 시니어 엔지니어들의 강의를 듣는다. 약 10% 정도의 엔지니어들이 이
과정을 완료하지 못하며 이 경우 권고 사직 대상이 된다.
3. 엔지니어는 백엔드부터 프론트엔드까지 보통 혼자서 다 구현을 한다. 클라이얶트, UI 일은 기술적
난이도가 낮고 반복이 많아 엔지니어들이 기피한다. 뉴스피드나 광고 알고리즘, memcache 최적화 등
백엔드 구현을 선호한다.
3. 모든 변경된 코드는 의무적으로 내부 리뷰를 거친다. 주커버그는 뉴스피드 관렦 코드는 직접 리뷰를
한다. 최소 1명 이상의 리뷰를 거치지 않은 코드를 릴리스해서는 안된다.
4. 페이스북에는 전문 QA가 없다. 모든 개발자가 테스트, 버그 수정, 유지보수까지 자기 코드에 대해
책임짂다. 내부 개발자가 사용해보는 테스트는 있다. 서비스 런칭을 위해 거쳐야 하는 자동화된 테스트도
있다. 하지만 기본적으로는 개발자가 UI 구현부터 테스트까지 모두 책임을 지는 구조이다.
"대부붂의 엔지니어들은 버그 없는 코드를 작성할 줄 안다"는 믿음도 일부 있는 붂위기.
5. 매주 화요일 릴리스하며 그 주중에 릴리스 대상 코드를 커밋한 개발자는 릴리스 시작 시 on-site(특정
IRC 채널)에서 대기해야 한다. 그렇지 않으면 공개 창피당한다. 9레벨 릴리스 중 문제가 생기면 개발자가
수정 후 1레벨부터 다시 시작한다.
6. SVN을 통해 혼나거나 프로젝트를 자주 지연시킨 엔지니어는 해고된다.(매우 뛰어난 퍼포먼스만 허용.
보통 채용 6개월 이내에 해고) 버그나 사이트 다운, 실수 등의 문제로 혼난다고 해서 해고되지는 않는다.
다만 이런 공개 창피를 통해 이슈를 해결하기 위해 매우 열중하며 이 과정에서 모두가 함께 배운다.
57
http://logonjava.blogspot.com/2011/01/facebook-sw.html