The response has been limited to 50k tokens of the smallest files in the repo. You can remove this limitation by removing the max tokens filter.
├── .gitmodules
├── 1.Google.Facebook.eBay.Amazon
    ├── AS深圳2017《Move+Fast+and+Break+Things+:Engineering+at+Facebook》-Joel+pobar.pdf
    ├── GDD_pydp_python_design_patterns.pdf
    ├── Google Sibyl- A system for large scale supervised machine learning chandra.pdf
    ├── Google 是怎样工作的 by Eric Schmidt.pdf
    ├── Google-Large Scale Deep Learning-Jeff-Dean-CIKM-keynote-Nov2014.pdf
    ├── Google-What-does-it-take-to-make-Google-work-at-scale.pdf
    ├── amazon_dynamo_sosp2007.pdf
    ├── eBay Architecture(Tony Ng) 2011- Tony NG.pdf
    ├── eBay’s Challenges and Lessons from Growing an eCommerce Platform to Planet Scale 2009.pdf
    ├── ebay_2006_architecture.pdf
    ├── ebay_2009_arch_Best Practices for Scaling Websites Lessons from eBay.pdf
    ├── ebay_2010_Principles and Patterns of eBay Architecture.ppt
    ├── ebay_2010_RandyShoup_More Best Practices For Large Scale WebSites Lessons From EBay.pdf
    ├── facebook_architecture.pdf
    └── facebook_performance_caching-dc.pdf
├── 2.微博架构
    ├── 01陈波-微博Cache架构设计实践.pdf
    ├── 微博.亿级用户下的新浪微博平台架构_2014.pdf
    ├── 微博.大数据时代feed架构_TimYang_ArchSummit_Beijing_2014.pdf
    ├── 微博.构建可扩展的微博架构_TimYang_QCon_Beijing_2010.pdf
    ├── 微博.消息系统架构演进_ArchSummit_2016.pdf
    ├── 微博数据库那些事儿:3个变迁阶段背后的设计思想.pdf
    ├── 微博架构与平台安全--weimedia提供.ppt
    ├── 新浪 WOT2015-“幕后英雄”数据库平台备份系统介绍v1.3-肖鹏.pdf
    ├── 新浪 fastsocket.pdf
    ├── 新浪-SSD在新浪数据库平台优化实践.pdf
    ├── 新浪定制服务器介绍-2014.pdf
    └── 新浪微博redis优化历程.pdf
├── 3.百度架构
    ├── 架构设计的一些思考-百度首席-林仕鼎.pdf
    ├── 百度-吴华-互联网上NLP技术及其应用.pdf
    ├── 百度.姚旭.百度个性化推荐实践.pdf
    ├── 百度.海量日志分析架构.pdf
    ├── 百度推荐引擎实践系列(一) 策略篇.pdf
    └── 百度网页搜索核心模块重构.pdf
├── 7.网易.技术架构
    ├── 网易.open-source-cloud-db-framework.pdf
    ├── 网易.蜂巢基于万节点kubernetes支撑大规模云应用实践.pdf
    ├── 网易IM云千万级并发消息处理能力的架构设计与实践.pdf
    ├── 网易云.曹偲--网易云音乐.pdf
    ├── 网易云上的第一跨境电商技术架构-谢骋超.pdf
    ├── 网易分布式数据库DDB.pdf
    └── 网易即时通产品白皮书.pdf
├── 8.13-Best-Tech-Papers
    ├── 4+1view-architecture.pdf
    ├── A Field Guide to Boxology - Preliminary Classification of Architectural Styles for Software Systems.pdf
    ├── An introduction_to_software_arch.pdf
    ├── DownloadDocumentFile.pdf
    ├── Hints for Computer System Design - Microsoft.pdf
    ├── Kruchten 2006 architecture 10 years.pdf
    ├── On_the_Design_and_Development_of_Program.pdf
    ├── Programmin_In_Large_versus_In_Small-Kron.pdf
    ├── Software Architecture in Inductrial Applications.pdf
    ├── The Coming-of-Age of Software Architecture Research.pdf
    ├── The_Modular_Structure_of_Complex_Systems.pdf
    ├── criteria_for_modularization.pdf
    ├── download.html
    ├── foundation-for-the-study-of-software-arch.pdf
    └── modstructure.ppt
├── 9.50-favorite-technical-papers
    ├── A Few Billion Lines of Code Later - Using Static Analysis to Find Bugs in the Real World - ACM - 2010 (BLOC-coverity).pdf
    ├── A Few Billion Lines of Code Later.html
    ├── A pragmatic view of the system architect.pdf
    ├── Amazon Aurora - Design Considerations for High Throughput Cloud-Native Relational Databases-p1041-verbitski.pdf
    ├── Availability in Globally Distributed Storage Systems.pdf
    ├── CIDR15_Paper16.pdf
    ├── Canopy An End-to-End Performance Tracing And Analysis System-sosp17-final14.pdf
    ├── Design to deployment at Google.pdf
    ├── EntrepreneurialInnovationGoogle.pdf
    ├── FOX_Brewer_99-Harvest_Yield_and_Scalable_Tolerant_Systems.pdf
    ├── Frederick_Brooks_87-No_Silver_Bullet_Essence_and_Accidents_of_Software_Engineering.pdf
    ├── Hints for computer system design.pdf
    ├── Kafka.pdf
    ├── Lamport_82-The_Byzantine_Generals_Problem.pdf
    ├── Large-Scale Automated Refactoring Using ClangMR.pdf
    ├── Life-Beyond-Distributed-Transactions.pdf
    ├── Online Asynchronous Schema Change in F1.pdf
    ├── Searching for Build Debt - Experiences Managing Technical Debt at Google.pdf
    ├── Security Keys - Practical Cryptographic Second Factors for the Modern Web.pdf
    ├── Spanner Google Globally-Distributed Database.pdf
    ├── Still All on One Server - Perforce at Scale.pdf
    ├── UCB-lattice-tr.pdf
    ├── Unreliable Failure Detectors for Reliable Distributed Systems-p225-chandra.pdf
    ├── Zab High-performance broadcast for primary-backup systems.html
    ├── Zab High-performance broadcast for primary-backup systems.pdf
    ├── amazon-dynamo-sosp2007.pdf
    ├── bigballofmud.pdf
    ├── bigtable-osdi06.pdf
    ├── blast.pdf
    ├── borg.pdf
    ├── chubby-osdi06.pdf
    ├── dapper.pdf
    ├── design-container-based-systems.pdf
    ├── eurosys07.pdf
    ├── favorite-technical-papers.html
    ├── gfs.pdf
    ├── hamilton.pdf
    ├── hotedge-2018-preprint.pdf
    ├── login_dec14_02_ward.pdf
    ├── mapreduce.pdf
    ├── mesos.pdf
    ├── omega.pdf
    ├── outofthetarpit.pdf
    ├── p558-lamport.pdf
    ├── paxos-made-simple.pdf
    ├── paxos_made_live.pdf
    ├── raft.pdf
    ├── rules_of_ml.pdf
    ├── sofsem10.pdf
    ├── swim.pdf
    ├── techreport.pdf
    ├── unix_timesharing_system.pdf
    ├── vldb.pdf
    └── wormhole.pdf
├── A.分布式数据库-数据平台-NoSQL
    ├── 2013-6-29-大数据模式-OpenSourceSummit.pdf
    ├── 2013_PyCon_awesome_Big_Data_algorithms.pdf
    ├── 20140114-webinar-get-more-out-of-mongodb-with-tokumx-140319063324-phpapp02.pptx
    ├── Buffer Pool Implementation InnoDB vs Oracle.pdf
    ├── Citrusleaf-- A Real-Time NoSQL DB which Preserves ACID vldb2011.pdf
    ├── Data Structures and Algorithms for  Big Databases.pdf
    ├── HBase上搭建广告实时数据处理平台-广点通.pdf
    ├── Interface Design for Spark Community by Reynold Xin.pdf
    ├── NDB代码分析.docx
    ├── Spark - Unified Big Data Analytics Pipeline.pdf
    ├── Spark A-Web-Application-for-Interactive-Data-Analysis-with-Spark-Romain-Rigaux.pdf
    ├── Spark部署中的关键问题解决之道--许鹏.pdf
    ├── TiDB在Kubernetes平台的自动化运维实践-FCNUTCon2017_dengshuan.pdf
    ├── Toward Scalable Systems for Big Data Analytics.pdf
    ├── Whitepaper_NoSQL_Tech_Comparison_Report.pdf
    ├── big-challenges.pdf
    ├── mysql-mongo-for-mysql-dba-webinar.pdf
    ├── spark介绍-蘑菇街.pdf
    ├── 万亿级大数据平台的架构设计与演进实践-201711_qcon_beijing_chenchao.pdf
    ├── 乐视秒杀:每秒十万笔交易的数据架构解读.pdf
    ├── 云端上的生存之道.pdf
    ├── 云端数据处理,让服务更轻-----七牛.doc
    ├── 互联网常用场景下的大数据解析架构-胡宁.pdf
    ├── 分布式数据库设计及反范式设计.pdf
    ├── 可视化存储智能解决方案—思路设计与展现.pdf
    ├── 大数据时代Feed系统架构-杨卫华.pdf
    ├── 开源大数据在Facebook与Dropbox的实践-邵铮.pdf
    ├── 珍爱网 构建有业务价值的数据分析系统.pdf
    ├── 网易 数据库系统的优化与调优:从理论到实践.pdf
    └── 高性能NoSQL系统BladeCube的设计与优化.pdf
├── A.分布式文件系统-缓存
    ├── Codis-intro.pdf
    ├── GlusterFS分布式文件系统.pdf
    ├── GlusterFS系统原理剖析.pdf
    ├── Inside BeansDB.pdf
    ├── OceanBase1.pdf
    ├── Redis cluster Specification (work in progress) – Redis.pdf
    ├── Redis 多机特性工作原理简介.pdf
    ├── Redis 实现分析.pdf
    ├── Redis在京东到家的订单中的使用.pdf
    ├── Redis实现分析.pdf
    ├── memcache-fb.pdf
    ├── memcachedasaserviceusingdocker-130410163221-phpapp02.pdf
    ├── 云存储系统设计.pdf
    └── 赵舜东-高性能Web架构之缓存体系.pdf
├── A.分布式系统-高可用
    ├── Instagram web-service-at-instagram.pdf
    ├── paxos的直观解释.pdf
    ├── 关于云计算可用性的定性与定量研究.pdf
    ├── 搜狗 高性能-高可用-可扩展商业平台设计.pdf
    ├── 网易 分布式系统设计模式.pdf
    ├── 蘑菇街背后系统的稳定性保障实践.pdf
    ├── 酷狗 基于OpenResty的百万级长连接推送-酷狗.pdf
    ├── 雪球在股市风暴下的高可用架构改造分享.pdf
    ├── 高可用可伸缩架构实用经验谈.pdf
    └── 高性能,高可用,可扩展在途牛.pdf
├── B.基础架构-Docker-容器架构
    ├── ChrisSwan-Docker、DevOps和安全.pdf
    ├── Docker在雪球的技术实践.pdf
    ├── Introduction to kubernetes - yangzhangxian.pptx
    ├── K8S在华为全球IT系统中的实践.pdf
    ├── Learn_Basic_Ansible_using_Docker.ppt
    ├── Learn_Docker_in_90mins.ppt
    ├── 动态资源管理和容器技术在金融行业的架构探索.pdf
    ├── 深入理解Docker架构与实现 Sunhongliang.pptx
    └── 高可用架构·Docker实战-第1期.pdf
├── B.基础架构-FrontEnd
    ├── CSS对用户体验的影响.pdf
    ├── HTML5图形图像技术分享.pdf
    ├── HTTP 2.0 - Tokyo.pdf
    ├── QCon上海2015-ReactJS 实战-王沛.pdf
    ├── Tools for Advanced Prototyping for Mobile Apps.pdf
    └── fibjs.pdf
├── B.基础架构-及时通讯-语音-视频
    ├── QCon上海2015-IM通讯云技术路线的选择-许志强.pdf
    ├── whatsapp技术架构.pdf
    ├── 云直播平台架构与实施-黄慧攀.pdf
    └── 即时通讯架构-20140718-lizhiwei.pdf
├── B.基础架构-日志系统
    ├── ngx_lua在又拍云的应用-日志收集及作用.pdf
    ├── qconbeijing-20140426am-luoqiwu.pdf
    └── 唯品会日日志平台建设.pdf
├── B.基础架构-消息队列
    ├── Kafka深度解析.pdf
    └── RabbitMQ使用参考-YS.pdf
├── C.运维架构-安全
    ├── AS2017-《巡风系统在同程运维安全的实践》-刘新高.pdf
    ├── YY语音Linux下的主动防御.pdf
    └── 支付应用数据安全标准 PA-DSS_v3__ZH-CN.pdf
├── C.运维架构-自动化运维DevOps
    ├── Ducter介绍.pptx
    ├── opsdev-2017-annuals-奇虎360运维.pdf
    ├── 互联网创业服务器运维工具集.pdf
    ├── 唯品会运维架构和流程改造之路.pdf
    ├── 基于Ansible的自动化运维实践.pptx
    ├── 携程  构建可靠的自动化发布体系.pdf
    ├── 滴滴-运维架构演进史-Fqconbj-20160422pm-lupei.pdf
    └── 美团云运维体系建设与实践 -FCNUTCon2017_huxiangtao.pdf
├── ChatGPT-LLM-Diffusion
    ├── 2004.07213 Toward Trustworthy AI Development - Mechanisms for Supporting Verifiable Claims.pdf
    ├── 2005.14165 Language Models are Few-Shot Learners.pdf
    ├── 2112.10752 High-Resolution Image Synthesis with Latent Diffusion Models.pdf
    ├── 2203.02155 Training language models to follow instructions with human feedback.pdf
    ├── 2209.00796 Diffusion Models - A Comprehensive Survey of Methods and Applications.pdf
    ├── 2210.10760 Scaling Laws for Reward Model Overoptimization.pdf
    ├── 2303.10420 A Comprehensive Capability Analysis of GPT-3 and GPT-3.5 Series Models.pdf
    ├── 2306.04542 On the Design Fundamentals of Diffusion Models - A Survey.pdf
    ├── DALL_E_3_System_Card.pdf
    ├── GPT-3.5 + ChatGPT_ An illustrated overview – Dr Alan D. Thompson – Life Architect.pdf
    ├── GPT-4_vs_GPT-35_A_Concise_Showdown.pdf
    ├── Introducing ChatGPT.pdf
    ├── Lessons learned on language model safety and misuse.pdf
    ├── Meet GPT-3. It Has Learned to Code (and Blog and Argue). - The New York Times.pdf
    ├── NeurIPS-2022-training-language-models-to-follow-instructions-with-human-feedback-Paper-Conference.pdf
    ├── OpenAI InstructGPT-Aligning language models to follow instructions.pdf
    ├── Peebles_Scalable_Diffusion_Models_with_Transformers_ICCV_2023_paper.pdf
    ├── README.md
    ├── State of GPT:大神Andrej揭秘OpenAI大模型原理和训练过程.pdf
    ├── Step by Step visual introduction to Diffusion Models _ Medium.pdf
    ├── Video generation models as world simulators.pdf
    ├── What is GPT-3_ Everything your business needs to know about OpenAI’s breakthrough AI language program _ ZDNET.pdf
    ├── chatgpt-feedback-contest.pdf
    └── state of gpt.pdf
├── D.机器学习-人工智能
    ├── A Few Useful Things to Know about Machine Learning cacm12.pdf
    ├── AS深圳2017《Al筑巢;机器学习在凤巢的深度应用》-刘斌新.pdf
    ├── QCon上海2015-1号店通用精确化平台架构以及大数据营销实践-陈敏敏.pdf
    ├── online learning algorithm-taoshuai.pptx
    ├── 《大数据的发展脉络:见自己_见天地_见众生》-演讲人:吴甘沙_英特尔中国研究院.pdf
    ├── 出门问问-李志飞-自然语言处理如何落地互联网.pdf
    ├── 机器学习个人笔记完整版v5.pdf
    ├── 深度学习在自然语言处理的应用v0.76.ppt
    └── 用 TensorFlow 实现智能机器人的原理及如何实现一个对话机器人.pdf
├── E.互联网公司-架构演进
    ├── 京东应用架构设计.pdf
    ├── 京东服务框架实践.pdf
    ├── 汽车之家 论坛架构分析.pdf
    ├── 滴滴打车架构演变及应用实践.pdf
    ├── 百年人寿系统架构演变.pdf
    ├── 知乎架构变迁史.pdf
    └── 豆瓣架构演进.pdf
├── F.10 papers for architect
    ├── An Introduction to Software Architecture.pdf
    ├── Big Ball of Mud.pdf
    ├── Go_To_Considered_Harmful.txt
    ├── Harvest, Yield, and Scalable Tolerant Systems .pdf
    ├── No Silver Bullet Essence and Accidents of Software Engineering.pdf
    ├── The Byzantine Generals Problem.pdf
    ├── The Open-Closed Principle.pdf
    ├── Who Needs an Architect.pdf
    ├── a note on distributed computing.pdf
    └── ieee std 1471-2000.pdf
├── F.10 papers for programmer
    ├── A Laboratory For Teaching Object-Oriented Thinking.pdf
    ├── An Experimental Evaluation of The Assumption of Independence in MultiVersion Programming.pdf
    ├── Arguments and results.pdf
    ├── CMU-CS-95-113.pdf
    ├── Can Programming Be Liberated from the von Neumann Style.pdf
    ├── LaSC-4-3-pp223-242.pdf
    ├── Lisp Good NewsBad News How to Win Big.pdf
    ├── On understanding types, data abstraction, and polymorphism.pdf
    ├── Programming as an Experience The Inspiration for Self.pdf
    ├── Reflections on Trusting Trust.pdf
    ├── The Next 700 Programming Languages.pdf
    ├── a note on distributed computing.pdf
    ├── axiomatic-basis-computer-programming.pdf
    ├── fundamental-concepts-in-programming-languages.pdf
    ├── on the criteria to be used in decomposing systems into modules.txt
    ├── recursive.pdf
    └── time-clocks.pdf
├── G.编程语言
    ├── Erlang-game-server开发实践.pdf
    ├── Functional Design Patterns.pdf
    ├── Golang
    │   ├── Building_Go_Web_Application.pdf
    │   ├── Golang在京东的使用.pptx
    │   ├── Golang在美团的应用用.pdf
    │   ├── Golang常见的坑和编程模式.pptx
    │   ├── Golang性能优化.pdf
    │   ├── Go在分布式系统开发中的应用.pdf
    │   ├── Go并发编程.pdf
    │   ├── Go语言构建高并发分布式系统实践.ppt
    │   ├── QCon上海2015-Go语言发展状况-许式伟.pdf
    │   └── Think-In-Go.pdf
    ├── Haskell in the Large.pdf
    ├── Lua在Nginx中的应用.pdf
    ├── Memory-and-C++-debugging-at-EA-2015.pptx
    ├── Python3.5中async_await特性的实现.pdf
    ├── Scala在挖财的应用实践-infoq.pdf
    └── pygrunn2014.pdf
├── H.团队与产品
    ├── AS2017-《从大厂到创业公司,架构师经历的三次转身》-曹祖鹏.pdf
    ├── Netflix Culture, Freedom and Responsibility.pptx
    ├── QCon上海2015-软件开发vs.产品开发- Peter Neumark.pdf
    ├── 《微信背后的产品观》-张小龙(139页手抄版).pdf
    ├── 互联网交互设计方法.ppt
    ├── 产品设计与用户体验Good(来自腾讯CEO马化腾的PPT).ppt
    └── 腾讯:从概念到产品-需求分析过程.ppt
├── I.性能优化
    ├── Linux Profiling at Netflix.pdf
    ├── Linux System and Performance Monitoring (Darren Hoch).pdf
    ├── mature-optimization.epub
    ├── 如何优化JAVA应用.pptx
    ├── 并发编程实战.pptx
    └── 阿里云 网络性能调优.pdf
├── K.金融-支付
    ├── +AS2017-《点融网金融科技的大数据解决方案》-单忆南.pdf
    ├── +AS2017-《58到家支付系统架构与实践》-蔡敏++.pdf
    ├── +AS2017-《支撑千万亿级交易额的银行云计算架构演进》-龙成.pdf
    ├── 02刘恒-盒子科技聚合支付系统演进.pdf
    ├── 03李胜军%40美的支付架构演进-最终版.pdf
    ├── 04江谷强%40团贷网分布式事务消息.pdf
    └── AS2017-《区块链技术及其在金融领域的落地实践》-韩昭芳.pdf
├── README.md
└── 其他
    ├── Competitive Programmer’s Handbook.pdf
    ├── How Complex Systems Fail.pdf
    ├── QCon上海2015-Elasticsearch集群中JVM问题的应对之策-卞泽鑫.pdf
    ├── architecture-qq-group.png
    ├── 从零开始写一个简单的操作系统.pdf
    ├── 小米开源-小米的经验分享.pdf
    ├── 网易开源.pptx
    ├── 蔡学镛架构设计方法-2014-8-17.pdf
    ├── 软件架构原理-IBM.pdf
    └── 金山云 当游戏遇到云-3.pdf


/.gitmodules:
--------------------------------------------------------------------------------
 1 | [submodule "4.淘宝-阿里技术架构"]
 2 | 	path = 4.淘宝-阿里技术架构
 3 | 	url = https://github.com/davideuler/architecture.taobao-alibaba.git
 4 | [submodule "5.微信-腾讯技术架构"]
 5 | 	path = 5.微信-腾讯技术架构
 6 | 	url = https://github.com/davideuler/architecture.wechat-tencent.git
 7 | [submodule "6.美团-点评技术架构"]
 8 | 	path = 6.美团-点评技术架构
 9 | 	url = https://github.com/davideuler/architecture.meituan-dianping.git
10 | 


--------------------------------------------------------------------------------
/1.Google.Facebook.eBay.Amazon/AS深圳2017《Move+Fast+and+Break+Things+:Engineering+at+Facebook》-Joel+pobar.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/1.Google.Facebook.eBay.Amazon/AS深圳2017《Move+Fast+and+Break+Things+:Engineering+at+Facebook》-Joel+pobar.pdf


--------------------------------------------------------------------------------
/1.Google.Facebook.eBay.Amazon/GDD_pydp_python_design_patterns.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/1.Google.Facebook.eBay.Amazon/GDD_pydp_python_design_patterns.pdf


--------------------------------------------------------------------------------
/1.Google.Facebook.eBay.Amazon/Google Sibyl- A system for large scale supervised machine learning chandra.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/1.Google.Facebook.eBay.Amazon/Google Sibyl- A system for large scale supervised machine learning chandra.pdf


--------------------------------------------------------------------------------
/1.Google.Facebook.eBay.Amazon/Google 是怎样工作的 by Eric Schmidt.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/1.Google.Facebook.eBay.Amazon/Google 是怎样工作的 by Eric Schmidt.pdf


--------------------------------------------------------------------------------
/1.Google.Facebook.eBay.Amazon/Google-Large Scale Deep Learning-Jeff-Dean-CIKM-keynote-Nov2014.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/1.Google.Facebook.eBay.Amazon/Google-Large Scale Deep Learning-Jeff-Dean-CIKM-keynote-Nov2014.pdf


--------------------------------------------------------------------------------
/1.Google.Facebook.eBay.Amazon/Google-What-does-it-take-to-make-Google-work-at-scale.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/1.Google.Facebook.eBay.Amazon/Google-What-does-it-take-to-make-Google-work-at-scale.pdf


--------------------------------------------------------------------------------
/1.Google.Facebook.eBay.Amazon/amazon_dynamo_sosp2007.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/1.Google.Facebook.eBay.Amazon/amazon_dynamo_sosp2007.pdf


--------------------------------------------------------------------------------
/1.Google.Facebook.eBay.Amazon/eBay Architecture(Tony Ng) 2011- Tony NG.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/1.Google.Facebook.eBay.Amazon/eBay Architecture(Tony Ng) 2011- Tony NG.pdf


--------------------------------------------------------------------------------
/1.Google.Facebook.eBay.Amazon/eBay’s Challenges and Lessons from Growing an eCommerce Platform to Planet Scale 2009.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/1.Google.Facebook.eBay.Amazon/eBay’s Challenges and Lessons from Growing an eCommerce Platform to Planet Scale 2009.pdf


--------------------------------------------------------------------------------
/1.Google.Facebook.eBay.Amazon/ebay_2006_architecture.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/1.Google.Facebook.eBay.Amazon/ebay_2006_architecture.pdf


--------------------------------------------------------------------------------
/1.Google.Facebook.eBay.Amazon/ebay_2009_arch_Best Practices for Scaling Websites Lessons from eBay.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/1.Google.Facebook.eBay.Amazon/ebay_2009_arch_Best Practices for Scaling Websites Lessons from eBay.pdf


--------------------------------------------------------------------------------
/1.Google.Facebook.eBay.Amazon/ebay_2010_Principles and Patterns of eBay Architecture.ppt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/1.Google.Facebook.eBay.Amazon/ebay_2010_Principles and Patterns of eBay Architecture.ppt


--------------------------------------------------------------------------------
/1.Google.Facebook.eBay.Amazon/ebay_2010_RandyShoup_More Best Practices For Large Scale WebSites Lessons From EBay.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/1.Google.Facebook.eBay.Amazon/ebay_2010_RandyShoup_More Best Practices For Large Scale WebSites Lessons From EBay.pdf


--------------------------------------------------------------------------------
/1.Google.Facebook.eBay.Amazon/facebook_architecture.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/1.Google.Facebook.eBay.Amazon/facebook_architecture.pdf


--------------------------------------------------------------------------------
/1.Google.Facebook.eBay.Amazon/facebook_performance_caching-dc.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/1.Google.Facebook.eBay.Amazon/facebook_performance_caching-dc.pdf


--------------------------------------------------------------------------------
/2.微博架构/01陈波-微博Cache架构设计实践.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/2.微博架构/01陈波-微博Cache架构设计实践.pdf


--------------------------------------------------------------------------------
/2.微博架构/微博.亿级用户下的新浪微博平台架构_2014.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/2.微博架构/微博.亿级用户下的新浪微博平台架构_2014.pdf


--------------------------------------------------------------------------------
/2.微博架构/微博.大数据时代feed架构_TimYang_ArchSummit_Beijing_2014.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/2.微博架构/微博.大数据时代feed架构_TimYang_ArchSummit_Beijing_2014.pdf


--------------------------------------------------------------------------------
/2.微博架构/微博.构建可扩展的微博架构_TimYang_QCon_Beijing_2010.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/2.微博架构/微博.构建可扩展的微博架构_TimYang_QCon_Beijing_2010.pdf


--------------------------------------------------------------------------------
/2.微博架构/微博.消息系统架构演进_ArchSummit_2016.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/2.微博架构/微博.消息系统架构演进_ArchSummit_2016.pdf


--------------------------------------------------------------------------------
/2.微博架构/微博数据库那些事儿:3个变迁阶段背后的设计思想.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/2.微博架构/微博数据库那些事儿:3个变迁阶段背后的设计思想.pdf


--------------------------------------------------------------------------------
/2.微博架构/微博架构与平台安全--weimedia提供.ppt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/2.微博架构/微博架构与平台安全--weimedia提供.ppt


--------------------------------------------------------------------------------
/2.微博架构/新浪 WOT2015-“幕后英雄”数据库平台备份系统介绍v1.3-肖鹏.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/2.微博架构/新浪 WOT2015-“幕后英雄”数据库平台备份系统介绍v1.3-肖鹏.pdf


--------------------------------------------------------------------------------
/2.微博架构/新浪 fastsocket.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/2.微博架构/新浪 fastsocket.pdf


--------------------------------------------------------------------------------
/2.微博架构/新浪-SSD在新浪数据库平台优化实践.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/2.微博架构/新浪-SSD在新浪数据库平台优化实践.pdf


--------------------------------------------------------------------------------
/2.微博架构/新浪定制服务器介绍-2014.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/2.微博架构/新浪定制服务器介绍-2014.pdf


--------------------------------------------------------------------------------
/2.微博架构/新浪微博redis优化历程.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/2.微博架构/新浪微博redis优化历程.pdf


--------------------------------------------------------------------------------
/3.百度架构/架构设计的一些思考-百度首席-林仕鼎.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/3.百度架构/架构设计的一些思考-百度首席-林仕鼎.pdf


--------------------------------------------------------------------------------
/3.百度架构/百度-吴华-互联网上NLP技术及其应用.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/3.百度架构/百度-吴华-互联网上NLP技术及其应用.pdf


--------------------------------------------------------------------------------
/3.百度架构/百度.姚旭.百度个性化推荐实践.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/3.百度架构/百度.姚旭.百度个性化推荐实践.pdf


--------------------------------------------------------------------------------
/3.百度架构/百度.海量日志分析架构.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/3.百度架构/百度.海量日志分析架构.pdf


--------------------------------------------------------------------------------
/3.百度架构/百度推荐引擎实践系列(一) 策略篇.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/3.百度架构/百度推荐引擎实践系列(一) 策略篇.pdf


--------------------------------------------------------------------------------
/3.百度架构/百度网页搜索核心模块重构.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/3.百度架构/百度网页搜索核心模块重构.pdf


--------------------------------------------------------------------------------
/7.网易.技术架构/网易.open-source-cloud-db-framework.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/7.网易.技术架构/网易.open-source-cloud-db-framework.pdf


--------------------------------------------------------------------------------
/7.网易.技术架构/网易.蜂巢基于万节点kubernetes支撑大规模云应用实践.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/7.网易.技术架构/网易.蜂巢基于万节点kubernetes支撑大规模云应用实践.pdf


--------------------------------------------------------------------------------
/7.网易.技术架构/网易IM云千万级并发消息处理能力的架构设计与实践.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/7.网易.技术架构/网易IM云千万级并发消息处理能力的架构设计与实践.pdf


--------------------------------------------------------------------------------
/7.网易.技术架构/网易云.曹偲--网易云音乐.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/7.网易.技术架构/网易云.曹偲--网易云音乐.pdf


--------------------------------------------------------------------------------
/7.网易.技术架构/网易云上的第一跨境电商技术架构-谢骋超.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/7.网易.技术架构/网易云上的第一跨境电商技术架构-谢骋超.pdf


--------------------------------------------------------------------------------
/7.网易.技术架构/网易分布式数据库DDB.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/7.网易.技术架构/网易分布式数据库DDB.pdf


--------------------------------------------------------------------------------
/7.网易.技术架构/网易即时通产品白皮书.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/7.网易.技术架构/网易即时通产品白皮书.pdf


--------------------------------------------------------------------------------
/8.13-Best-Tech-Papers/4+1view-architecture.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/8.13-Best-Tech-Papers/4+1view-architecture.pdf


--------------------------------------------------------------------------------
/8.13-Best-Tech-Papers/A Field Guide to Boxology - Preliminary Classification of Architectural Styles for Software Systems.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/8.13-Best-Tech-Papers/A Field Guide to Boxology - Preliminary Classification of Architectural Styles for Software Systems.pdf


--------------------------------------------------------------------------------
/8.13-Best-Tech-Papers/An introduction_to_software_arch.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/8.13-Best-Tech-Papers/An introduction_to_software_arch.pdf


--------------------------------------------------------------------------------
/8.13-Best-Tech-Papers/DownloadDocumentFile.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/8.13-Best-Tech-Papers/DownloadDocumentFile.pdf


--------------------------------------------------------------------------------
/8.13-Best-Tech-Papers/Hints for Computer System Design - Microsoft.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/8.13-Best-Tech-Papers/Hints for Computer System Design - Microsoft.pdf


--------------------------------------------------------------------------------
/8.13-Best-Tech-Papers/Kruchten 2006 architecture 10 years.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/8.13-Best-Tech-Papers/Kruchten 2006 architecture 10 years.pdf


--------------------------------------------------------------------------------
/8.13-Best-Tech-Papers/On_the_Design_and_Development_of_Program.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/8.13-Best-Tech-Papers/On_the_Design_and_Development_of_Program.pdf


--------------------------------------------------------------------------------
/8.13-Best-Tech-Papers/Programmin_In_Large_versus_In_Small-Kron.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/8.13-Best-Tech-Papers/Programmin_In_Large_versus_In_Small-Kron.pdf


--------------------------------------------------------------------------------
/8.13-Best-Tech-Papers/Software Architecture in Inductrial Applications.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/8.13-Best-Tech-Papers/Software Architecture in Inductrial Applications.pdf


--------------------------------------------------------------------------------
/8.13-Best-Tech-Papers/The Coming-of-Age of Software Architecture Research.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/8.13-Best-Tech-Papers/The Coming-of-Age of Software Architecture Research.pdf


--------------------------------------------------------------------------------
/8.13-Best-Tech-Papers/The_Modular_Structure_of_Complex_Systems.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/8.13-Best-Tech-Papers/The_Modular_Structure_of_Complex_Systems.pdf


--------------------------------------------------------------------------------
/8.13-Best-Tech-Papers/criteria_for_modularization.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/8.13-Best-Tech-Papers/criteria_for_modularization.pdf


--------------------------------------------------------------------------------
/8.13-Best-Tech-Papers/foundation-for-the-study-of-software-arch.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/8.13-Best-Tech-Papers/foundation-for-the-study-of-software-arch.pdf


--------------------------------------------------------------------------------
/8.13-Best-Tech-Papers/modstructure.ppt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/8.13-Best-Tech-Papers/modstructure.ppt


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/A Few Billion Lines of Code Later - Using Static Analysis to Find Bugs in the Real World - ACM - 2010 (BLOC-coverity).pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/A Few Billion Lines of Code Later - Using Static Analysis to Find Bugs in the Real World - ACM - 2010 (BLOC-coverity).pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/A pragmatic view of the system architect.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/A pragmatic view of the system architect.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/Amazon Aurora - Design Considerations for High Throughput Cloud-Native Relational Databases-p1041-verbitski.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/Amazon Aurora - Design Considerations for High Throughput Cloud-Native Relational Databases-p1041-verbitski.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/Availability in Globally Distributed Storage Systems.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/Availability in Globally Distributed Storage Systems.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/CIDR15_Paper16.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/CIDR15_Paper16.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/Canopy An End-to-End Performance Tracing And Analysis System-sosp17-final14.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/Canopy An End-to-End Performance Tracing And Analysis System-sosp17-final14.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/Design to deployment at Google.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/Design to deployment at Google.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/EntrepreneurialInnovationGoogle.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/EntrepreneurialInnovationGoogle.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/FOX_Brewer_99-Harvest_Yield_and_Scalable_Tolerant_Systems.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/FOX_Brewer_99-Harvest_Yield_and_Scalable_Tolerant_Systems.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/Frederick_Brooks_87-No_Silver_Bullet_Essence_and_Accidents_of_Software_Engineering.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/Frederick_Brooks_87-No_Silver_Bullet_Essence_and_Accidents_of_Software_Engineering.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/Hints for computer system design.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/Hints for computer system design.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/Kafka.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/Kafka.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/Lamport_82-The_Byzantine_Generals_Problem.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/Lamport_82-The_Byzantine_Generals_Problem.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/Large-Scale Automated Refactoring Using ClangMR.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/Large-Scale Automated Refactoring Using ClangMR.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/Life-Beyond-Distributed-Transactions.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/Life-Beyond-Distributed-Transactions.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/Online Asynchronous Schema Change in F1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/Online Asynchronous Schema Change in F1.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/Searching for Build Debt - Experiences Managing Technical Debt at Google.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/Searching for Build Debt - Experiences Managing Technical Debt at Google.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/Security Keys - Practical Cryptographic Second Factors for the Modern Web.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/Security Keys - Practical Cryptographic Second Factors for the Modern Web.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/Spanner Google Globally-Distributed Database.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/Spanner Google Globally-Distributed Database.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/Still All on One Server - Perforce at Scale.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/Still All on One Server - Perforce at Scale.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/UCB-lattice-tr.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/UCB-lattice-tr.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/Unreliable Failure Detectors for Reliable Distributed Systems-p225-chandra.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/Unreliable Failure Detectors for Reliable Distributed Systems-p225-chandra.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/Zab High-performance broadcast for primary-backup systems.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/Zab High-performance broadcast for primary-backup systems.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/amazon-dynamo-sosp2007.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/amazon-dynamo-sosp2007.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/bigballofmud.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/bigballofmud.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/bigtable-osdi06.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/bigtable-osdi06.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/blast.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/blast.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/borg.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/borg.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/chubby-osdi06.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/chubby-osdi06.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/dapper.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/dapper.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/design-container-based-systems.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/design-container-based-systems.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/eurosys07.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/eurosys07.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/favorite-technical-papers.html:
--------------------------------------------------------------------------------
  1 | <!doctype html><html lang=en-us>
  2 | <head>
  3 | <meta charset=utf-8>
  4 | <meta http-equiv=x-ua-compatible content="IE=edge,chrome=1">
  5 | <title>Some of my favorite technical papers. | Irrational Exuberance</title>
  6 | <meta name=viewport content="width=device-width,minimum-scale=1">
  7 | <meta name=description content="I&rsquo;ve long been a fan of hosting paper reading groups, where a group of folks sit down and talk about interesting technical papers. One of the first steps to do that is identifying some papers worth chatting about, and here is a list of some papers I&rsquo;ve seen lead to excellent discussions!">
  8 | <meta name=generator content="Hugo 0.89.4">
  9 | <meta name=ROBOTS content="INDEX, FOLLOW">
 10 | <link rel=stylesheet href=/ananke/dist/main.css_5c99d70a7725bacd4c701e995b969fea.css>
 11 | <link rel=stylesheet href=/static/pygments.css>
 12 | <meta property="og:title" content="Some of my favorite technical papers.">
 13 | <meta property="og:description" content="I&rsquo;ve long been a fan of hosting paper reading groups, where a group of folks sit down and talk about interesting technical papers. One of the first steps to do that is identifying some papers worth chatting about, and here is a list of some papers I&rsquo;ve seen lead to excellent discussions!">
 14 | <meta property="og:type" content="article">
 15 | <meta property="og:url" content="https://lethain.com/some-of-my-favorite-technical-papers/"><meta property="og:image" content="https://lethain.com/static/author.png"><meta property="article:section" content="posts">
 16 | <meta property="article:published_time" content="2018-04-07T06:00:00-07:00">
 17 | <meta property="article:modified_time" content="2018-04-07T06:00:00-07:00">
 18 | <meta itemprop=name content="Some of my favorite technical papers.">
 19 | <meta itemprop=description content="I&rsquo;ve long been a fan of hosting paper reading groups, where a group of folks sit down and talk about interesting technical papers. One of the first steps to do that is identifying some papers worth chatting about, and here is a list of some papers I&rsquo;ve seen lead to excellent discussions!"><meta itemprop=datePublished content="2018-04-07T06:00:00-07:00">
 20 | <meta itemprop=dateModified content="2018-04-07T06:00:00-07:00">
 21 | <meta itemprop=wordCount content="5822"><meta itemprop=image content="https://lethain.com/static/author.png">
 22 | <meta itemprop=keywords content="infrastructure,software-engineering,"><meta name=twitter:card content="summary">
 23 | <meta name=twitter:image content="https://lethain.com/static/author.png">
 24 | <meta name=twitter:title content="Some of my favorite technical papers.">
 25 | <meta name=twitter:description content="I&rsquo;ve long been a fan of hosting paper reading groups, where a group of folks sit down and talk about interesting technical papers. One of the first steps to do that is identifying some papers worth chatting about, and here is a list of some papers I&rsquo;ve seen lead to excellent discussions!">
 26 | <script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga('create','UA-96609067-1','auto'),ga('send','pageview'))</script>
 27 | <script async src=https://www.google-analytics.com/analytics.js></script>
 28 | </head>
 29 | <body class="ma0 avenir bg-white production">
 30 | <header>
 31 | <div class=bg-white>
 32 | <nav class="pv3 ph3 ph4-ns" role=navigation>
 33 | <div class="flex-l justify-between items-center center">
 34 | <a href=/ class="f3 fw2 no-underline black-90 dib">
 35 | Irrational Exuberance
 36 | </a>
 37 | <div class="flex-l items-center">
 38 | <ul class="pl0 mr3">
 39 | <li class="list f5 f4-ns fw4 dib pr3">
 40 | <a class="no-underline black-90" href=/featured/ title="Popular page">
 41 | Popular
 42 | </a>
 43 | </li>
 44 | <li class="list f5 f4-ns fw4 dib pr3">
 45 | <a class="no-underline black-90" href=/tags/ title="Tags page">
 46 | Tags
 47 | </a>
 48 | </li>
 49 | <li class="list f5 f4-ns fw4 dib pr3">
 50 | <a class="no-underline black-90" href=/newsletter/ title="Newsletter page">
 51 | Newsletter
 52 | </a>
 53 | </li>
 54 | <li class="list f5 f4-ns fw4 dib pr3">
 55 | <a class="no-underline black-90" href=/feeds.xml title="RSS page">
 56 | RSS
 57 | </a>
 58 | </li>
 59 | <li class="list f5 f4-ns fw4 dib pr3">
 60 | <a class="no-underline black-90" href=/about title="About page">
 61 | About
 62 | </a>
 63 | </li>
 64 | </ul>
 65 | </div>
 66 | </div>
 67 | </nav>
 68 | </div>
 69 | </header>
 70 | <main class=pb7 role=main>
 71 | <article class="flex-l flex-wrap justify-between mw8 center ph3">
 72 | <header class="mt4 w-100">
 73 | <h1 class="f1 athelas mt3 mb1">Some of my favorite technical papers.</h1>
 74 | <div class=mt4>
 75 | <a href=/tags/infrastructure class="link f5 mid-gray no-underline sans-serif">
 76 | infrastructure (34),
 77 | </a>
 78 | <a href=/tags/software-engineering class="link f5 mid-gray no-underline sans-serif">
 79 | software-engineering (15)
 80 | </a>
 81 | </div>
 82 | </header>
 83 | <div class="nested-copy-line-height lh-copy serif f5 nested-links nested-img mid-gray pr4-l w-two-thirds-l"><p>I&rsquo;ve long been a fan of <a href=/hosting-paper-reading-group/>hosting paper reading groups</a>,
 84 | where a group of folks sit down and talk about interesting technical papers.
 85 | One of the first steps to do that is identifying some papers worth chatting about,
 86 | and here is a list of some papers I&rsquo;ve seen lead to excellent discussions!</p>
 87 | <h3 id=dynamo-amazons-highly-available-key-value-storehttpss3amazonawscomsystemsandpaperspapersamazon-dynamo-sosp2007pdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/amazon-dynamo-sosp2007.pdf>Dynamo: Amazon&rsquo;s Highly Available Key-value Store</a></h3>
 88 | <p>Reading only the abstract, you&rsquo;d be forgiven for not being overly excited about the Dynamo paper: This paper presents the design and implementation of Dynamo, a highly available key-value storage system that some of Amazon&rsquo;s core services use to provide an always-on experience. To achieve this level of availability, Dynamo sacrifices consistency under certain failure scenarios. It makes extensive use of object versioning and application-assisted conflict resolution in a manner that provides a novel interface for developers to use.</p>
 89 | <p>That said, this is in some senses &ldquo;the&rdquo; classic modern systems paper. It has happened more than once that an engineer I&rsquo;ve met has only read a single systems paper in their career, and that paper was the Dynamo paper. This paper is a phenomenal introduction to eventual consistency, coordinating state across distributed storage, reconciling data as it diverges across replicas and much more.</p>
 90 | <h3 id=hints-for-computer-system-designhttpss3amazonawscomsystemsandpaperspapersacrobat-17pdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/acrobat-17.pdf>Hints for Computer System Design</a></h3>
 91 | <p><a href=https://en.wikipedia.org/wiki/Butler_Lampson>Butler Lampson</a> is an ACM Turning Award winner (among other awards), and worked at the Xerox PARC. This paper concisely summarizes many of his ideas around system design, and is a great read.</p>
 92 | <p>In his words:</p>
 93 | <blockquote>
 94 | <p>Studying the design and implementation of a number of computer has led to some general hints for system design. They are described here and illustrated by many examples, ranging from hardware such as the Alto and the Dorado to application programs such as Bravo and Star.</p>
 95 | </blockquote>
 96 | <p>This paper itself acknowledges that it doesn&rsquo;t aim to break any new ground, but it&rsquo;s a phenomenal overview.</p>
 97 | <h3 id=big-ball-of-mudhttpss3amazonawscomsystemsandpaperspapersbigballofmudpdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/bigballofmud.pdf>Big Ball of Mud</a></h3>
 98 | <p>A reaction against exuberant papers about grandiose design patterns, this paper labels the most frequent architectural pattern as the Big Ball of Mud, and explores why elegant initial designs rarely remain intact as a system goes from concept to solution.</p>
 99 | <p>From the abstract:</p>
100 | <blockquote>
101 | <p>While much attention has been focused on high-level software architectural patterns, what is, in effect, he de-facto standard software architecture is seldom discussed. This paper examines this mostfrequently deployed of software architectures: the BIG BALL OF MUD. A BIG BALL OF MUD is a casually, even haphazardly, structured system. Its organization, if one can call it that, is dictated more by expediency than design. Yet, its enduring popularity cannot merely be indicative of a general disregard for architecture.</p>
102 | </blockquote>
103 | <p>Although humor is certainly infuses this paper, it&rsquo;s also true that software design is remarkably poor, with very few systems having a design phase and few of those resembling the initial design (and documentation is rarely updated to reflect later decisions), making this an important topic for consideration.</p>
104 | <h3 id=the-google-file-systemhttpss3amazonawscomsystemsandpaperspapersgfspdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/gfs.pdf>The Google File System</a></h3>
105 | <p>From the abstract:</p>
106 | <blockquote>
107 | <p>The file system has successfully met our storage needs. It is widely deployed within Google as the storage platform for the generation and processing of data used by our service as well as research and development efforts that require large data sets. The largest cluster to date provides hundreds of terabytes of storage across thousands of disks on over a thousand machines, and it is concurrently accessed by hundreds of clients.</p>
108 | </blockquote>
109 | <blockquote>
110 | <p>In this paper, we present file system interface extensions designed to support distributed applications, discuss many aspects of our design, and report measurements from both micro-benchmarks and real world use. Google has done something fairly remarkable in defining the technical themes in Silicon Valley and, at least debatably across the technology industry, for more than the last decade (only recently joined to a lesser extent by Facebook and Twitter as they reach significant scale), and it&rsquo;s done that largely through their remarkable technical papers. The Google File System (GFS) paper is one of the early entries in that strategy, and is also remarkable as the paper which largely inspired the Hadoop File System (HFS).</p>
111 | </blockquote>
112 | <h3 id=on-designing-and-deploying-internet-scale-serviceshttpss3amazonawscomsystemsandpaperspapershamiltonpdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/hamilton.pdf>On Designing and Deploying Internet-Scale Services</a></h3>
113 | <p>We don&rsquo;t always remember to consider Microsoft as one of the largest internet technology players, although increasingly Azure is making that comparison obvious and immediate, and it certainly wasn&rsquo;t a name that necessarily came to mind in 2007. This excellent paper from James Hamilton, exploring tips on building operable systems at extremely large scale, makes it clear that not considering Microsoft as a large internet player was a lapse in our collective judgement.</p>
114 | <p>From the abstract:</p>
115 | <blockquote>
116 | <p>The system-to-administrator ratio is commonly used as a rough metric to understand administrative costs in high-scale services. With smaller, less automated services this ratio can be as low as 2:1, whereas on industry leading, highly automated services, we&rsquo;ve seen ratios as high as 2,500:1. Within Microsoft services, Autopilot [1] is often cited as the magic behind the success of the Windows Live Search team in achieving high system-to-administrator ratios. While auto-administration is important, the most important factor is actually the service itself. Is the service efficient to automate? Is it what we refer to more generally as operations-friendly? Services that are operations friendly require little human intervention, and both detect and recover from all but the most obscure failures without administrative intervention. This paper summarizes the best practices accumulated over many years in scaling some of the largest services at MSN and Windows Live.</p>
117 | </blockquote>
118 | <p>This is a true checklist of how to design and evaluate large scale systems (almost like <a href=https://12factor.net/>The Twelve Factor App</a> wants to be for a checklist for operable applications).</p>
119 | <h3 id=cap-twelve-years-later-how-the-rules-have-changedhttpswwwinfoqcomarticlescap-twelve-years-later-how-the-rules-have-changed><a href=https://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed>CAP Twelve Years Later: How the Rules Have Changed</a></h3>
120 | <p>Eric Brewer posited the <a href=https://en.wikipedia.org/wiki/CAP_theorem>CAP theorem</a> in the early 2000s, and twelve years later he wrote this excellent overview and review of CAP (which argues distributed systems have to pick between either availability or consistency during partitions), in part because:</p>
121 | <blockquote>
122 | <p>In the decade since its introduction, designers and researchers have used (and sometimes abused) the CAP theorem as a reason to explore a wide variety of novel distributed systems. The NoSQL movement also has applied it as an argument against traditional databases. CAP is interesting because there is not a &ldquo;seminal CAP paper&rdquo;, but this article serves well in such a paper&rsquo;s stead. These ideas are expanded on in the <a href=/papers/e44aff70-e88f-4c43-9c4d-0feaa01d69da/>Harvest and Yield paper</a>.</p>
123 | </blockquote>
124 | <h3 id=harvest-yield-and-scalable-tolerant-systemshttpss3amazonawscomsystemsandpaperspapersfox_brewer_99-harvest_yield_and_scalable_tolerant_systemspdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/FOX_Brewer_99-Harvest_Yield_and_Scalable_Tolerant_Systems.pdf>Harvest, Yield, and Scalable Tolerant Systems</a></h3>
125 | <p>This paper builds on the concepts from <a href=/papers/883d1956-bb05-464c-b02d-5a64f269c810/>CAP Twelve Years Later</a>, introducing the concepts of harvest and yield to add more nuance to the AP vs CP discussion:</p>
126 | <blockquote>
127 | <p>The cost of reconciling consistency and state management with high availability is highly magnified by the unprecedented scale and robustness requirements of today&rsquo;s Internet applications. We propose two strategies for improving overall availability using simple mechanisms that scale over large applications whose output behavior tolerates graceful degradation. We characterize this degradation in terms of harvest and yield, and map it directly onto engineering mechanisms that enhance availability by improving fault isolation, and in some cases also simplify programming. By collecting examples of related techniques in the literature and illustrating the surprising range of applications that can benefit from these approaches, we hope to motivate a broader research program in this area.</p>
128 | </blockquote>
129 | <p>The harvest and yield concepts are particularly interesting because they are both self-evidence and very rarely explicitly used, instead distributed systems continue to fail in mostly undefined ways. Hopefully as we keep rereading this paper, we&rsquo;ll also start to incorporate it&rsquo;s design concepts into the systems we subsequently build!</p>
130 | <h3 id=mapreduce-simplified-data-processing-on-large-clustershttpss3amazonawscomsystemsandpaperspapersmapreducepdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/mapreduce.pdf>MapReduce: Simplified Data Processing on Large Clusters</a></h3>
131 | <p>The MapReduce paper is an excellent example of an idea which has been so successful that it now seems self-evident. The idea of applying the concepts of functional programming at scale became a clarion call, provoking a shift from data warehousing to a new paradigm for data analysis:</p>
132 | <blockquote>
133 | <p>MapReduce is a programming model and an associated implementation for processing and generating large data sets. Users specify a map function that processes a key/value pair to generate a set of intermediate key/value pairs, and a reduce function that merges all intermediate values associated with the same intermediate key. Many real world tasks are expressible in this model, as shown in the paper.</p>
134 | </blockquote>
135 | <p>Much like <a href=https://systemsandpapers.com/papers/4a7b2df0-51d2-4cf2-9c04-12a59d8a0e0c/>Google File System</a> paper was an inspiration for the Hadoop File System, this paper was itself a major inspiration for Hadoop.</p>
136 | <h3 id=dapper-a-large-scale-distributed-systems-tracing-infrastructurehttpss3amazonawscomsystemsandpaperspapersdapperpdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/dapper.pdf>Dapper, a Large-Scale Distributed Systems Tracing Infrastructure</a></h3>
137 | <p>The Dapper paper introduces a performant approach to tracing requests across many services, which has become increasingly relevant as more companies refactor core monolithic applications into dozens or hundreds of micro-services.</p>
138 | <p>From the abstract:</p>
139 | <blockquote>
140 | <p>Here we introduce the design of Dapper, Google&rsquo;s production distributed systems tracing infrastructure, and describe how our design goals of low overhead, application-level transparency, and ubiquitous deployment on a very large scale system were met. Dapper shares conceptual similarities with other tracing systems, particularly Magpie and X-Trace, but certain design choices were made that have been key to its success in our environment, such as the use of sampling and restricting the instrumentation to a rather small number of common libraries.</p>
141 | </blockquote>
142 | <p>The ideas from Dapper have since made their way into open source, especially in <a href=http://zipkin.io/>Zipkin</a> and <a href=http://opentracing.io/>OpenTracing</a>.</p>
143 | <h3 id=kafka-a-distributed-messaging-system-for-log-processinghttpss3amazonawscomsystemsandpaperspaperskafkapdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/Kafka.pdf>Kafka: a Distributed Messaging System for Log Processing</a></h3>
144 | <p><a href=https://kafka.apache.org/>Apache Kafka</a> has become a core piece of infrastructure for many internet companies. It&rsquo;s versatility lends it to many roles, serving as the ingress point to &ldquo;data land&rdquo; for some, a durable queue for others, and that&rsquo;s just scratching the surface.</p>
145 | <p>Not only a useful addition to your toolkit, Kafka is also a beautifully designed system:</p>
146 | <blockquote>
147 | <p>Log processing has become a critical component of the data pipeline for consumer internet companies. We introduce Kafka, a distributed messaging system that we developed for collecting and delivering high volumes of log data with low latency. Our system incorporates ideas from existing log aggregators and messaging systems, and is suitable for both offline and online message consumption. We made quite a few unconventional yet practical design choices in Kafka to make our system efficient and scalable. Our experimental results show that Kafka has superior performance when compared to two popular messaging systems. We have been using Kafka in production for some time and it is processing hundreds of gigabytes of new data each day.</p>
148 | </blockquote>
149 | <p>In particular, Kafka&rsquo;s partitions do a phenomenal job of forcing application designers to make explicit tradeoffs about trading off performance for predictable message ordering.</p>
150 | <h3 id=wormhole-reliable-pub-sub-to-support-geo-replicated-internet-serviceshttpss3amazonawscomsystemsandpaperspaperswormholepdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/wormhole.pdf>Wormhole: Reliable Pub-Sub to Support Geo-replicated Internet Services</a></h3>
151 | <p>In many ways similar to <a href=/papers/910e84cb-337c-4569-805f-6df67b23c443/>Kafka</a>, Facebook&rsquo;s Wormhole is another highly scalable approach to messaging:</p>
152 | <blockquote>
153 | <p>Wormhole is a publish-subscribe (pub-sub) system developed for use within Facebook&rsquo;s geographically replicated datacenters. It is used to reliably replicate changes among several Facebook services including TAO, Graph Search and Memcache. This paper describes the design and implementation of Wormhole as well as the operational challenges of scaling the system to support the multiple data storage systems deployed at Facebook. Our production deployment of Wormhole transfers over 35 GBytes/sec in steady state (50 millions messages/sec or 5 trillion messages/day) across all deployments with bursts up to 200 GBytes/sec during failure recovery. We demonstrate that Wormhole publishes updates with low latency to subscribers that can fail or consume updates at varying rates, without compromising efficiency.</p>
154 | </blockquote>
155 | <p>In particular, note the approach to supporting lagging consumers without sacrificing overall system throughput.</p>
156 | <h3 id=borg-omega-and-kuberneteshttpqueueacmorgdetailcfmid2898444><a href="http://queue.acm.org/detail.cfm?id=2898444">Borg, Omega, and Kubernetes</a></h3>
157 | <p>While the individual papers for each of Google&rsquo;s orchestration systems (Borg, Omega and Kubernetes) are worth reading in their own right, this article is an excellent overview of the three:</p>
158 | <blockquote>
159 | <p>Though widespread interest in software containers is a relatively recent phenomenon, at Google we have been managing Linux containers at scale for more than ten years and built three different container-management systems in that time. Each system was heavily influenced by its predecessors, even though they were developed for different reasons. This article describes the lessons we&rsquo;ve learned from developing and operating them.</p>
160 | </blockquote>
161 | <p>Fortunately, not all orchestration happens under Google&rsquo;s aegis, and Mesos' alternative two-layer scheduling architecture is a fascinating read as well.</p>
162 | <h3 id=large-scale-cluster-management-at-google-with-borghttpss3amazonawscomsystemsandpaperspapersborgpdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/borg.pdf>Large-scale cluster management at Google with Borg</a></h3>
163 | <p>Borg has been orchestrating much of Google&rsquo;s infrastructure for quite some time (significantly predating Omega, although fascinatingly the Omega paper predates the Borg paper by two years):</p>
164 | <blockquote>
165 | <p>Google&rsquo;s Borg system is a cluster manager that runs hundreds of thousands of jobs, from many thousands of different applications, across a number of clusters each with up to tens of thousands of machines.</p>
166 | </blockquote>
167 | <p>This paper takes a look at Borg&rsquo;s centralized scheduling model, which was both effective and efficient, although it became increasingly challenging to modify and scale over time, inspiring both Omega and Kubernetes within Google (the former to optimistically replace it, and the later seemingly to commercialize their learnings, or at least prevent Mesos from capturing too much mindshare).</p>
168 | <h3 id=omega-flexible-scalable-schedulers-for-large-compute-clustershttpss3amazonawscomsystemsandpaperspapersomegapdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/omega.pdf>Omega: flexible, scalable schedulers for large compute clusters</a></h3>
169 | <p>Omega is, among many other things, an excellent example of the <a href=http://catb.org/jargon/html/S/second-system-effect.html>second-system effect</a>, where an attempt to replace a complex existing system with something far more elegant ends up being more challenging than anticipated.</p>
170 | <p>In particular, Omega is a reaction against the realities of extending the aging Borg system:</p>
171 | <blockquote>
172 | <p>Increasing scale and the need for rapid response to changing requirements are hard to meet with current monolithic cluster scheduler architectures. This restricts the rate at which new features can be deployed, decreases efficiency and utilization, and will eventually limit cluster growth. We present a novel approach to address these needs using parallelism, shared state, and lock-free optimistic concurrency control.</p>
173 | </blockquote>
174 | <p>Perhaps also an example of <a href=https://www.jwz.org/doc/worse-is-better.html>worse is better</a> once again taking the day.</p>
175 | <h3 id=mesos-a-platform-for-fine-grained-resource-sharing-in-the-data-centerhttpss3amazonawscomsystemsandpaperspapersmesospdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/mesos.pdf>Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center</a></h3>
176 | <p>This paper describes the design of <a href=http://mesos.apache.org/>Apache Mesos</a>, in particular its distinctive two-level scheduler:</p>
177 | <blockquote>
178 | <p>We present Mesos, a platform for sharing commodity clusters between multiple diverse cluster computing frameworks, such as Hadoop and MPI. Sharing improves cluster utilization and avoids per-framework data replication. Mesos shares resources in a fine-grained manner, allowing frameworks to achieve data locality by taking turns reading data stored on each machine. To support the sophisticated schedulers of today&rsquo;s frameworks, Mesos introduces a distributed two-level scheduling mechanism called resource offers. Mesos decides how many resources to offer each framework, while frameworks decide which resources to accept and which computations to run on them. Our results show that Mesos can achieve near-optimal data locality when sharing the cluster among diverse frameworks, can scale to 50,000 (emulated) nodes, and is resilient to failures.</p>
179 | </blockquote>
180 | <p>Used heavily by Twitter and Apple, Mesos was for some time the only open-source general scheduler with significant adoption, and is now in a fascinating competition for mindshare with Kubernetes.</p>
181 | <h3 id=design-patterns-for-container-based-distributed-systemshttpss3amazonawscomsystemsandpaperspapersdesign-container-based-systemspdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/design-container-based-systems.pdf>Design patterns for container-based distributed systems</a></h3>
182 | <p>The move to containers-based deployment and orchestration has introduced a whole new set of vocabulary like sidecars and adapters, and this paper provides a survey of the patterns which have evolved over the past decade as microservices and containers have become increasingly prominent infrastructure components:</p>
183 | <blockquote>
184 | <p>In the late 1980s and early 1990s, object-oriented programming revolutionized software development, popularizing the approach of building of applications as collections of modular components. Today we are seeing a similar revolution in distributed system development, with the increasing popularity of microservice architectures built from containerized software components. Containers are particularly well-suited as the fundamental object in distributed systems by virtue of the walls they erect at the container boundary. As this architectural style matures, we are seeing the emergence of design patterns, much as we did for object-oriented programs, and for the same reason – thinking in terms of objects (or containers) abstracts away the low-level details of code, eventually revealing higher-level patterns that are common to a variety of applications and algorithms.</p>
185 | </blockquote>
186 | <p>The &ldquo;sidecar&rdquo; term in particular likely originated in <a href=http://techblog.netflix.com/2014/11/prana-sidecar-for-your-netflix-paas.html>this blog post from Netflix</a>, which is a worthy read in its own right.</p>
187 | <h3 id=raft-in-search-of-an-understandable-consensus-algorithmhttpss3amazonawscomsystemsandpaperspapersraftpdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/raft.pdf>Raft: In Search of an Understandable Consensus Algorithm</a></h3>
188 | <p>Where we often see the second-system effect where a second system becomes bloated and complex relative to a simple initial system, the roles are reversed in the case of Paxos and Raft. Whereas Paxos is often considered beyond human comprehension, Raft is a fairly easy read:</p>
189 | <blockquote>
190 | <p>Raft is a consensus algorithm for managing a replicated log. It produces a result equivalent to (multi-)Paxos, and it is as efficient as Paxos, but its structure is different from Paxos; this makes Raft more understandable than Paxos and also provides a better foundation for building practical systems. In order to enhance understandability, Raft separates the key elements of consensus, such as leader election, log replication, and safety, and it enforces a stronger degree of coherency to reduce the number of states that must be considered. Results from a user study demonstrate that Raft is easier for students to learn than Paxos. Raft also includes a new mechanism for changing the cluster membership, which uses overlapping majorities to guarantee safety.</p>
191 | </blockquote>
192 | <p>Raft is used by <a href=https://github.com/coreos/etcd>etcd</a> and <a href=https://www.influxdata.com/>influxdb</a> among many others.</p>
193 | <h3 id=paxos-made-simplehttpss3amazonawscomsystemsandpaperspaperspaxos-made-simplepdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/paxos-made-simple.pdf>Paxos Made Simple</a></h3>
194 | <p>One of Leslie Lamport&rsquo;s numerous influential papers, Paxos Made Simple is a gem both in explaining the notoriously complex Paxos algorithm, and because even at it&rsquo;s simplest, Paxos isn&rsquo;t really that simple:</p>
195 | <blockquote>
196 | <p>The Paxos algorithm for implementing a fault-tolerant distributed system has been regarded as difficult to understand, perhaps because the original presentation was Greek to many readers. In fact, it is among the simplest and most obvious of distributed algorithms. At its heart is a consensus algorithmthe synod algorithm. The next section shows that this consensus algorithm follows almost unavoidably from the properties we want it to satisfy. The last section explains the complete Paxos algorithm, which is obtained by the straightforward application of consensus to the state machine approach for building a distributed systeman approach that should be well-known, since it is the subject of what is probably the most often-cited article on the theory of distributed systems.</p>
197 | </blockquote>
198 | <p>Paxos itself remains a deeply innovative concept, and is the algorithm behind Google&rsquo;s Chubby and <a href=https://zookeeper.apache.org/>Apache Zookeeper</a>, among many others.</p>
199 | <h3 id=swim-scalable-weakly-consistent-infection-style-process-group-membership-protocolhttpss3amazonawscomsystemsandpaperspapersswimpdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/swim.pdf>SWIM: Scalable Weakly-consistent Infection-style Process Group Membership Protocol</a></h3>
200 | <p>The majority of consensus algorithms focus on being <a href=/papers/883d1956-bb05-464c-b02d-5a64f269c810/>consistent during partition</a>, SWIM goes the other direction and focuses on availability:</p>
201 | <blockquote>
202 | <p>Several distributed peer-to-peer applications require weakly-consistent knowledge of process group membership information at all participating processes. SWIM is a generic software module that offers this service for large scale process groups. The SWIM effort is motivated by the unscalability of traditional heart-beating protocols, which either impose network loads that grow quadratically with group size, or compromise response times or false positive frequency w.r.t. detecting process crashes. This paper reports on the design, implementation and performance of the SWIM sub-system on a large cluster of commodity PCs.</p>
203 | </blockquote>
204 | <p>SWIM is used in Hashicorp&rsquo;s software, as well as <a href=http://uber.github.io/ringpop/>Uber&rsquo;s Ringpop</a>.</p>
205 | <h3 id=the-byzantine-generals-problemhttpss3amazonawscomsystemsandpaperspaperslamport_82-the_byzantine_generals_problempdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/Lamport_82-The_Byzantine_Generals_Problem.pdf>The Byzantine Generals Problem</a></h3>
206 | <p>Another classic Leslie Lamport paper on consensus, the Byzantine Generals Problem explores how to deal with distributed actors which intentionally or accidentally submit incorrect messages:</p>
207 | <blockquote>
208 | <p>Reliable computer systems must handle malfunctioning components that give conflicting information
209 | to different parts of the system. This situation can be expressed abstractly in terms of a group of
210 | generals of the Byzantine army camped with their troops around an enemy city. Communicating only
211 | by messenger, the generals must agree upon a common battle plan. However, one or more of them
212 | may be traitors who will try to confuse the others. The problem is to find an algorithm to ensure that
213 | the loyal generals will reach agreement. It is shown that, using only oral messages, this problem is
214 | solvable if and only if more than two-thirds of the generals are loyal; so a single traitor can confound
215 | two loyal generals. With unforgeable written messages, the problem is solvable for any number of
216 | generals and possible traitors. Applications of the solutions to reliable computer systems are then
217 | discussed.</p>
218 | </blockquote>
219 | <p>The paper is mostly focused on the formal proof, a bit of a theme from Lamport who developed <a href=https://en.wikipedia.org/wiki/TLA%2B>TLA+</a> to make formal proving easier, but is also a useful reminder that we still tend to assume our components will behave reliably and honestly, and perhaps we shouldn&rsquo;t!</p>
220 | <h3 id=out-of-the-tar-pithttpss3amazonawscomsystemsandpaperspapersoutofthetarpitpdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/outofthetarpit.pdf>Out of the Tar Pit</a></h3>
221 | <p>Out of the Tar Pit bemoans unnecessary complexity in software, and proposes that that functional programming and better data modeling can help us reduce accidental complexity (arguing that most unnecessary complexity comes from state).</p>
222 | <p>From the abstract:</p>
223 | <blockquote>
224 | <p>Complexity is the single major difficulty in the successful development of large-scale software systems. Following Brooks we distinguish accidental from essential difficulty, but disagree with his premise that most complexity remaining in contemporary systems is essential. We identify common causes of complexity and discuss general approaches which can be taken to eliminate them where they are accidental in nature. To make things more concrete we then give an outline for a potential complexity-minimizing approach based on functional programming and Codd&rsquo;s relational model of data.</p>
225 | </blockquote>
226 | <p>Certainly a good read, although reading a decade later it&rsquo;s fascinating to see that neither of those approaches have particularly taken off, and instead the closest &ldquo;universal&rdquo; approach to reducing complexity seems to be the move to numerous mostly stateless services, which is perhaps more a reduction of <em>local complexity</em>, at the expense of larger systemic complexity, whose maintenance is then delegated to more specialized systems engineers.</p>
227 | <p>(This is yet another paper that makes me wish <a href=https://en.wikipedia.org/wiki/TLA%2B>TLA+</a> felt natural enough to be a commonly adopted tool.)</p>
228 | <h3 id=the-chubby-lock-service-for-loosely-coupled-distributed-systemshttpss3amazonawscomsystemsandpaperspaperschubby-osdi06pdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/chubby-osdi06.pdf>The Chubby lock service for loosely-coupled distributed systems</a></h3>
229 | <p>Distributed systems are hard enough without having to frequently reimplement Paxos or Raft, and the model proposed by Chubby is to implement consensus once in a shared service, which will allow systems built upon it to share in the resilience of distribution by following greatly simplified patterns.</p>
230 | <p>From the abstract:</p>
231 | <blockquote>
232 | <p>We describe our experiences with the Chubby lock service, which is intended to provide coarse-grained locking as well as reliable (though low-volume) storage for a loosely-coupled distributed system. Chubby provides an interface much like a distributed file system with advisory locks, but the design emphasis is on availability and reliability, as opposed to high performance. Many instances of the service have been used for over a year, with several of them each handling a few tens of thousands of clients concurrently. The paper describes the initial design and expected use, compares it with actual use, and explains how the design had to be modified to accommodate the differences.</p>
233 | </blockquote>
234 | <p>In the open source world, the way <a href=https://zookeeper.apache.org/>Zookeeper</a> is used in projects like Kafka and Mesos has the same role as Chubby.</p>
235 | <h3 id=bigtable-a-distributed-storage-system-for-structured-datahttpsstaticgoogleusercontentcommediaresearchgooglecomenarchivebigtable-osdi06pdf><a href=https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf>Bigtable: A Distributed Storage System for Structured Data</a></h3>
236 | <p>One of Google&rsquo;s preeminent papers and technologies is Bigtable, which was an early (early in the internet era, anyway) NoSQL datastore, operating at extremely high scale and built on top of Chubby.</p>
237 | <blockquote>
238 | <p>Bigtable is a distributed storage system for managing structured data that is designed to scale to a very large size: petabytes of data across thousands of commodity servers. Many projects at Google store data in Bigtable, including web indexing, Google Earth, and Google Finance. These applications place very different demands on Bigtable, both in terms of data size (from URLs to web pages to satellite imagery) and latency requirements (from backend bulk processing to real-time data serving). Despite these varied demands, Bigtable has successfully provided a flexible, high-performance solution for all of these Google products. In this paper we describe the simple data model provided by Bigtable, which gives clients dynamic control over data layout and format, and we describe the design and implementation of Bigtable.</p>
239 | </blockquote>
240 | <p>From the SSTable design to the bloom filters, Cassandra and inherits significantly from the Bigtable paper, and is probably rightfully considered a merging of the Dynamo and Bigtable papers.</p>
241 | <h3 id=spanner-googles-globally-distributed-databasehttpsstaticgoogleusercontentcommediaresearchgooglecomenpubsarchive44915pdf><a href=https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44915.pdf>Spanner: Google&rsquo;s Globally-Distributed Database</a></h3>
242 | <p>Where many early NoSQL storage systems traded eventual consistency for increased resiliency, building on top of eventually consistent systems can be harrowing. Spanner represents an approach from Google to offering both strong consistency and distributed reliability, relying in part on a novel approach to managing time.</p>
243 | <blockquote>
244 | <p>Spanner is Google&rsquo;s scalable, multi-version, globally distributed, and synchronously-replicated database. It is the first system to distribute data at global scale and support externally-consistent distributed transactions. This paper describes how Spanner is structured, its feature set, the rationale underlying various design decisions, and a novel time API that exposes clock uncertainty. This API and its implementation are critical to supporting external consistency and a variety of powerful features: nonblocking reads in the past, lock-free read-only transactions, and atomic schema changes, across all of Spanner.</p>
245 | </blockquote>
246 | <p>We haven&rsquo;t seen any open-source Spanner equivalents yet, but I imagine we&rsquo;ll start seeing them in 2018.</p>
247 | <h3 id=security-keys-practical-cryptographic-second-factors-for-the-modern-webhttpsstaticgoogleusercontentcommediaresearchgooglecomenpubsarchive45409pdf><a href=https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45409.pdf>Security Keys: Practical Cryptographic Second Factors for the Modern Web</a></h3>
248 | <p><a href=https://en.wikipedia.org/wiki/YubiKey>Security keys like the YubiKey</a> have emerged as the most secure second authentication factor, and this paper out of Google explains the motivations that lead to their creation, and the design that makes them work.</p>
249 | <p>From the abstract:</p>
250 | <blockquote>
251 | <p>Security Keys are second-factor devices that protect users against phishing and man-in-the-middle attacks. Users carry a single device and can self-register it with any online service that supports the protocol. The devices are simple to implement and deploy, simple to use, privacy preserving, and secure against strong attackers. We have shipped support for Security Keys in the Chrome web browser and in Google&rsquo;s online services. We show that Security Keys lead to both an increased level of security and user satisfaction by analyzing a two year deployment which began within Google and has extended to our consumer-facing web applications. The Security Key design has been standardized by the FIDO Alliance, an organization with more than 250 member companies spanning the industry. Currently, Security Keys have been deployed by Google, Dropbox, and GitHub.</p>
252 | </blockquote>
253 | <p>They&rsquo;re also remarkably cheap! Order a few and start securing your life in a day or two.</p>
254 | <h3 id=beyondcorp-design-to-deployment-at-googlehttpsstaticgoogleusercontentcommediaresearchgooglecomenpubsarchive44860pdf><a href=https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44860.pdf>BeyondCorp: Design to Deployment at Google</a></h3>
255 | <p>Building on the <a href=https://www.usenix.org/system/files/login/articles/login_dec14_02_ward.pdf>original BeyondCorp paper</a> in 2014, this paper is slightly more detailed and benefits from two more years of migration-fueled wisdom. That said, the big ideas have remained fairly consistent and there is not much new relative to the BeyondCorp paper itself (although that was a fantastic paper, and if you haven&rsquo;t read it, this is an equally good starting point):</p>
256 | <blockquote>
257 | <p>The goal of Google&rsquo;s BeyondCorp initiative is to improve our security with regard to how employees and devices access internal applications. Unlike the conventional perimeter security model, BeyondCorp doesn&rsquo;t gate access to services and tools based on a user&rsquo;s physical location or the originating network; instead, access policies are based on information about a device, its state, and its associated user. BeyondCorp considers both internal networks and external networks to be completely untrusted, and gates access to applications by dynamically asserting and enforcing levels, or tiers, of access.</p>
258 | </blockquote>
259 | <p>As is often the case reading Google papers, my biggest take away thought here is wondering when we&rsquo;ll start to see reusable, pluggable open source versions of the techniques described within.</p>
260 | <h3 id=availability-in-globally-distributed-storage-systemshttpsstaticgoogleusercontentcommediaresearchgooglecomenpubsarchive36737pdf><a href=https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/36737.pdf>Availability in Globally Distributed Storage Systems</a></h3>
261 | <p>This paper explores how to think about availability in replicated distributed systems, and is a useful starting point for those of us who are trying to determine the correct way to measure uptime for their storage layer or any other sufficiently complex system.</p>
262 | <p>From the abstract:</p>
263 | <blockquote>
264 | <p>We characterize the availability properties of cloud storage systems based on an extensive one year study of Google&rsquo;s main storage infrastructure and present statistical models that enable further insight into the impact of multiple design choices, such as data placement and replication strategies. With these models we compare data availability under a variety of system parameters given the real patterns of failures observed in our fleet.</p>
265 | </blockquote>
266 | <p>Particularly interesting is the focus on correlated failures, building on the premise that users of distributed systems only experience the failure when multiple components have overlapping failures. Another expected but reassuring observation is that at Google&rsquo;s scale (and with resources distributed across racks and regions), most failure comes from tuning and system design, not from the underlying hardware.</p>
267 | <p>I was also surprised by how simple their definition of availability was in this case:</p>
268 | <blockquote>
269 | <p>A storage node becomes unavailable when it fails to respond positively to periodic health checking pings sent by our monitoring system. The node remains unavailable until it regains responsiveness or the storage system reconstructs the data from other surviving nodes.</p>
270 | </blockquote>
271 | <p>Often discussions of availability become arbitrarily complex (&ldquo;really it should be response rates are over X, but with correct results and within our latency SLO!"), and it&rsquo;s reassuring to see the simplest definitions are still usable.</p>
272 | <h3 id=still-all-on-one-server-perforce-at-scalehttpsstaticgoogleusercontentcommediaresearchgooglecomenpubsarchive39983pdf><a href=https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/39983.pdf>Still All on One Server: Perforce at Scale</a></h3>
273 | <p>As a company grows, code hosting performance becomes one of the critical factors in overall developer productivity (along with build and test performance), but it&rsquo;s a topic that isn&rsquo;t discussed frequently. This paper from Google discusses their experience scaling Perforce:</p>
274 | <blockquote>
275 | <p>Google runs the busiest single Perforce server on the planet, and one of the largest repositories in any source control system. From this high-water mark this paper looks at server performance and other issues of scale, with digressions into where we are, how we got here, and how we continue to stay one step ahead of our users.</p>
276 | </blockquote>
277 | <p>This paper is particularly impressive when you consider the difficulties that companies run into scaling Git monorepos (talk to a ex-Twitter employee near you for war stories).</p>
278 | <h3 id=large-scale-automated-refactoring-using-clangmrhttpsstaticgoogleusercontentcommediaresearchgooglecomenpubsarchive41342pdf><a href=https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/41342.pdf>Large-Scale Automated Refactoring Using ClangMR</a></h3>
279 | <p>Large code bases tend to age poorly, especially in the case of monorepos storing hundreds or thousands of different teams collaborating on different projects. This paper covers one of Google&rsquo;s attempts to reduce the burden of maintaining their large monorepo through tooling that makes it easy to rewrite abstract syntax trees (ASTs) across the entire codebase.</p>
280 | <p>From the abstract:</p>
281 | <blockquote>
282 | <p>In this paper, we present a real-world implementation of a system to refactor large C++ codebases efficiently. A combination of the Clang compiler framework and the MapReduce parallel processor, ClangMR enables code maintainers to easily and correctly transform large collections of code. We describe the motivation behind such a tool, its implementation and then present our experiences using it in a recent API update with Google&rsquo;s C++ codebase.</p>
283 | </blockquote>
284 | <p>Similar work is being done with <a href=https://parasol.tamu.edu/pivot/>Pivot</a>.</p>
285 | <h3 id=source-code-rejuvenation-is-not-refactoringhttpss3amazonawscomsystemsandpaperspaperssofsem10pdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/sofsem10.pdf>Source Code Rejuvenation is not Refactoring</a></h3>
286 | <p>This paper introduces the concept of &ldquo;Code Rejuvenation&rdquo;, a unidirectional process of moving towards cleaner abstractions as new language features and libraries become available, which is particularly applicable to sprawling, older code bases.</p>
287 | <p>From the abstract:</p>
288 | <blockquote>
289 | <p>In this paper, we present the notion of source code rejuvenation, the automated migration of legacy code and very briefly mention the tools we use to achieve that. While refactoring improves structurally inadequate source code, source code rejuvenation leverages enhanced program language and library facilities by finding and replacing coding patterns that can be expressed through higher-level software abstractions. Raising the level of abstraction benefits software maintainability, security, and performance.</p>
290 | </blockquote>
291 | <p>There are some strong echoes of this work in <a href=/papers/large-scale-automated-refactoring-using-clangmr/>Google&rsquo;s ClangMR paper</a>.</p>
292 | <h3 id=searching-for-build-debt-experiences-managing-technical-debt-at-googlehttpsstaticgoogleusercontentcommediaresearchgooglecomenpubsarchive37755pdf><a href=https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37755.pdf>Searching for Build Debt: Experiences Managing Technical Debt at Google</a></h3>
293 | <p>This paper is an interesting cover of how to perform large-scale migrations in living codebases. Using broken builds as the running example, they break down their strategy to three pillars: automation, make it easy to do the right thing, and make it hard to do the wrong thing.</p>
294 | <p>From the abstract:</p>
295 | <blockquote>
296 | <p>With a large and rapidly changing codebase, Google software engineers are constantly paying interest on various forms of technical debt. Google engineers also make efforts to pay down that debt, whether through special Fixit days, or via dedicated teams, variously known as janitors, cultivators, or demolition experts. We describe several related efforts to measure and pay down technical debt found in Google&rsquo;s BUILD files and associated dead code. We address debt found in dependency specifications, unbuildable targets, and unnecessary command line flags. These efforts often expose other forms of technical debt that must first be managed.</p>
297 | </blockquote>
298 | <h3 id=no-silver-bullet---essence-and-accident-in-software-engineeringhttpss3amazonawscomsystemsandpaperspapersfrederick_brooks_87-no_silver_bullet_essence_and_accidents_of_software_engineeringpdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/Frederick_Brooks_87-No_Silver_Bullet_Essence_and_Accidents_of_Software_Engineering.pdf>No Silver Bullet - Essence and Accident in Software Engineering</a></h3>
299 | <p>A seminal paper from the author of The Mythical Man Month, &ldquo;No Silver Bullet&rdquo; expands on discussion of accidental versus essential complexity, and argues that there is no longer enough accidental complexity to allow individual reductions in accidental complexity to significantly increase engineer productivity.</p>
300 | <p>From the abstract:</p>
301 | <blockquote>
302 | <p>Most of the big past gains in software productivity have come from removing artificial barriers that have made the accidental tasks inordinately hard, such as severe hardware cosntraints, awkward programming languages, lack of machine time. How much of what software engineers now do is still devoted to the accidental, as opposed to the essential? Unless it is more than 9/10 of all effort, shrinking all the accidental activities to zero time will not give an order of magnitude improvement.</p>
303 | </blockquote>
304 | <p>Interestingly, I think we do see accidental complexity in large codebases become large enough to make order of magnitude improvements (motivating, for example, Google&rsquo;s investments into ClangMR and such), so perhaps we&rsquo;re not quite as far ahead in the shift to essential complexity as we&rsquo;d like to believe.</p>
305 | <h3 id=the-unix-timesharing-systemhttpss3amazonawscomsystemsandpaperspapersunix_timesharing_systempdf><a href=https://s3.amazonaws.com/systemsandpapers/papers/unix_timesharing_system.pdf>The UNIX TimeSharing System</a></h3>
306 | <p>This paper describes the fundamentals of UNIX as of 1974, and what is truly remarkable is how many of the design decisions are still used today. From the permission model we&rsquo;ve all manipulated with chmod to system calls used to manipulate files, it&rsquo;s amazing how much remains intact.</p>
307 | <p>From the abstract:</p>
308 | <blockquote>
309 | <p>UNIX is a general-purpose, multi-user, interactive operating system for the Digital Equipment Corporation PDP-11/40 and 11/45 computers. It offers a number of features seldom found even in larger operating systems, including: (1) a hierarchical file system incorporating demountable volumes; (2) compatible file, device, and inter-process I/O; (3) the ability to initiate asynchronous processes; (4) system command language selectable on a per-user basis; and (5) over 100 subsystems including a dozen languages. This paper discusses the nature and implementation of the file system and of the user command interface.</p>
310 | </blockquote>
311 | <p>Also fascinating is their observation that UNIX has in part succeeded because it was designed to solve a general problem by its authors (working with the PDP-7 was frustrating), and not towards a more specified goal.</p>
312 | <hr>
313 | <p>After sharing this post, folks recommended a ton of additional amazing papers:</p>
314 | <ul>
315 | <li><a href=https://www.allthingsdistributed.com/files/p1041-verbitski.pdf>Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases</a></li>
316 | <li><a href=https://research.fb.com/wp-content/uploads/2017/10/sosp17-final14.pdf>Canopy: An End-to-End Performance Tracing And Analysis System</a></li>
317 | <li><a href=https://www.cs.utexas.edu/~lorenzo/corsi/cs380d/papers/p225-chandra.pdf>Unreliable Failure Detectors for Reliable Distributed Systems</a></li>
318 | <li><a href=https://hal.inria.fr/inria-00397981/document>CRDTs: Consistency without concurrency control</a></li>
319 | <li><a href=http://db.cs.berkeley.edu/papers/UCB-lattice-tr.pdf>Logic and Lattices for Distributed Programming</a></li>
320 | <li><a href=https://pdfs.semanticscholar.org/b02c/6b00bd5dbdbd951fddb00b906c82fa80f0b3.pdf>Zab: High-performance broadcast for primary-backup systems</a></li>
321 | <li><a href=https://static.googleusercontent.com/media/research.google.com/en//archive/paxos_made_live.pdf>Paxos Made Live - An Engineering Perspective</a></li>
322 | <li><a href=http://christophermeiklejohn.com/publications/hotedge-2018-preprint.pdf>Towards a Solution to the Red Wedding Problem</a></li>
323 | <li><a href=https://research.google.com/pubs/pub44271.html>Profiling a warehouse-scale computer</a></li>
324 | <li><a href=https://research.google.com/pubs/pub36575.html>Google-Wide Profiling: A Continuous Profiling Infrastructure for Data Centers</a></li>
325 | <li><a href="http://delivery.acm.org/10.1145/1650000/1646374/p66-bessey.pdf?ip=67.170.235.99&id=1646374&acc=OPEN&key=4D4702B0C3E38B35%2E4D4702B0C3E38B35%2E4D4702B0C3E38B35%2E6D218144511F3437&__acm__=1523208080_0e8b4d3f89204b7f865ffb5e4c8675df">A Few Billion Lines of Code Later: Using Static Analysis to Find Bugs in the Real World</a></li>
326 | <li><a href=http://martin.zinkevich.org/rules_of_ml/rules_of_ml.pdf>Rules of Machine Learning: Best Practices for ML Engineering</a></li>
327 | <li><a href=https://hal.inria.fr/file/index/docid/555588/filename/techreport.pdf>A comprehensive study of Convergent and Commutative Replicated Data Types</a></li>
328 | <li><a href=https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/41376.pdf>Online, Asynchronous Schema Change in F1</a></li>
329 | <li><a href=https://amturing.acm.org/p558-lamport.pdf>Time, Clocks and the Ordering of Events in a Distributed System</a></li>
330 | <li><a href=http://www.cs.yale.edu/homes/dna/vldb.pdf>C-Store: A Column-oriented DBMS</a></li>
331 | <li><a href=http://adrianmarriott.net/logosroot/papers/LifeBeyondTxns.pdf>Life beyond Distributed Transactions: an Apostate&rsquo;s Opinion</a></li>
332 | <li><a href=http://cidrdb.org/cidr2015/Papers/CIDR15_Paper16.pdf>Immutability Changes Everything</a></li>
333 | <li><a href=https://www.cse.buffalo.edu/~stevko/courses/cse704/fall10/papers/eurosys07.pdf>Dryad: Distributed Data-Parallel Programs from Sequential Building Blocks</a></li>
334 | <li><a href=http://bio.cs.washington.edu/blast.pdf>Basic Local Alignment Search Tool</a></li>
335 | </ul>
336 | <p>Send me yours! If you&rsquo;re looking for more reading materials, consider <a href=/best-books/>taking a look at my favorite books as well</a>!</p>
337 | <div class="mt4 w-100">
338 | <time class="f6 mv4 dib tracked" datetime=2018-04-07T06:00:00-07:00>
339 | Published on April 7, 2018.
340 | </time>
341 | </div>
342 | <div class="mt6 instapaper_ignoref">
343 | </div>
344 | </div>
345 | <aside class="w-30-l mt1-l"><div class="bg-light-gray pa3">
346 | <p class="f5 mb3">
347 | Hi folks. I'm <a href=/about>Will</a> aka <a href=https://twitter.com/lethain>@lethain</a>.
348 | <br>
349 | If you're looking to reach out to me, here are <a href=/ways-i-help/>ways I help</a>.
350 | If you'd like to get a email from me, subscribe to <a href=/newsletter/>my weekly newsletter</a>.
351 | </p>
352 | <p>
353 | I wrote
354 | <a href=https://www.amazon.com/Elegant-Puzzle-Systems-Engineering-Management/dp/1732265186>An Elegant Puzzle</a>.
355 | </p>
356 | <p>
357 | <a href=https://www.amazon.com/Elegant-Puzzle-Systems-Engineering-Management/dp/1732265186>
358 | <img class=w-100 src=/static/blog/2019/aep-small-lq.jpg>
359 | </a>
360 | </p>
361 | <p>
362 | As well as,
363 | <a href=https://staffeng.com/book>Staff Engineer</a>.
364 | </p>
365 | <p>
366 | <a href=https://staffeng.com/book>
367 | <img class=w-100 src=/static/blog/staffeng/StaffEngBookMed.jpg>
368 | </a>
369 | </p>
370 | </div>
371 | <div class="bg-light-gray pa3 nested-list-reset nested-copy-line-height nested-links">
372 | <p class="f5 b mb3">Popular</p>
373 | <ul class="pa0 list">
374 | <li class=mb2>
375 | <a href=/good-engineering-strategy-is-boring/>Write five, then synthesize: good engineering strategy is boring.</a>
376 | </li>
377 | <li class=mb2>
378 | <a href=/managing-technical-quality/>Managing technical quality in a codebase.</a>
379 | </li>
380 | <li class=mb2>
381 | <a href=/work-on-what-matters/>Work on what matters.</a>
382 | </li>
383 | <li class=mb2>
384 | <a href=/first-ninety-days-cto-vpe/>Your first 90 days as CTO or VP Engineering.</a>
385 | </li>
386 | <li class=mb2>
387 | <a href=/digg-acquihire/>How the Digg team was acquihired.</a>
388 | </li>
389 | </ul>
390 | </div>
391 | <div class="bg-light-gray pa3 nested-list-reset nested-copy-line-height nested-links">
392 | <p class="f5 b mb3">Recent</p>
393 | <ul class="pa0 list">
394 | <li class=mb2>
395 | <a href=/2021-in-review/>2021 in review.</a>
396 | </li>
397 | <li class=mb2>
398 | <a href=/terminal-level-rulebook/>The terminal level rulebook.</a>
399 | </li>
400 | <li class=mb2>
401 | <a href=/should-you-write-a-book/>Should you write a technical or management book?</a>
402 | </li>
403 | <li class=mb2>
404 | <a href=/notes-on-the-kool-aid-factory-planning-issue/>Notes on The Kool-Aid Factory's Planning Issue.</a>
405 | </li>
406 | <li class=mb2>
407 | <a href=/how-to-find-engineering-leadership-roles/>How to find engineering leadership roles.</a>
408 | </li>
409 | </ul>
410 | </div>
411 | <div class="bg-light-gray pa3 nested-list-reset nested-copy-line-height nested-links">
412 | <p class="f5 b mb3">Related</p>
413 | <ul class="pa0 list">
414 | <li class=mb2>
415 | <a href=/speaking-on-inside-intercom-podcast/>Infrastructure engineering @ Inside Intercom</a>
416 | </li>
417 | <li class=mb2>
418 | <a href=/product-management-infra-engineering/>Product management in infrastructure eng.</a>
419 | </li>
420 | <li class=mb2>
421 | <a href=/global-secondary-indexes/>Global secondary indexes.</a>
422 | </li>
423 | <li class=mb2>
424 | <a href=/physics-of-cloud-expansion/>The physics of Cloud expansion.</a>
425 | </li>
426 | <li class=mb2>
427 | <a href=/async-processing-with-sync-semantics/>Async processing with sync semantics?</a>
428 | </li>
429 | </ul>
430 | </div>
431 | </aside>
432 | </article>
433 | </main>
434 | <footer class="bg-grey bottom-0 pa3 tc" role=contentinfo>
435 | <div class="flex justify-between">
436 | <a class="f6 fw4 no-underline black-50 dn dib-ns pv2 ph3" href=https://lethain.com>
437 | &copy; Will Larson 2021
438 | </a>
439 | <a class="f5 fw4 no-underline black-50 dn dib-ns pv2 ph4" href=/tags/>
440 | Tags
441 | </a>
442 | <a class="f5 fw4 no-underline black-50 dn dib-ns pv2 ph4" href=/newsletter/>
443 | Newsletter
444 | </a>
445 | <a class="f5 fw4 no-underline black-50 dn dib-ns pv2 ph4" href=/feeds.xml>
446 | RSS
447 | </a>
448 | <a class="f5 fw4 no-underline black-50 dn dib-ns pv2 ph4" href=/about/>
449 | About
450 | </a>
451 | </div>
452 | </footer>
453 | </body>
454 | </html>


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/gfs.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/gfs.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/hamilton.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/hamilton.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/hotedge-2018-preprint.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/hotedge-2018-preprint.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/login_dec14_02_ward.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/login_dec14_02_ward.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/mapreduce.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/mapreduce.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/mesos.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/mesos.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/omega.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/omega.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/outofthetarpit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/outofthetarpit.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/p558-lamport.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/p558-lamport.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/paxos-made-simple.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/paxos-made-simple.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/paxos_made_live.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/paxos_made_live.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/raft.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/raft.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/rules_of_ml.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/rules_of_ml.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/sofsem10.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/sofsem10.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/swim.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/swim.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/techreport.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/techreport.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/unix_timesharing_system.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/unix_timesharing_system.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/vldb.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/vldb.pdf


--------------------------------------------------------------------------------
/9.50-favorite-technical-papers/wormhole.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/9.50-favorite-technical-papers/wormhole.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/2013-6-29-大数据模式-OpenSourceSummit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/2013-6-29-大数据模式-OpenSourceSummit.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/2013_PyCon_awesome_Big_Data_algorithms.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/2013_PyCon_awesome_Big_Data_algorithms.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/20140114-webinar-get-more-out-of-mongodb-with-tokumx-140319063324-phpapp02.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/20140114-webinar-get-more-out-of-mongodb-with-tokumx-140319063324-phpapp02.pptx


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/Buffer Pool Implementation InnoDB vs Oracle.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/Buffer Pool Implementation InnoDB vs Oracle.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/Citrusleaf-- A Real-Time NoSQL DB which Preserves ACID vldb2011.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/Citrusleaf-- A Real-Time NoSQL DB which Preserves ACID vldb2011.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/Data Structures and Algorithms for  Big Databases.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/Data Structures and Algorithms for  Big Databases.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/HBase上搭建广告实时数据处理平台-广点通.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/HBase上搭建广告实时数据处理平台-广点通.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/Interface Design for Spark Community by Reynold Xin.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/Interface Design for Spark Community by Reynold Xin.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/NDB代码分析.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/NDB代码分析.docx


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/Spark - Unified Big Data Analytics Pipeline.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/Spark - Unified Big Data Analytics Pipeline.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/Spark A-Web-Application-for-Interactive-Data-Analysis-with-Spark-Romain-Rigaux.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/Spark A-Web-Application-for-Interactive-Data-Analysis-with-Spark-Romain-Rigaux.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/Spark部署中的关键问题解决之道--许鹏.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/Spark部署中的关键问题解决之道--许鹏.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/TiDB在Kubernetes平台的自动化运维实践-FCNUTCon2017_dengshuan.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/TiDB在Kubernetes平台的自动化运维实践-FCNUTCon2017_dengshuan.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/Toward Scalable Systems for Big Data Analytics.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/Toward Scalable Systems for Big Data Analytics.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/Whitepaper_NoSQL_Tech_Comparison_Report.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/Whitepaper_NoSQL_Tech_Comparison_Report.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/big-challenges.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/big-challenges.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/mysql-mongo-for-mysql-dba-webinar.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/mysql-mongo-for-mysql-dba-webinar.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/spark介绍-蘑菇街.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/spark介绍-蘑菇街.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/万亿级大数据平台的架构设计与演进实践-201711_qcon_beijing_chenchao.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/万亿级大数据平台的架构设计与演进实践-201711_qcon_beijing_chenchao.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/乐视秒杀:每秒十万笔交易的数据架构解读.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/乐视秒杀:每秒十万笔交易的数据架构解读.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/云端上的生存之道.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/云端上的生存之道.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/云端数据处理,让服务更轻-----七牛.doc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/云端数据处理,让服务更轻-----七牛.doc


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/互联网常用场景下的大数据解析架构-胡宁.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/互联网常用场景下的大数据解析架构-胡宁.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/分布式数据库设计及反范式设计.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/分布式数据库设计及反范式设计.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/可视化存储智能解决方案—思路设计与展现.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/可视化存储智能解决方案—思路设计与展现.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/大数据时代Feed系统架构-杨卫华.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/大数据时代Feed系统架构-杨卫华.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/开源大数据在Facebook与Dropbox的实践-邵铮.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/开源大数据在Facebook与Dropbox的实践-邵铮.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/珍爱网 构建有业务价值的数据分析系统.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/珍爱网 构建有业务价值的数据分析系统.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/网易 数据库系统的优化与调优:从理论到实践.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/网易 数据库系统的优化与调优:从理论到实践.pdf


--------------------------------------------------------------------------------
/A.分布式数据库-数据平台-NoSQL/高性能NoSQL系统BladeCube的设计与优化.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式数据库-数据平台-NoSQL/高性能NoSQL系统BladeCube的设计与优化.pdf


--------------------------------------------------------------------------------
/A.分布式文件系统-缓存/Codis-intro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式文件系统-缓存/Codis-intro.pdf


--------------------------------------------------------------------------------
/A.分布式文件系统-缓存/GlusterFS分布式文件系统.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式文件系统-缓存/GlusterFS分布式文件系统.pdf


--------------------------------------------------------------------------------
/A.分布式文件系统-缓存/GlusterFS系统原理剖析.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式文件系统-缓存/GlusterFS系统原理剖析.pdf


--------------------------------------------------------------------------------
/A.分布式文件系统-缓存/Inside BeansDB.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式文件系统-缓存/Inside BeansDB.pdf


--------------------------------------------------------------------------------
/A.分布式文件系统-缓存/OceanBase1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式文件系统-缓存/OceanBase1.pdf


--------------------------------------------------------------------------------
/A.分布式文件系统-缓存/Redis cluster Specification (work in progress) – Redis.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式文件系统-缓存/Redis cluster Specification (work in progress) – Redis.pdf


--------------------------------------------------------------------------------
/A.分布式文件系统-缓存/Redis 多机特性工作原理简介.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式文件系统-缓存/Redis 多机特性工作原理简介.pdf


--------------------------------------------------------------------------------
/A.分布式文件系统-缓存/Redis 实现分析.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式文件系统-缓存/Redis 实现分析.pdf


--------------------------------------------------------------------------------
/A.分布式文件系统-缓存/Redis在京东到家的订单中的使用.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式文件系统-缓存/Redis在京东到家的订单中的使用.pdf


--------------------------------------------------------------------------------
/A.分布式文件系统-缓存/Redis实现分析.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式文件系统-缓存/Redis实现分析.pdf


--------------------------------------------------------------------------------
/A.分布式文件系统-缓存/memcache-fb.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式文件系统-缓存/memcache-fb.pdf


--------------------------------------------------------------------------------
/A.分布式文件系统-缓存/memcachedasaserviceusingdocker-130410163221-phpapp02.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式文件系统-缓存/memcachedasaserviceusingdocker-130410163221-phpapp02.pdf


--------------------------------------------------------------------------------
/A.分布式文件系统-缓存/云存储系统设计.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式文件系统-缓存/云存储系统设计.pdf


--------------------------------------------------------------------------------
/A.分布式文件系统-缓存/赵舜东-高性能Web架构之缓存体系.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式文件系统-缓存/赵舜东-高性能Web架构之缓存体系.pdf


--------------------------------------------------------------------------------
/A.分布式系统-高可用/Instagram web-service-at-instagram.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式系统-高可用/Instagram web-service-at-instagram.pdf


--------------------------------------------------------------------------------
/A.分布式系统-高可用/paxos的直观解释.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式系统-高可用/paxos的直观解释.pdf


--------------------------------------------------------------------------------
/A.分布式系统-高可用/关于云计算可用性的定性与定量研究.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式系统-高可用/关于云计算可用性的定性与定量研究.pdf


--------------------------------------------------------------------------------
/A.分布式系统-高可用/搜狗 高性能-高可用-可扩展商业平台设计.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式系统-高可用/搜狗 高性能-高可用-可扩展商业平台设计.pdf


--------------------------------------------------------------------------------
/A.分布式系统-高可用/网易 分布式系统设计模式.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式系统-高可用/网易 分布式系统设计模式.pdf


--------------------------------------------------------------------------------
/A.分布式系统-高可用/蘑菇街背后系统的稳定性保障实践.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式系统-高可用/蘑菇街背后系统的稳定性保障实践.pdf


--------------------------------------------------------------------------------
/A.分布式系统-高可用/酷狗 基于OpenResty的百万级长连接推送-酷狗.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式系统-高可用/酷狗 基于OpenResty的百万级长连接推送-酷狗.pdf


--------------------------------------------------------------------------------
/A.分布式系统-高可用/雪球在股市风暴下的高可用架构改造分享.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式系统-高可用/雪球在股市风暴下的高可用架构改造分享.pdf


--------------------------------------------------------------------------------
/A.分布式系统-高可用/高可用可伸缩架构实用经验谈.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式系统-高可用/高可用可伸缩架构实用经验谈.pdf


--------------------------------------------------------------------------------
/A.分布式系统-高可用/高性能,高可用,可扩展在途牛.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/A.分布式系统-高可用/高性能,高可用,可扩展在途牛.pdf


--------------------------------------------------------------------------------
/B.基础架构-Docker-容器架构/ChrisSwan-Docker、DevOps和安全.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-Docker-容器架构/ChrisSwan-Docker、DevOps和安全.pdf


--------------------------------------------------------------------------------
/B.基础架构-Docker-容器架构/Docker在雪球的技术实践.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-Docker-容器架构/Docker在雪球的技术实践.pdf


--------------------------------------------------------------------------------
/B.基础架构-Docker-容器架构/Introduction to kubernetes - yangzhangxian.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-Docker-容器架构/Introduction to kubernetes - yangzhangxian.pptx


--------------------------------------------------------------------------------
/B.基础架构-Docker-容器架构/K8S在华为全球IT系统中的实践.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-Docker-容器架构/K8S在华为全球IT系统中的实践.pdf


--------------------------------------------------------------------------------
/B.基础架构-Docker-容器架构/Learn_Basic_Ansible_using_Docker.ppt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-Docker-容器架构/Learn_Basic_Ansible_using_Docker.ppt


--------------------------------------------------------------------------------
/B.基础架构-Docker-容器架构/Learn_Docker_in_90mins.ppt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-Docker-容器架构/Learn_Docker_in_90mins.ppt


--------------------------------------------------------------------------------
/B.基础架构-Docker-容器架构/动态资源管理和容器技术在金融行业的架构探索.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-Docker-容器架构/动态资源管理和容器技术在金融行业的架构探索.pdf


--------------------------------------------------------------------------------
/B.基础架构-Docker-容器架构/深入理解Docker架构与实现 Sunhongliang.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-Docker-容器架构/深入理解Docker架构与实现 Sunhongliang.pptx


--------------------------------------------------------------------------------
/B.基础架构-Docker-容器架构/高可用架构·Docker实战-第1期.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-Docker-容器架构/高可用架构·Docker实战-第1期.pdf


--------------------------------------------------------------------------------
/B.基础架构-FrontEnd/CSS对用户体验的影响.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-FrontEnd/CSS对用户体验的影响.pdf


--------------------------------------------------------------------------------
/B.基础架构-FrontEnd/HTML5图形图像技术分享.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-FrontEnd/HTML5图形图像技术分享.pdf


--------------------------------------------------------------------------------
/B.基础架构-FrontEnd/HTTP 2.0 - Tokyo.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-FrontEnd/HTTP 2.0 - Tokyo.pdf


--------------------------------------------------------------------------------
/B.基础架构-FrontEnd/QCon上海2015-ReactJS 实战-王沛.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-FrontEnd/QCon上海2015-ReactJS 实战-王沛.pdf


--------------------------------------------------------------------------------
/B.基础架构-FrontEnd/Tools for Advanced Prototyping for Mobile Apps.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-FrontEnd/Tools for Advanced Prototyping for Mobile Apps.pdf


--------------------------------------------------------------------------------
/B.基础架构-FrontEnd/fibjs.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-FrontEnd/fibjs.pdf


--------------------------------------------------------------------------------
/B.基础架构-及时通讯-语音-视频/QCon上海2015-IM通讯云技术路线的选择-许志强.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-及时通讯-语音-视频/QCon上海2015-IM通讯云技术路线的选择-许志强.pdf


--------------------------------------------------------------------------------
/B.基础架构-及时通讯-语音-视频/whatsapp技术架构.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-及时通讯-语音-视频/whatsapp技术架构.pdf


--------------------------------------------------------------------------------
/B.基础架构-及时通讯-语音-视频/云直播平台架构与实施-黄慧攀.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-及时通讯-语音-视频/云直播平台架构与实施-黄慧攀.pdf


--------------------------------------------------------------------------------
/B.基础架构-及时通讯-语音-视频/即时通讯架构-20140718-lizhiwei.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-及时通讯-语音-视频/即时通讯架构-20140718-lizhiwei.pdf


--------------------------------------------------------------------------------
/B.基础架构-日志系统/ngx_lua在又拍云的应用-日志收集及作用.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-日志系统/ngx_lua在又拍云的应用-日志收集及作用.pdf


--------------------------------------------------------------------------------
/B.基础架构-日志系统/qconbeijing-20140426am-luoqiwu.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-日志系统/qconbeijing-20140426am-luoqiwu.pdf


--------------------------------------------------------------------------------
/B.基础架构-日志系统/唯品会日日志平台建设.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-日志系统/唯品会日日志平台建设.pdf


--------------------------------------------------------------------------------
/B.基础架构-消息队列/Kafka深度解析.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-消息队列/Kafka深度解析.pdf


--------------------------------------------------------------------------------
/B.基础架构-消息队列/RabbitMQ使用参考-YS.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/B.基础架构-消息队列/RabbitMQ使用参考-YS.pdf


--------------------------------------------------------------------------------
/C.运维架构-安全/AS2017-《巡风系统在同程运维安全的实践》-刘新高.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/C.运维架构-安全/AS2017-《巡风系统在同程运维安全的实践》-刘新高.pdf


--------------------------------------------------------------------------------
/C.运维架构-安全/YY语音Linux下的主动防御.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/C.运维架构-安全/YY语音Linux下的主动防御.pdf


--------------------------------------------------------------------------------
/C.运维架构-安全/支付应用数据安全标准 PA-DSS_v3__ZH-CN.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/C.运维架构-安全/支付应用数据安全标准 PA-DSS_v3__ZH-CN.pdf


--------------------------------------------------------------------------------
/C.运维架构-自动化运维DevOps/Ducter介绍.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/C.运维架构-自动化运维DevOps/Ducter介绍.pptx


--------------------------------------------------------------------------------
/C.运维架构-自动化运维DevOps/opsdev-2017-annuals-奇虎360运维.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/C.运维架构-自动化运维DevOps/opsdev-2017-annuals-奇虎360运维.pdf


--------------------------------------------------------------------------------
/C.运维架构-自动化运维DevOps/互联网创业服务器运维工具集.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/C.运维架构-自动化运维DevOps/互联网创业服务器运维工具集.pdf


--------------------------------------------------------------------------------
/C.运维架构-自动化运维DevOps/唯品会运维架构和流程改造之路.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/C.运维架构-自动化运维DevOps/唯品会运维架构和流程改造之路.pdf


--------------------------------------------------------------------------------
/C.运维架构-自动化运维DevOps/基于Ansible的自动化运维实践.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/C.运维架构-自动化运维DevOps/基于Ansible的自动化运维实践.pptx


--------------------------------------------------------------------------------
/C.运维架构-自动化运维DevOps/携程  构建可靠的自动化发布体系.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/C.运维架构-自动化运维DevOps/携程  构建可靠的自动化发布体系.pdf


--------------------------------------------------------------------------------
/C.运维架构-自动化运维DevOps/滴滴-运维架构演进史-Fqconbj-20160422pm-lupei.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/C.运维架构-自动化运维DevOps/滴滴-运维架构演进史-Fqconbj-20160422pm-lupei.pdf


--------------------------------------------------------------------------------
/C.运维架构-自动化运维DevOps/美团云运维体系建设与实践 -FCNUTCon2017_huxiangtao.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/C.运维架构-自动化运维DevOps/美团云运维体系建设与实践 -FCNUTCon2017_huxiangtao.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/2004.07213 Toward Trustworthy AI Development - Mechanisms for Supporting Verifiable Claims.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/2004.07213 Toward Trustworthy AI Development - Mechanisms for Supporting Verifiable Claims.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/2005.14165 Language Models are Few-Shot Learners.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/2005.14165 Language Models are Few-Shot Learners.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/2112.10752 High-Resolution Image Synthesis with Latent Diffusion Models.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/2112.10752 High-Resolution Image Synthesis with Latent Diffusion Models.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/2203.02155 Training language models to follow instructions with human feedback.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/2203.02155 Training language models to follow instructions with human feedback.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/2209.00796 Diffusion Models - A Comprehensive Survey of Methods and Applications.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/2209.00796 Diffusion Models - A Comprehensive Survey of Methods and Applications.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/2210.10760 Scaling Laws for Reward Model Overoptimization.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/2210.10760 Scaling Laws for Reward Model Overoptimization.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/2303.10420 A Comprehensive Capability Analysis of GPT-3 and GPT-3.5 Series Models.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/2303.10420 A Comprehensive Capability Analysis of GPT-3 and GPT-3.5 Series Models.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/2306.04542 On the Design Fundamentals of Diffusion Models - A Survey.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/2306.04542 On the Design Fundamentals of Diffusion Models - A Survey.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/DALL_E_3_System_Card.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/DALL_E_3_System_Card.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/GPT-3.5 + ChatGPT_ An illustrated overview – Dr Alan D. Thompson – Life Architect.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/GPT-3.5 + ChatGPT_ An illustrated overview – Dr Alan D. Thompson – Life Architect.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/GPT-4_vs_GPT-35_A_Concise_Showdown.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/GPT-4_vs_GPT-35_A_Concise_Showdown.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/Introducing ChatGPT.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/Introducing ChatGPT.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/Lessons learned on language model safety and misuse.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/Lessons learned on language model safety and misuse.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/Meet GPT-3. It Has Learned to Code (and Blog and Argue). - The New York Times.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/Meet GPT-3. It Has Learned to Code (and Blog and Argue). - The New York Times.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/NeurIPS-2022-training-language-models-to-follow-instructions-with-human-feedback-Paper-Conference.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/NeurIPS-2022-training-language-models-to-follow-instructions-with-human-feedback-Paper-Conference.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/OpenAI InstructGPT-Aligning language models to follow instructions.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/OpenAI InstructGPT-Aligning language models to follow instructions.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/Peebles_Scalable_Diffusion_Models_with_Transformers_ICCV_2023_paper.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/Peebles_Scalable_Diffusion_Models_with_Transformers_ICCV_2023_paper.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/README.md:
--------------------------------------------------------------------------------
 1 | 
 2 | The important papers for ChatGPT, LLM, Diffusion Models.
 3 | 
 4 | ## Transformer & GPT-3
 5 | https://huggingface.co/docs/transformers/index
 6 | 
 7 | https://arxiv.org/abs/2005.14165 Language Models are Few-Shot Learners
 8 | 
 9 | https://en.wikipedia.org/wiki/GPT-3
10 | 
11 | https://www.zdnet.com/article/what-is-gpt-3-everything-business-needs-to-know-about-openais-breakthrough-ai-language-program/
12 | 
13 | https://www.nytimes.com/2020/11/24/science/artificial-intelligence-ai-gpt3.html
14 | 
15 | 
16 | ## GPT & Language Model
17 | 
18 | https://openai.com/research/instruction-following
19 | 
20 | https://openai.com/blog/chatgpt
21 | 
22 | https://proceedings.neurips.cc/paper/2020/hash/1f89885d556929e98d3ef9b86448f951-Abstract.html
23 | 
24 | https://arxiv.org/abs/2203.02155 Training language models to follow instructions with human feedback
25 | 
26 | https://arxiv.org/abs/2210.10760 Scaling Laws for Reward Model Overoptimization
27 | 
28 | https://openai.com/research/language-model-safety-and-misuse
29 | 
30 | https://arxiv.org/abs/2303.08774  GPT-4 Technical Report
31 | 
32 | https://openai.com/contributions/gpt-4v
33 | 
34 | 
35 | ## Diffusion & Image Generation
36 | 
37 | https://arxiv.org/abs/2112.10752 High-Resolution Image Synthesis with Latent Diffusion Models
38 | 
39 | https://huggingface.co/CompVis/stable-diffusion
40 | 
41 | https://huggingface.co/stabilityai/stable-diffusion-2
42 | 
43 | https://github.com/CompVis/stable-diffusion
44 | 
45 | https://ommer-lab.com/research/latent-diffusion-models/
46 | 
47 | https://openai.com/research/dall-e-3-system-card
48 | 
49 | https://cdn.openai.com/papers/DALL_E_3_System_Card.pdf
50 | 
51 | ## Video Generation
52 | 
53 | https://openai.com/research/video-generation-models-as-world-simulators
54 | 
55 | https://openaccess.thecvf.com/content/ICCV2023/html/Peebles_Scalable_Diffusion_Models_with_Transformers_ICCV_2023_paper.html
56 | 


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/State of GPT:大神Andrej揭秘OpenAI大模型原理和训练过程.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/State of GPT:大神Andrej揭秘OpenAI大模型原理和训练过程.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/Step by Step visual introduction to Diffusion Models _ Medium.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/Step by Step visual introduction to Diffusion Models _ Medium.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/Video generation models as world simulators.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/Video generation models as world simulators.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/What is GPT-3_ Everything your business needs to know about OpenAI’s breakthrough AI language program _ ZDNET.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/What is GPT-3_ Everything your business needs to know about OpenAI’s breakthrough AI language program _ ZDNET.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/chatgpt-feedback-contest.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/chatgpt-feedback-contest.pdf


--------------------------------------------------------------------------------
/ChatGPT-LLM-Diffusion/state of gpt.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/ChatGPT-LLM-Diffusion/state of gpt.pdf


--------------------------------------------------------------------------------
/D.机器学习-人工智能/A Few Useful Things to Know about Machine Learning cacm12.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/D.机器学习-人工智能/A Few Useful Things to Know about Machine Learning cacm12.pdf


--------------------------------------------------------------------------------
/D.机器学习-人工智能/AS深圳2017《Al筑巢;机器学习在凤巢的深度应用》-刘斌新.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/D.机器学习-人工智能/AS深圳2017《Al筑巢;机器学习在凤巢的深度应用》-刘斌新.pdf


--------------------------------------------------------------------------------
/D.机器学习-人工智能/QCon上海2015-1号店通用精确化平台架构以及大数据营销实践-陈敏敏.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/D.机器学习-人工智能/QCon上海2015-1号店通用精确化平台架构以及大数据营销实践-陈敏敏.pdf


--------------------------------------------------------------------------------
/D.机器学习-人工智能/online learning algorithm-taoshuai.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/D.机器学习-人工智能/online learning algorithm-taoshuai.pptx


--------------------------------------------------------------------------------
/D.机器学习-人工智能/《大数据的发展脉络:见自己_见天地_见众生》-演讲人:吴甘沙_英特尔中国研究院.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/D.机器学习-人工智能/《大数据的发展脉络:见自己_见天地_见众生》-演讲人:吴甘沙_英特尔中国研究院.pdf


--------------------------------------------------------------------------------
/D.机器学习-人工智能/出门问问-李志飞-自然语言处理如何落地互联网.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/D.机器学习-人工智能/出门问问-李志飞-自然语言处理如何落地互联网.pdf


--------------------------------------------------------------------------------
/D.机器学习-人工智能/机器学习个人笔记完整版v5.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/D.机器学习-人工智能/机器学习个人笔记完整版v5.pdf


--------------------------------------------------------------------------------
/D.机器学习-人工智能/深度学习在自然语言处理的应用v0.76.ppt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/D.机器学习-人工智能/深度学习在自然语言处理的应用v0.76.ppt


--------------------------------------------------------------------------------
/D.机器学习-人工智能/用 TensorFlow 实现智能机器人的原理及如何实现一个对话机器人.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/D.机器学习-人工智能/用 TensorFlow 实现智能机器人的原理及如何实现一个对话机器人.pdf


--------------------------------------------------------------------------------
/E.互联网公司-架构演进/京东应用架构设计.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/E.互联网公司-架构演进/京东应用架构设计.pdf


--------------------------------------------------------------------------------
/E.互联网公司-架构演进/京东服务框架实践.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/E.互联网公司-架构演进/京东服务框架实践.pdf


--------------------------------------------------------------------------------
/E.互联网公司-架构演进/汽车之家 论坛架构分析.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/E.互联网公司-架构演进/汽车之家 论坛架构分析.pdf


--------------------------------------------------------------------------------
/E.互联网公司-架构演进/滴滴打车架构演变及应用实践.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/E.互联网公司-架构演进/滴滴打车架构演变及应用实践.pdf


--------------------------------------------------------------------------------
/E.互联网公司-架构演进/百年人寿系统架构演变.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/E.互联网公司-架构演进/百年人寿系统架构演变.pdf


--------------------------------------------------------------------------------
/E.互联网公司-架构演进/知乎架构变迁史.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/E.互联网公司-架构演进/知乎架构变迁史.pdf


--------------------------------------------------------------------------------
/E.互联网公司-架构演进/豆瓣架构演进.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/E.互联网公司-架构演进/豆瓣架构演进.pdf


--------------------------------------------------------------------------------
/F.10 papers for architect/An Introduction to Software Architecture.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for architect/An Introduction to Software Architecture.pdf


--------------------------------------------------------------------------------
/F.10 papers for architect/Big Ball of Mud.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for architect/Big Ball of Mud.pdf


--------------------------------------------------------------------------------
/F.10 papers for architect/Go_To_Considered_Harmful.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for architect/Go_To_Considered_Harmful.txt


--------------------------------------------------------------------------------
/F.10 papers for architect/Harvest, Yield, and Scalable Tolerant Systems .pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for architect/Harvest, Yield, and Scalable Tolerant Systems .pdf


--------------------------------------------------------------------------------
/F.10 papers for architect/No Silver Bullet Essence and Accidents of Software Engineering.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for architect/No Silver Bullet Essence and Accidents of Software Engineering.pdf


--------------------------------------------------------------------------------
/F.10 papers for architect/The Byzantine Generals Problem.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for architect/The Byzantine Generals Problem.pdf


--------------------------------------------------------------------------------
/F.10 papers for architect/The Open-Closed Principle.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for architect/The Open-Closed Principle.pdf


--------------------------------------------------------------------------------
/F.10 papers for architect/Who Needs an Architect.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for architect/Who Needs an Architect.pdf


--------------------------------------------------------------------------------
/F.10 papers for architect/a note on distributed computing.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for architect/a note on distributed computing.pdf


--------------------------------------------------------------------------------
/F.10 papers for architect/ieee std 1471-2000.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for architect/ieee std 1471-2000.pdf


--------------------------------------------------------------------------------
/F.10 papers for programmer/A Laboratory For Teaching Object-Oriented Thinking.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for programmer/A Laboratory For Teaching Object-Oriented Thinking.pdf


--------------------------------------------------------------------------------
/F.10 papers for programmer/An Experimental Evaluation of The Assumption of Independence in MultiVersion Programming.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for programmer/An Experimental Evaluation of The Assumption of Independence in MultiVersion Programming.pdf


--------------------------------------------------------------------------------
/F.10 papers for programmer/Arguments and results.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for programmer/Arguments and results.pdf


--------------------------------------------------------------------------------
/F.10 papers for programmer/CMU-CS-95-113.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for programmer/CMU-CS-95-113.pdf


--------------------------------------------------------------------------------
/F.10 papers for programmer/Can Programming Be Liberated from the von Neumann Style.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for programmer/Can Programming Be Liberated from the von Neumann Style.pdf


--------------------------------------------------------------------------------
/F.10 papers for programmer/LaSC-4-3-pp223-242.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for programmer/LaSC-4-3-pp223-242.pdf


--------------------------------------------------------------------------------
/F.10 papers for programmer/Lisp Good NewsBad News How to Win Big.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for programmer/Lisp Good NewsBad News How to Win Big.pdf


--------------------------------------------------------------------------------
/F.10 papers for programmer/On understanding types, data abstraction, and polymorphism.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for programmer/On understanding types, data abstraction, and polymorphism.pdf


--------------------------------------------------------------------------------
/F.10 papers for programmer/Programming as an Experience The Inspiration for Self.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for programmer/Programming as an Experience The Inspiration for Self.pdf


--------------------------------------------------------------------------------
/F.10 papers for programmer/Reflections on Trusting Trust.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for programmer/Reflections on Trusting Trust.pdf


--------------------------------------------------------------------------------
/F.10 papers for programmer/The Next 700 Programming Languages.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for programmer/The Next 700 Programming Languages.pdf


--------------------------------------------------------------------------------
/F.10 papers for programmer/a note on distributed computing.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for programmer/a note on distributed computing.pdf


--------------------------------------------------------------------------------
/F.10 papers for programmer/axiomatic-basis-computer-programming.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for programmer/axiomatic-basis-computer-programming.pdf


--------------------------------------------------------------------------------
/F.10 papers for programmer/fundamental-concepts-in-programming-languages.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for programmer/fundamental-concepts-in-programming-languages.pdf


--------------------------------------------------------------------------------
/F.10 papers for programmer/on the criteria to be used in decomposing systems into modules.txt:
--------------------------------------------------------------------------------
  1 |  
  2 | 
  3 | Snap Shots Options [Make this Shot larger] [Close]
  4 | Options
  5 | Disable
  6 | <about:blank>
  7 | Get Free Shots
  8 | <https://account.snap.com/signup.php?source=sunnyday.mit.edu&campaign=viral-foot>
  9 | <#>  <#>  <#>
 10 | <#>
 11 |  
 12 | 
 13 | Close
 14 | <http://shots.snap.com/explore/1437/?key=c98b2f96b7b77eed49adb7348d7fd0f5&src=sunnyday.mit.edu&cp=pub-logo&url=http%3A%2F%2Fwww.snap.com%2Fabout%2Fshots.php>
 15 | 
 16 | <http://www.snap.com/?source=&campaign=snap-shots-logo> Snap Shares for
 17 | charity
 18 | <http://www.snap.com/snapshots.php?source=sunnyday.mit.edu&campaign=charity-ribbon#shares>
 19 | 
 20 | 
 21 | 
 22 |   May 1996
 23 |   ACM, Classic of the Month </turing/cgi-bin/htimage/classics/banner.map>
 24 | 
 25 | 
 26 |     On the Criteria To Be Used in Decomposing Systems into Modules
 27 |     /D.L. Parnas
 28 |     Carnegie-Mellon University/
 29 | 
 30 | Reprinted from Communications of the ACM, Vol. 15, No. 12, December 1972
 31 | pp. 1053 - 1058 Copyright &#169; 1972, Association for Computing Machinery Inc.
 32 | 
 33 | This is a digitized copy derived from an ACM copyrighted work. It is not
 34 | guaranteed to be an accurate copy of the author's original work.
 35 | 
 36 | ------------------------------------------------------------------------
 37 | * *
 38 | 
 39 | *This paper discusses modularization as a mechanism for improving the
 40 | flexibility and comprehensibility of a system while allowing the
 41 | shortening of its development time. The effectiveness of a
 42 | "modularization" is dependent upon the criteria used in dividing the
 43 | system into modules. A system design problem is presented and both a
 44 | conventional and unconventional decomposition are described. It is shown
 45 | that the unconventional decompositions have distinct advantages for the
 46 | goals outlined. The criteria used in arriving at the decompositions are
 47 | discussed. The unconventional decomposition, if implemented with the
 48 | conventional assumption that a module consists of one or more
 49 | subroutines, will be less efficient in most cases. An alternative
 50 | approach to implementation which does not have this effect is sketched. *
 51 | 
 52 | *Key Words and Phrases: software, modules, modularity, software
 53 | engineering, KWIC index, software design *
 54 | 
 55 | *CR Categories: 4.0 *
 56 | 
 57 | ------------------------------------------------------------------------
 58 | 
 59 | 
 60 |       Introduction
 61 | 
 62 | A lucid statement of the philosophy of modular programming can be found
 63 | in a 1970 textbook on the design of system programs by Gouthier and Pont
 64 | [1,10.23], which we quote below:
 65 | 
 66 |     A well-defined segmentation of the project effort ensures system
 67 |     modularity. Each task forms a separate, distinct program module. At
 68 |     implementation time each module and its inputs and outputs are
 69 |     well-defined, there is no confusion in the intended interface with
 70 |     other system modules. At checkout time the integrity of the module
 71 |     is tested independently; there are few scheduling problems in
 72 |     synchronizing the completion of several tasks before checkout can
 73 |     begin. Finally, the system is maintained in modular fashion, system
 74 |     errors and deficiencies can be traced to specific system modules,
 75 |     thus limiting the scope of detailed error searching. 
 76 | 
 77 | Usually nothing is said about the criteria to be used in dividing the
 78 | system into modules. This paper will discuss that issue and, by means of
 79 | examples, suggest some criteria which can be used in decomposing a
 80 | system into modules.
 81 | 
 82 | 
 83 |       A Brief Status Report
 84 | 
 85 | The major advancement in the area of modular programming has been the
 86 | development of coding techniques and assemblers which (1) allow one
 87 | module to be written with little knowledge of the code in another
 88 | module, and (2) allow modules to be reassembled and replaced without
 89 | reassembly of the whole system. This facility is extremely valuable for
 90 | the production of large pieces of code, but the systems most often used
 91 | as examples of problem systems are highly modularized programs and make
 92 | use of the techniques mentioned above.
 93 | 
 94 | 
 95 |       Expected Benefits of Modular Programming
 96 | 
 97 | The benefits expected of modular programming are: (1)
 98 | managerial_development time should be shortened because separate groups
 99 | would work on each module with little need for communication: (2)
100 | product flexibility_it should be possible to make drastic changes to one
101 | module without a need to change others; (3) comprehensibility_it should
102 | be possible to study the system one module at a time. The whole system
103 | can therefore be better designed because it is better understood.
104 | 
105 | 
106 |       What Is Modularization?
107 | 
108 | Below are several partial system descriptions called /modularizations./
109 | In this context "module" is considered to be a responsibility assignment
110 | rather than a subprogram. The /modularizations/ include the design
111 | decisions which must be made /before /the work on independent modules
112 | can begin. Quite different decisions are included for each alternative,
113 | but in all cases the intention is to describe all "system level"
114 | decisions (i.e. decisions which affect more than one module).
115 | 
116 | 
117 |       Example System 1: A KWIC Index Production System
118 | 
119 | The following description of a KWIC index will suffice for this paper.
120 | The KWIC index system accepts an ordered set of lines, each line is an
121 | ordered set of words, and each word is an ordered set of characters. Any
122 | line may be "circularly shifted" by repeatedly removing the first word
123 | and appending it at the end of the line. The KWIC index system outputs a
124 | listing of all circular shifts of all lines in alphabetical order.
125 | 
126 | This is a small system. Except under extreme circumstances (huge data
127 | base, no supporting software), such a system could be produced by a good
128 | programmer within a week or two. Consequently, none of the difficulties
129 | motivating modular programming are important for this system. Because it
130 | is impractical to treat a large system thoroughly, we must go through
131 | the exercise of treating this problem as if it were a large project. We
132 | give one modularization which typifies current approaches, and another
133 | which has been used successfully in undergraduate class projects.
134 | 
135 | 
136 |         Modularization 1
137 | 
138 | We see the following modules:
139 | 
140 | *Module 1: Input. *This module reads the data lines from the input
141 | medium and stores them in core for processing by the remaining modules.
142 | The characters are packed four to a word, and an otherwise unused
143 | character is used to indicate the end of a word. An index is kept to
144 | show the starting address of each line.
145 | 
146 | *Module 2: Circular Shift.* This module is called after the input module
147 | has completed its work. It prepares an index which gives the address of
148 | the first character of each circular shift, and the original index of
149 | the line in the array made up by module 1. It leaves its output in core
150 | with words in pairs (original line number, starting address).
151 | 
152 | *Module 3: Alphabetizing.* This module takes as input the arrays
153 | produced by modules I and 2. It produces an array in the same format as
154 | that produced by module 2. In this case, however, the circular shifts
155 | are listed in another order (alphabetically).
156 | 
157 | *Module 4: Output.* Using the arrays produced by module 3 and module 1,
158 | this module produces a nicely formatted output listing all of the
159 | circular shifts. In a sophisticated system the actual start of each line
160 | will be marked, pointers to further information may be inserted, and the
161 | start of the circular shift may actually not be the first word in the
162 | line, etc.
163 | 
164 | *Module 5: Master Control. *This module does little more than control
165 | the sequencing among the other four modules. It may also handle error
166 | messages, space allocation, etc.
167 | 
168 | It should be clear that the above does not constitute a definitive
169 | document. Much more information would have to be supplied before work
170 | could start. The defining documents would include a number of pictures
171 | showing core formats, pointer conventions, calling conventions, etc. All
172 | of the interfaces between the four modules must be specified before work
173 | could begin.
174 | 
175 | This is a modularization in the sense meant by all proponents of modular
176 | programming. The system is divided into a number of modules with
177 | well-defined interfaces; each one is small enough and simple enough to
178 | be thoroughly understood and well programmed. Experiments on a small
179 | scale indicate that this is approximately the decomposition which would
180 | be proposed by most programmers for the task specified.
181 | 
182 | 
183 |         Modularization 2
184 | 
185 | We see the following modules:
186 | 
187 | *Module 1: Line Storage. * This module consists of a number of functions
188 | or subroutines which provide the means by which the user of the module
189 | may call on it. The function call /CHAR(r,w,c)/ will have as value an
190 | integer representing the cth character in the rth line, wth word. A call
191 | such as /SETCHAR(rpv,c,d)/ will cause the cth character in the wth word
192 | of the rth line to be the character represented by d (i.e. /CHAR(r,w,c)
193 | = d). WORDS(r)/ returns as value the number of words in line /r/. There
194 | are certain restrictions in the way that these routines may be called;
195 | if these restrictions are violated the routines "trap" to an
196 | error-handling subroutine which is to be provided by the users of the
197 | routine. Additional routines are available which reveal to the caller
198 | the number of words in any line, the number of lines currently stored,
199 | and the number of characters in any word. Functions /DELINE/ and
200 | /DELWRD/ are provided to delete portions of lines which have already
201 | been stored. A precise specification of a similar module has been given
202 | in [3] and [8] and we will not repeat it here.
203 | 
204 | *Module 2: INPUT.* This module reads the original lines from the input
205 | media and calls the line storage module to have them stored internally.
206 | 
207 | *Module 3: Circular Shifter. * The principal functions provided by this
208 | module are analogs of functions provided in module 1. The module creates
209 | the impression that we have created a line holder containing not all of
210 | the lines but all of the circular shifts of the lines. Thus the function
211 | call /CSCHAR(I,w,c)/ provides the value representing the cth character
212 | in the wth word of the Ith circular shift. It is specified that (1) if
213 | /i/ < /j/ then the shifts of line /i/ precede the shifts of line /j/,
214 | and (2) for each line the first shift is the original line, the second
215 | shift is obtained by making a one-word rotation to the first shift, etc.
216 | A function /CSSETUP/ is provided which must be called before the other
217 | functions have their specified values. For a more precise specification
218 | of such a module see [8].
219 | 
220 | *Module 4: Alphabetizer.* This module consists principally of two
221 | functions. One, /ALPH, /must be called before the other will have a
222 | defined value. The second, /ITH, /will serve as an index. /ITH(i) /will
223 | give the index of the circular shift which comes ith in the alphabetical
224 | ordering. Formal definitions of these functions are given [8].
225 | 
226 | *Module 5: Output. *This module will give the desired printing of set of
227 | lines or circular shifts.
228 | 
229 | *Module 6: Master Control.* Similar in function to the modularization above.
230 | 
231 | 
232 |         Comparison of the Two Modularizations
233 | 
234 | *General.* Both schemes will work. The first is quite conventional; the
235 | second has been used successfully in a class project [7]. Both will
236 | reduce the programming to the relatively independent programming of a
237 | number of small, manageable, programs.
238 | 
239 | Note first that the two decompositions may share all data
240 | representations and access methods. Our discussion is about two
241 | different ways of cutting up what /may /be the same object. A system
242 | built according to decomposition I could conceivably be identical /after
243 | assembly /to one built according to decomposition 2. The differences
244 | between the two alternatives are in the way that they are divided into
245 | the work assignments, and the interfaces between modules. The algorithms
246 | used in both cases /might /be identical. The systems are substantially
247 | different even if identical in the runnable representation. This is
248 | possible because the runnable representation need only be used for
249 | running; other representations are used for changing, documenting,
250 | understanding, etc. The two systems will not be identical in those other
251 | representations.
252 | 
253 | *Changeability. *There are a number of design decisions which are
254 | questionable and likely to change under many circumstances. This is a
255 | partial list.
256 | 
257 | 1. Input format.
258 | 
259 | 2. The decision to have all lines stored in core. For large jobs it may
260 | prove inconvenient or impractical to keep all of the lines in core at
261 | any one time.
262 | 
263 | 3. The decision to pack the characters four to a word. In cases where we
264 | are working with small amounts of data it may prove undesirable to pack
265 | the characters; time will be saved by a character per word layout. In
266 | other cases we may pack, but in different formats.
267 | 
268 | 4. The decision to make an index for the circular shifts rather that
269 | actually store them as such. Again, for a small index or a large core,
270 | writing them out may be the preferable approach. Alternatively, we may
271 | choose to prepare nothing during /CSSETUP /All computation could be done
272 | during the calls on the other functions such as /CSCHAR./
273 | 
274 | 5. The decision to alphabetize the list once, rather than either (a)
275 | search for each item when needed, or (b) partially alphabetize as is
276 | done in Hoare's FIND [2]. In a number of circumstances it would be
277 | advantageous to distribute the computation involved in alphabetization
278 | over the time required to produce the index.
279 | 
280 | By looking at these changes we can see the differences between the two
281 | modularizations. The first change is confined to one module in both
282 | decompositions. For the first decomposition the second change would
283 | result in changes in every module! The same is true of the third change.
284 | In the first decomposition the format of the line storage in core must
285 | be used by all of the programs. In the second decomposition the story is
286 | entirely different. Knowledge of the exact way that the lines are stored
287 | is entirely hidden from all but module 1. Any change in the manner of
288 | storage can be confined to that module!
289 | 
290 | In some versions of this system there was an additional module in the
291 | decomposition. A symbol table module (as specified in [3]) was used
292 | within the line storage module. This fact was completely invisible to
293 | the rest of the system.
294 | 
295 | The fourth change is confined to the circular shift module in the second
296 | decomposition, but in the first decomposition the alphabetizer and the
297 | output routines will also know of the change.
298 | 
299 | The fifth change will also prove difficult in the first decomposition.
300 | The output module will expect the index to have been completed before it
301 | began. The alphabetizer module in the second decomposition was designed
302 | so that a user could not detect when the alphabetization was actually
303 | done. No other module need be changed.
304 | 
305 | *Independent Development. *In the first modularization the interfaces
306 | between the modules are the fairly complex formats and table
307 | organizations described above. These represent design decisions which
308 | cannot be taken lightly. The table structure and organization are
309 | essential to the efficiency of the various modules and must be designed
310 | carefully. The development of those formats will be a major part of the
311 | module development and that part must be a joint effort among the
312 | several development groups. In the second modularization the interfaces
313 | are more abstract; they consist primarily in the function names and the
314 | numbers and types of the parameters. These are relatively simple
315 | decisions and the independent development of modules should begin much
316 | earlier.
317 | 
318 | *Comprehensibility. *To understand the output module in the first
319 | modularization, it will be necessary to understand something of the
320 | alphabetizer, the circular shifter, and the input module. There will be
321 | aspects of the tables used by output which will only make sense because
322 | of the way that the other modules work. There will be constraints on the
323 | structure of the tables due to the algorithms used in the other modules.
324 | The system will only be comprehensible as a whole. It is my subjective
325 | judgment that this is not true in the second modularization.
326 | 
327 | 
328 |       The Criteria
329 | 
330 | Many readers will now see what criteria were used in each decomposition.
331 | In the first decomposition the criterion used was to make each major
332 | step in the processing a module. One might say that to get the first
333 | decomposition one makes a flowchart. This is the most common approach to
334 | decomposition or modularization. It is an outgrowth of all programmer
335 | training which teaches us that we should begin with a rough flowchart
336 | and move from there to a detailed implementation. The flowchart was a
337 | useful abstraction for systems with on the order of 5,000-10,000
338 | instructions, but as we move beyond that it does not appear to be
339 | sufficient; something additional is needed.
340 | 
341 | The second decomposition was made using "information hiding" [41 as a
342 | criterion. The modules no longer correspond to steps in the processing.
343 | The line storage module, for example, is used in almost every action by
344 | the system. Alphabetization may or may not correspond to a phase in the
345 | processing according to the method used. Similarly, circular shift
346 | might, in some circumstances, not make any table at all but calculate
347 | each character as demanded. Every module in the second decomposition is
348 | characterized by its knowledge of a design decision which it hides from
349 | all others. Its interface or definition was chosen to reveal as little
350 | as possible about its inner workings.
351 | 
352 | 
353 |       Improvement in Circular Shift Module
354 | 
355 | To illustrate the impact of such a criterion let us take a closer look
356 | at the design of the circular shift module from the second
357 | decomposition. Hindsight now suggests that this definition reveals more
358 | information than necessary. While we carefully hid the method of storing
359 | or calculating the list of circular shifts, we specified an order to
360 | that list. Programs could be effectively written if we specified only (
361 | I ) that the lines indicated in circular shift's current definition will
362 | all exist in the table, (2) that no one of them would be included twice,
363 | and (3) that an additional function existed which would allow us to
364 | identify the original line given the shift. By prescribing the order for
365 | the shifts we have given more information than necessary and so
366 | unnecessarily restricted the class of systems that we can build without
367 | changing the definitions. For example, we have not allowed for a system
368 | in which the circular shifts were produced in alphabetical order, /ALPH
369 | is /empty, and /ITH /simply returns its argument as a value. Our failure
370 | to do this in constructing the systems with the second decomposition
371 | must clearly be classified as a design error.
372 | 
373 | In addition to the general criteria that each module hides some design
374 | decision from the rest of the system, we can mention some specific
375 | examples of decompositions which seem advisable.
376 | 
377 | 1. A /data structure, /its internal linkings, /accessing procedures and
378 | modifying procedures /are part of a single module. They are not shared
379 | by many modules as is conventionally done. This notion is perhaps just
380 | an elaboration of the assumptions behind the papers of Balzer [9] and
381 | Mealy [10]. Design with this in mind is clearly behind the design of
382 | BLISS [11].
383 | 
384 | 2. /The sequence of instructions necessary to call a given routine and
385 | the routine itself are part of the same module. /This rule was not
386 | relevant in the Fortran systems used for experimentation but it becomes
387 | essential for systems constructed in an assembly language. There are no
388 | perfect general calling sequences for real machines and consequently
389 | they tend to vary as we continue our search for the ideal sequence. By
390 | assigning responsibility for generating the call to the person
391 | responsible for the routine we make such improvements easier and also
392 | make it more feasible to have several distinct sequences in the same
393 | software structure.
394 | 
395 | 3. The /formats of control blocks /used in queues in operating systems
396 | and similar programs /must be hidden /within a "control block module."
397 | It is conventional to make such formats the interfaces between various
398 | modules. Because design evolution forces frequent changes on control
399 | block formats such a decision often proves extremely costly.
400 | 
401 | 4. /Character codes, alphabetic orderings and similar data should be
402 | hidden /in a module for greatest flexibility. 5. The sequence in which
403 | certain items will be processed should (as far as practical) be hidden
404 | within a single module. Various changes ranging from equipment additions
405 | to unavailability of certain resources in an operating system make
406 | sequencing extremely variable.
407 | 
408 | 
409 |       Efficiency and Implementation
410 | 
411 | If we are not careful the second decomposition will prove to be much
412 | less efficient than the first. If each of the functions is actually
413 | implemented as a procedure with an elaborate calling sequence there will
414 | be a great deal of such calling due to the repeated switching between
415 | modules. The first decomposition will not suffer from this problem
416 | because there is relatively infrequent transfer of control between modules.
417 | 
418 | To save the procedure call overhead, yet gain the advantages that we
419 | have seen above, we must implement these modules in an unusual way. In
420 | many cases the routines will be best inserted into the code by an
421 | assembler; in other cases, highly specialized and efficient transfers
422 | would be inserted. To successfully and efficiently make use of the
423 | second type of decomposition will require a tool by means of which
424 | programs may be written as if the functions were subroutines, but
425 | assembled by whatever implementation is appropriate. If such a technique
426 | is used, the separation between modules may not be clear in the final
427 | code. For that reason additional program modification features would
428 | also be useful. In other words, the several representations of the
429 | program (which were mentioned earlier) must be maintained in the machine
430 | together with a program performing mapping between them.
431 | 
432 | 
433 |       A Decomposition Common to a Compiler and Interpretor for the Same
434 |       Language
435 | 
436 | In an earlier attempt to apply these decomposition rules to a design
437 | project we constructed a translator for a Markov algorithm expressed in
438 | the notation described in [6]. Although it was not our intention to
439 | investigate the relation between compiling and interpretive translators
440 | of a language, we discovered that our decomposition was valid for a pure
441 | compiler and several varieties of interpreters for the language.
442 | Although there would be deep and substantial differences in the final
443 | running representations of each type of compiler, we found that the
444 | decisions implicit in the early decomposition held for all.
445 | 
446 | This would not have been true if we had divided responsibilities along
447 | the classical lines for either a compiler or interpretor (e.g. syntax
448 | recognizer, code generator, run time routines for a compiler). Instead
449 | the decomposition was based upon the hiding of various decisions as in
450 | the example above. Thus register representation, search algorithm, rule
451 | interpretation etc. were modules and these problems existed in both
452 | compiling and interpretive translators. Not only was the decomposition
453 | valid in all cases, but many of the routines could be used with only
454 | slight changes in any sort of translator.
455 | 
456 | This example provides additional support for the statement that the
457 | order in time in which processing is expected to take place should not
458 | be used in making the decomposition into modules. It further provides
459 | evidence that a careful job of decomposition can result in considerable
460 | carryover of work from one project to another.
461 | 
462 | A more detailed discussion of this example was contained in [8].
463 | 
464 | 
465 |       Hierarchical Structure
466 | 
467 | We can find a program hierarchy in the sense illustrated by Dijkstra [5]
468 | in the system defined according to decomposition 2. If a symbol table
469 | exists, it functions without any of the other modules, hence it is on
470 | level 1. Line storage is on level I if no symbol table is used or it is
471 | on level 2 otherwise. Input and Circular Shifter require line storage
472 | for their functioning. Output and Alphabetizer will require Circular
473 | Shifter, but since Circular Shifter and line holder are in some sense
474 | compatible, it would be easy to build a parameterized version of those
475 | routines which could be used to alphabetize or print out either the
476 | original lines or the circular shifts. In the first usage they would not
477 | require Circular Shifter; in the second they would. In other words, our
478 | design has allowed us to have a single representation for programs which
479 | may run at either of two levels in the hierarchy.
480 | 
481 | In discussions of system structure it is easy to confuse the benefits of
482 | a good decomposition with those of a hierarchical structure. We have a
483 | hierarchical structure if a certain relation may be defined between the
484 | modules or programs and that relation is a partial ordering. The
485 | relation we are concerned with is "uses" or "depends upon." It is better
486 | to use a relation between programs since in many cases one module
487 | depends upon only part of another module (e.g. Circular Shifter depends
488 | only on the output parts of the line holder and not on the correct
489 | working of /SKI WORD). /It is conceivable that we could obtain the
490 | benefits that we have been discussing without such a partial ordering,
491 | e.g. if all the modules were on the same level. The partial ordering
492 | gives us two additional benefits. First, parts of the system are
493 | benefited (simplified) because they use the services of lower levels.
494 | Second, we are able to cut off the upper levels and still have a usable
495 | and useful product. For example, the symbol table can be used in other
496 | applications; the line holder could be the basis of a question answering
497 | system. The existence of the hierarchical structure assures us that we
498 | can "prune" off the upper levels of the tree and start a new tree on the
499 | old trunk. If we had designed a system in which the "low level" modules
500 | made some use of the "high level" modules, we would not have the
501 | hierarchy, we would find it much harder to remove portions of the
502 | system, and "level" would not have much meaning in the system.
503 | 
504 | Since it is conceivable that we could have a system with the type of
505 | decomposition shown in version I (important design decisions in the
506 | interfaces) but retaining a hierarchical structure, we must conclude
507 | that hierarchical structure and "clean" decomposition are two desirable
508 | but /independent /properties of a system structure.
509 | 
510 | 
511 |       Conclusion
512 | 
513 | We have tried to demonstrate by these examples that it is almost always
514 | incorrect to begin the decomposition of a system into modules on the
515 | basis of a flowchart. We propose instead that one begins with a list of
516 | difficult design decisions or design decisions which are likely to
517 | change. Each module is then designed to hide such a decision from the
518 | others. Since, in most cases, design decisions transcend time of
519 | execution, modules will not correspond to steps in the processing. To
520 | achieve an efficient implementation we must abandon the assumption that
521 | a module is one or more subroutines, and instead allow subroutines and
522 | programs to be assembled collections of code from various modules.
523 | 
524 | Received August 1971; revised November 1971
525 | 
526 | 
527 |       References
528 | 
529 | I. Gauthier, Richard, and Pont, Stephen. /Designing Systems Programs,
530 | (C), /Prentice-Hall, Englewood Cliffs, N.J., 1970.
531 | 
532 | 2. Hoare, C. A. R. Proof of a program, FIND. /Comm. ACM 14 /1 (Jan.
533 | 1971), 39-45.
534 | 
535 | 3. Parnas, D. L. A technique for software module specification with
536 | examples. /Comm. ACM 15, /5 (May, 1972), 330-336.
537 | 
538 | 4. Parnas, D. L. Information distribution aspects of design methodology.
539 | Tech. Rept., Depart. Computer Science, Carnegie Mellon U., Pittsburgh,
540 | Pa., 1971. Also presented at the IFIP
541 | 
542 | Congress 1971, Ljubljana, Yugoslavia.
543 | 
544 | 5. Dijkstra, E. W. The structure of "THE"-multiprogramming system.
545 | /Comm. ACM 11, /5 (May 1968), 341-346.
546 | 
547 | 6. Galler, B., and Perlis, A. J. /A View of /Programming /Languages,
548 | /Addison-Wesley, Reading, Mass., 1970.
549 | 
550 | 7. Parnas, D. L. A course on software engineering. Proc. SIGCSE
551 | Technical Symposium, Mar. 1972.
552 | 
553 | 8. Parnas, D. L. On the criteria to be used in decomposing systems into
554 | modules. Tech. Rept., Depart.. Computer Science, Carnegie-Mellon U.,
555 | Pittsburgh, Pa., 1971.
556 | 
557 | 9. Balzer, R. M. Dataless programming. Proc. AFIPS 1967 FJCC, Vol. 31,
558 | AFIPS Press, Montvale, N.J., pp. 535-544.
559 | 
560 | 10. Mealy, G. H. Another look at data. Proc. AFIPS 1967 FJCC Vol. 31,
561 | AFIPS Press, Montvale, N.J., pp. 525-534.
562 | 
563 | 11. Wulf, W. A., Russell, D. B., and Habermann, A. N. BLISS A language
564 | for systems programming /Comm. ACM 14, /12 (Dec. 1971), 780-790.
565 | 
566 | ------------------------------------------------------------------------
567 | /MAC </~clore/>/ / 1996-May-4
568 | 


--------------------------------------------------------------------------------
/F.10 papers for programmer/recursive.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for programmer/recursive.pdf


--------------------------------------------------------------------------------
/F.10 papers for programmer/time-clocks.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/F.10 papers for programmer/time-clocks.pdf


--------------------------------------------------------------------------------
/G.编程语言/Erlang-game-server开发实践.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/G.编程语言/Erlang-game-server开发实践.pdf


--------------------------------------------------------------------------------
/G.编程语言/Functional Design Patterns.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/G.编程语言/Functional Design Patterns.pdf


--------------------------------------------------------------------------------
/G.编程语言/Golang/Building_Go_Web_Application.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/G.编程语言/Golang/Building_Go_Web_Application.pdf


--------------------------------------------------------------------------------
/G.编程语言/Golang/Golang在京东的使用.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/G.编程语言/Golang/Golang在京东的使用.pptx


--------------------------------------------------------------------------------
/G.编程语言/Golang/Golang在美团的应用用.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/G.编程语言/Golang/Golang在美团的应用用.pdf


--------------------------------------------------------------------------------
/G.编程语言/Golang/Golang常见的坑和编程模式.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/G.编程语言/Golang/Golang常见的坑和编程模式.pptx


--------------------------------------------------------------------------------
/G.编程语言/Golang/Golang性能优化.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/G.编程语言/Golang/Golang性能优化.pdf


--------------------------------------------------------------------------------
/G.编程语言/Golang/Go在分布式系统开发中的应用.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/G.编程语言/Golang/Go在分布式系统开发中的应用.pdf


--------------------------------------------------------------------------------
/G.编程语言/Golang/Go并发编程.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/G.编程语言/Golang/Go并发编程.pdf


--------------------------------------------------------------------------------
/G.编程语言/Golang/Go语言构建高并发分布式系统实践.ppt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/G.编程语言/Golang/Go语言构建高并发分布式系统实践.ppt


--------------------------------------------------------------------------------
/G.编程语言/Golang/QCon上海2015-Go语言发展状况-许式伟.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/G.编程语言/Golang/QCon上海2015-Go语言发展状况-许式伟.pdf


--------------------------------------------------------------------------------
/G.编程语言/Golang/Think-In-Go.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/G.编程语言/Golang/Think-In-Go.pdf


--------------------------------------------------------------------------------
/G.编程语言/Haskell in the Large.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/G.编程语言/Haskell in the Large.pdf


--------------------------------------------------------------------------------
/G.编程语言/Lua在Nginx中的应用.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/G.编程语言/Lua在Nginx中的应用.pdf


--------------------------------------------------------------------------------
/G.编程语言/Memory-and-C++-debugging-at-EA-2015.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/G.编程语言/Memory-and-C++-debugging-at-EA-2015.pptx


--------------------------------------------------------------------------------
/G.编程语言/Python3.5中async_await特性的实现.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/G.编程语言/Python3.5中async_await特性的实现.pdf


--------------------------------------------------------------------------------
/G.编程语言/Scala在挖财的应用实践-infoq.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/G.编程语言/Scala在挖财的应用实践-infoq.pdf


--------------------------------------------------------------------------------
/G.编程语言/pygrunn2014.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/G.编程语言/pygrunn2014.pdf


--------------------------------------------------------------------------------
/H.团队与产品/AS2017-《从大厂到创业公司,架构师经历的三次转身》-曹祖鹏.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/H.团队与产品/AS2017-《从大厂到创业公司,架构师经历的三次转身》-曹祖鹏.pdf


--------------------------------------------------------------------------------
/H.团队与产品/Netflix Culture, Freedom and Responsibility.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/H.团队与产品/Netflix Culture, Freedom and Responsibility.pptx


--------------------------------------------------------------------------------
/H.团队与产品/QCon上海2015-软件开发vs.产品开发- Peter Neumark.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/H.团队与产品/QCon上海2015-软件开发vs.产品开发- Peter Neumark.pdf


--------------------------------------------------------------------------------
/H.团队与产品/《微信背后的产品观》-张小龙(139页手抄版).pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/H.团队与产品/《微信背后的产品观》-张小龙(139页手抄版).pdf


--------------------------------------------------------------------------------
/H.团队与产品/互联网交互设计方法.ppt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/H.团队与产品/互联网交互设计方法.ppt


--------------------------------------------------------------------------------
/H.团队与产品/产品设计与用户体验Good(来自腾讯CEO马化腾的PPT).ppt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/H.团队与产品/产品设计与用户体验Good(来自腾讯CEO马化腾的PPT).ppt


--------------------------------------------------------------------------------
/H.团队与产品/腾讯:从概念到产品-需求分析过程.ppt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/H.团队与产品/腾讯:从概念到产品-需求分析过程.ppt


--------------------------------------------------------------------------------
/I.性能优化/Linux Profiling at Netflix.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/I.性能优化/Linux Profiling at Netflix.pdf


--------------------------------------------------------------------------------
/I.性能优化/Linux System and Performance Monitoring (Darren Hoch).pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/I.性能优化/Linux System and Performance Monitoring (Darren Hoch).pdf


--------------------------------------------------------------------------------
/I.性能优化/mature-optimization.epub:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/I.性能优化/mature-optimization.epub


--------------------------------------------------------------------------------
/I.性能优化/如何优化JAVA应用.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/I.性能优化/如何优化JAVA应用.pptx


--------------------------------------------------------------------------------
/I.性能优化/并发编程实战.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/I.性能优化/并发编程实战.pptx


--------------------------------------------------------------------------------
/I.性能优化/阿里云 网络性能调优.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/I.性能优化/阿里云 网络性能调优.pdf


--------------------------------------------------------------------------------
/K.金融-支付/+AS2017-《点融网金融科技的大数据解决方案》-单忆南.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/K.金融-支付/+AS2017-《点融网金融科技的大数据解决方案》-单忆南.pdf


--------------------------------------------------------------------------------
/K.金融-支付/+AS2017-《58到家支付系统架构与实践》-蔡敏++.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/K.金融-支付/+AS2017-《58到家支付系统架构与实践》-蔡敏++.pdf


--------------------------------------------------------------------------------
/K.金融-支付/+AS2017-《支撑千万亿级交易额的银行云计算架构演进》-龙成.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/K.金融-支付/+AS2017-《支撑千万亿级交易额的银行云计算架构演进》-龙成.pdf


--------------------------------------------------------------------------------
/K.金融-支付/02刘恒-盒子科技聚合支付系统演进.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/K.金融-支付/02刘恒-盒子科技聚合支付系统演进.pdf


--------------------------------------------------------------------------------
/K.金融-支付/03李胜军%40美的支付架构演进-最终版.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/K.金融-支付/03李胜军%40美的支付架构演进-最终版.pdf


--------------------------------------------------------------------------------
/K.金融-支付/04江谷强%40团贷网分布式事务消息.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/K.金融-支付/04江谷强%40团贷网分布式事务消息.pdf


--------------------------------------------------------------------------------
/K.金融-支付/AS2017-《区块链技术及其在金融领域的落地实践》-韩昭芳.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/K.金融-支付/AS2017-《区块链技术及其在金融领域的落地实践》-韩昭芳.pdf


--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
 1 | # 互联网公司经典技术架构
 2 | 
 3 | 以数字开头的目录为互联网公司的架构文档。
 4 | 
 5 | 以英文字母A,B,C,D开头的目录按照主题分类的技术架构文档。
 6 | 
 7 | 在互联网公司架构文档中的资料,不重复放入按主题分类的目录中。  
 8 | 
 9 | ## 经典互联网公司技术架构
10 | 
11 | [经典互联网技术架构](https://github.com/davideuler/architecture.of.internet-product)
12 | 
13 | 
14 | ## 国内互联网公司技术架构
15 | [微信/腾讯技术架构](https://github.com/davideuler/architecture.wechat-tencent)
16 | 
17 | [淘宝/阿里巴巴技术架构](https://github.com/davideuler/architecture.taobao-alibaba)
18 | 
19 | [美团点评技术架构](https://github.com/davideuler/architecture.meituan-dianping)
20 | 
21 | 
22 | ## 国内互联网公司开源项目
23 | 
24 | [腾讯开源项目](https://github.com/Tencent/)
25 | 
26 | [阿里巴巴开源项目](https://github.com/alibaba)
27 | 
28 | [美团点评开源项目](https://github.com/meituan-dianping)  
29 | 
30 | [百度开源项目](https://github.com/baidu)
31 | 
32 | [奇虎360开源项目](https://github.com/qihoo360)
33 | 
34 | 
35 | 
36 | ## 提交经典技术架构文章
37 | 欢迎提交 Pull Request, 或者 Github上面提交Issue, 贴上您觉得经典的架构介绍PPT/PDF或者网页URL。
38 | 
39 | ## 相关推荐
40 | * [《后端架构师技术图谱》](https://github.com/xingshaocheng/architect-awesome)
41 | * [国内各大技术会议活动资料汇总,如:QCon,全球运维技术大会,全球技术领导力峰会,架构师峰会等](https://github.com/baiyutang/ppt)
42 | ## 互联网架构/电商/高并发架构交流QQ群
43 | 
44 | 群名称:互联网公司架构交流
45 | 
46 | 群号:895960322
47 | 
48 | 不定期分享一线互联网公司技术架构,电商架构,高并发系统架构,大数据架构,扫码加入QQ群:
49 | 
50 | ![互联网公司架构交流QQ群](其他/architecture-qq-group.png)
51 | 


--------------------------------------------------------------------------------
/其他/Competitive Programmer’s Handbook.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/其他/Competitive Programmer’s Handbook.pdf


--------------------------------------------------------------------------------
/其他/How Complex Systems Fail.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/其他/How Complex Systems Fail.pdf


--------------------------------------------------------------------------------
/其他/QCon上海2015-Elasticsearch集群中JVM问题的应对之策-卞泽鑫.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/其他/QCon上海2015-Elasticsearch集群中JVM问题的应对之策-卞泽鑫.pdf


--------------------------------------------------------------------------------
/其他/architecture-qq-group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/其他/architecture-qq-group.png


--------------------------------------------------------------------------------
/其他/从零开始写一个简单的操作系统.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/其他/从零开始写一个简单的操作系统.pdf


--------------------------------------------------------------------------------
/其他/小米开源-小米的经验分享.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/其他/小米开源-小米的经验分享.pdf


--------------------------------------------------------------------------------
/其他/网易开源.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/其他/网易开源.pptx


--------------------------------------------------------------------------------
/其他/蔡学镛架构设计方法-2014-8-17.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/其他/蔡学镛架构设计方法-2014-8-17.pdf


--------------------------------------------------------------------------------
/其他/软件架构原理-IBM.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/其他/软件架构原理-IBM.pdf


--------------------------------------------------------------------------------
/其他/金山云 当游戏遇到云-3.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davideuler/architecture.of.internet-product/6473bc0e6a2d55b8f69348ef089daaeef4ddd5a9/其他/金山云 当游戏遇到云-3.pdf


--------------------------------------------------------------------------------