`
hideto
  • 浏览: 2678030 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Shared Nothing Architecture与PHP的童话

阅读更多
PHP的发明者Rasmus Lerdorf同时也发明了SNA(shared nothing architecture)的概念

什么意思呢?

对Web Servers做scaling时如果将session等状态保持在各个节点上,这样状态的复制就很成问题,所以SNA告诉你在节点上不要保存状态,session这种东西可以存在数据库或内存缓存中嘛,然后cookie或URL中带一个加密string用来查询session状态就可以完美解决session状态了。

但显然这给数据库增加了压力,但是数据库的scaling能力比Web Servers做session复制要好多了。况且我们在数据库前加一memcached将大量的数据库Reads的工作做了,而数据库只用处理数量不多的Writes工作,这大大提高了系统的性能。每个Web Server节点里不用cache,而是外部分布式memcached或session server,这同时避免了cache-coherence问题。

PHP默认就是SNA的,所以许多人就天真的认为PHP比Java、ASP.NET的scaling能力要好。而Java、ASP.NET默认允许分享数据允许缓存,所以需要程序员自己处理哪些情况下使用SNA,It’s easy to write non-scalable software on those platforms.

所以说PHP的fans们不要再在自己用甜言蜜语构建的城堡里安然自得了,看看Wikipedia上Scalability的定义:
Scalability is the capability of a system to increase performance under an increased load when resources (typically hardware) are added.

简单的说,Scalability是与开发环境开发语言没有丁点关系的,所以说“PHP性能更好更适合做大型网站”真是有点无理取闹!
分享到:
评论

相关推荐

    Shared-Nothing MPP Databases with Distributed User-Defined Functions

    Shared-Nothing MPP Databases with Distributed User-Defined Functions Versus Hadoop/Map-Reduce for Large Data Analytics

    一种Shared-Nothing分布式数据库的构建方法.pdf

    本文提到的“Shared-Nothing”架构是一种分布式数据库架构,其核心设计理念是每个节点拥有自己的处理器、内存、存储和操作系统,节点之间通过网络连接,但不会共享任何计算资源。 Shared-Nothing架构的分布式数据库...

    SQL-on-Hadoop: Full Circle Back to Shared-Nothing Database Architectures

    本文献《SQL-on-Hadoop: Full Circle Back to Shared-Nothing Database Architectures》由Avrilia Floratou、Umar Farooq Minhas及Fatma Özcan三位来自IBM Almaden研究中心的研究员共同撰写。该文探讨了SQL在Hadoop...

    论文研究-Space Partitioned AFDX Switch Design Based on Shared Memory Architecture.pdf

    为了改善这些问题,本文提出了一种新型架构的交换机——空分共享内存交换机(Space Partitioned Shared Memory Switch,简称SPSMS)。SPSMS交换机的设计理念是对传统共享内存架构进行空间分离,即为每个输出端口分配...

    6076155_Shared_register_architecture_for.pdf

    CPU Shared_register_architecture_for

    5481693_Shared_register_architecture_for.pdf

    外国专利参考: Shared_register_architecture_for

    Parallel Computer Architecture - A Hardware Software Approach

    This book explains the forces behind this convergence of shared-memory, message-passing, data parallel, and data-driven computing architectures. It then examines the design issues that are critical ...

    GPDBAGuide.pdf

    MPP (also known as a shared nothing architecture) refers to systems with two or more processors that cooperate to carry out an operation - each processor with its own memory, operating system and ...

    Open认证和Shared认证.docx

    Open认证和Shared认证是两种常见的无线网络接入认证方式,它们主要用于确保只有授权的设备能够连接到无线网络,保护网络安全。以下是对这两种认证方式的详细解释。 Open认证,也称为开放系统认证,是一种相对简单的...

    Parallel Computer Architecture.rar

    This book explains the forces behind this convergence of shared-memory, message-passing, data parallel, and data-driven computing architectures. It then examines the design issues that are critical ...

    AS3 SharedObject 本地通讯 小例子

    5. **同步与异步操作**:SharedObject提供了同步和异步两种保存数据的方式。同步操作会阻塞当前线程直到数据保存完成,适合数据量小且不影响用户体验的情况;异步操作则在后台进行,不会阻塞用户界面,适用于大量...

    MySQL-shared-5.6.29

    Linux系统安装MySQL-shared-5.6.29-1.linux_glibc2.5.x86_64.rpm。

    智能指针shared_ptr的Demo

    此外,`shared_ptr`还支持拷贝构造和赋值操作,拷贝或赋值时,所有`shared_ptr`实例都会共享同一个引用计数,这样可以确保只有在没有`shared_ptr`指向目标对象时才释放内存。 在C++中,`shared_ptr`通常用于替代...

    解决windows下安装Apache+PHP出现LoadModule takes two

    在Windows环境下配置Apache与PHP集成时,可能会遇到一个常见的错误提示:“LoadModule takes two arguments, a module name and the name of a shared object file to load it from”,这通常出现在Apache的配置文件...

    Laravel开发-shared

    Laravel开发-shared Laravel框架。

    前端开源库-rw-shared

    "rw-shared"就是这样一款专为前端开发者设计的开源代码库,它旨在提供一系列可复用的组件和工具,以实现前端应用的高效共享与协作。 "rw-shared"库的核心目标是实现代码的共享,这通常意味着它包含了多个模块,这些...

    maven-shared-utils-3.2.1.jar

    maven-shared-utils-3.2.1.jar

    Compute Architecture of Intel Processor Graphics

    在内存架构方面,统一内存架构(Unified Memory Architecture)和共享内存一致性(Shared Memory Coherency)是两个重要概念。统一内存架构使得CPU和GPU可以访问同一块物理内存,简化了内存管理。共享内存一致性则...

    ffmpeg-shared-3.3.3-20160116-win64-shared.7z

    在给定的压缩包 "ffmpeg-shared-3.3.3-20160116-win64-shared.7z" 中,包含了FFmpeg 3.3.3版本的共享库(shared libraries),这是针对Windows 64位平台编译的。这个版本在Visual Studio 2015环境下已经过测试,可以...

    Poco SharedLibrary

    Poco::SharedLibrary是Poco库提供的与操作系统动态链接器/加载器交互的接口。通过它,开发者能够加载、查询符号地址以及卸载共享库。 - **头文件引入**:首先需要包含`Poco/SharedLibrary.h`头文件。 - **基本...

Global site tag (gtag.js) - Google Analytics