关于IO会涉及到阻塞、非阻塞、多路复用、同步、异步、BIO、NIO、AIO等几个知识点。知识点虽然不难但平常经常容易搞混,特此Mark下,与君共勉。
阻塞IO情况下,当用户调用 read 后,用户线程会被阻塞,等内核数据准备好并且数据从内核缓冲区拷贝到用户态缓存区后 read 才会返回。可以看到是阻塞的两个部分。
非阻塞IO发出read请求后发现数据没准备好,会继续往下执行,此时应用程序会不断轮询polling内核询问数据是否准备好,当数据没有准备好时,内核立即返回EWOULDBLOCK错误。直到数据被拷贝到应用程序缓冲区,read请求才获取到结果。并且你要注意!这里最后一次 read 调用获取数据的过程,是一个同步的过程,是需要等待的过程。这里的同步指的是 内核态的数据拷贝到用户程序的缓存区这个过程 。
非阻塞情况下无可用数据时,应用程序每次轮询内核看数据是否准备好了也耗费CPU,能否不让它轮询,当内核缓冲区数据准备好了,以事件通知当机制告知应用进程数据准备好了呢?应用进程在没有收到数据准备好的事件通知信号时可以忙写其他的工作。此时 IO多路复用 就派上用场了。
IO多路复用中文比较让人头大,IO多路复用的原文叫 I/O multiplexing,这里的 multiplexing 指的其实是在单个线程通过记录跟踪每一个Sock(I/O流)的状态来同时管理多个I/O流 发明它的目的是尽量多的提高服务器的吞吐能力。实现一个线程监控多个IO请求,哪个IO有请求就把数据从内核拷贝到进程缓冲区,拷贝期间是阻塞的!现在已经可以通过采用mmap地址映射的方法,达到内存共享效果,避免真复制,提高效率。
像 select、poll、epoll 都是I/O多路复用的具体的实现。
select是第一版IO复用,提出后暴漏了很多问题。
poll 修复了 select 的很多问题。
但是poll仍然不是线程安全的, 这就意味着不管服务器有多强悍,你也只能在一个线程里面处理一组 I/O 流。你当然可以拿多进程来配合了,不过然后你就有了多进程的各种问题。
epoll 可以说是 I/O 多路复用最新的一个实现,epoll 修复了poll 和select绝大部分问题, 比如:
横轴 Dead connections 是链接数的意思,叫这个名字只是它的测试工具叫deadcon。纵轴是每秒处理请求的数量,可看到epoll每秒处理请求的数量基本不会随着链接变多而下降的。poll 和/dev/poll 就很惨了。但 epoll 有个致命的缺点是只有 linux 支持。
比如平常Nginx为何可以支持4W的QPS是因为它会使用目标平台上面最高效的I/O多路复用模型。
然后你会发现上面的提到过的 *** 作都不是真正的异步,因为两个阶段总要等待会儿!而真正的异步 I/O 是内核数据准备好和数据从内核态拷贝到用户态这两个过程都不用等待。
很庆幸,Linux给我们准备了 aio_read 跟 aio_write 函数实现真实的异步,当用户发起aio_read请求后就会自动返回。内核会自动将数据从内核缓冲区拷贝到用户进程空间,应用进程啥都不用管。
我强力推荐C++后端开发免费学习地址:C/C++Linux服务器开发/后台架构师零声教育-学习视频教程-腾讯课堂
同步跟异步的区别在于 数据从内核空间拷贝到用户空间是否由用户线程完成 ,这里又分为同步阻塞跟同步非阻塞两种。
我们以同步非阻塞为例,如下可看到,在将数据从内核拷贝到用户空间这一过程,是由用户线程阻塞完成的。
可发现,用户在调用之后会立即返回,由内核完成数据的拷贝工作,并通知用户线程,进行回调。
在Java中,我们使用socket进行网络通信,IO主要有三种模式,主要看 内核支持 哪些。
同步阻塞IO ,每个客户端的Socket连接请求,服务端都会对应有个处理线程与之对应,对于没有分配到处理线程的连接就会被阻塞或者拒绝。相当于是 一个连接一个线程 。
BIO特点 :
常量:
主类:
服务端监听线程:
服务端处理线程:
客户端:
同步非阻塞IO之NIO :服务器端保存一个Socket连接列表,然后对这个列表进行轮询,如果发现某个Socket端口上有数据可读时说明读就绪,则调用该socket连接的相应读 *** 作。如果发现某个 Socket端口上有数据可写时说明写就绪,则调用该socket连接的相应写 *** 作。如果某个端口的Socket连接已经中断,则调用相应的析构方法关闭该端口。这样能充分利用服务器资源,效率得到了很大提高,在进行IO *** 作请求时候再用个线程去处理,是 一个请求一个线程 。Java中使用Selector、Channel、Buffer来实现上述效果。
每个线程中包含一个 Selector 对象,它相当于一个通道管理器,可以实现在一个线程中处理多个通道的目的,减少线程的创建数量。远程连接对应一个channel,数据的读写通过buffer均在同一个 channel 中完成,并且数据的读写是非阻塞的。通道创建后需要注册在 selector 中,同时需要为该通道注册感兴趣事件(客户端连接服务端事件、服务端接收客户端连接事件、读事件、写事件), selector 线程需要采用 轮训 的方式调用 selector 的 select 函数,直到所有注册通道中有兴趣的事件发生,则返回,否则一直阻塞。而后循环处理所有就绪的感兴趣事件。以上步骤解决BIO的两个瓶颈:
下面对以下三个概念做一个简单介绍,Java NIO由以下三个核心部分组成:
channel和buffer有好几种类型。下面是Java NIO中的一些主要channel的实现:
正如你所看到的,这些通道涵盖了UDP和TCP网络IO,以及文件IO。以下是Java NIO里关键的buffer实现:
在微服务阶段,一个请求可能涉及到多个不同服务之间的跨服务器调用,如果你想实现高性能的PRC框架来进行数据传输,那就可以基于Java NIO做个支持长连接、自定义协议、高并发的框架,比如Netty。Netty本身就是一个基于NIO的网络框架, 封装了Java NIO那些复杂的底层细节,给你提供简单好用的抽象概念来编程。比如Dubbo底层就是用的Netty。
AIO是异步非阻塞IO,相比NIO更进一步,进程读取数据时只负责发送跟接收指令,数据的准备工作完全由 *** 作系统来处理。
推荐一个零声教育C/C++后台开发的免费公开课程,个人觉得老师讲得不错,分享给大家:C/C++后台开发高级架构师,内容包括Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,C/C++Linux服务器开发/后台架构师零声教育-学习视频教程-腾讯课堂 立即学习
原文:阻塞、非阻塞、多路复用、同步、异步、BIO、NIO、AIO 一锅端
pSpace在企业信息化的作用
对于现代工业企业,如何能使决策者随时查看生产过程数据,以便快速地做出更为灵活的商业决策,是企业信息化建设的关键,在企业MES所关注的各项资源中,生产过程信息依然是重要的资源,如果不能解决生产过程信息实时有效上传的问题,将仍然无法充分利用和保障MES及ERP管理系统的投资。
企业MES核心是实时历史数据库,实时数据库可用于工厂过程的自动采集、存储和监视,可在线存储每个工艺过程点的多年数据,可以提供清晰、精确的 *** 作情况画面,用户既可浏览工厂当前的生产情况,也可回顾过去的生产情况,可以说,实时数据库对于流程工厂来说就如同飞机上的“黑匣子”。
工厂的历史数据对公司来说是很有价值的,实时数据库的核心就是数据档案管理,它采集并存储与流程相关的上千点的数据,多年应用历史数据库管理的经验告诉我们,现在很难知道将来进行分析时哪些数据是必须的。
因此,保存所有的数据是防止丢失所需信息的最好方法。
此外,要改进产品,必须具备与之相关物料的信息,并了解当前和过去的 *** 作状态。
实时数据库采集、存储流程信息,用来指导工艺改进、降低物料、增加产量。
实时数据库为最终用户提供了快捷、高效的工厂信息,由于工厂实时数据存放在统一的数据库中,工厂中的所有人,无论在什么地方都可看到和分析相同的信息,客户端的应用程序可使用户很容易对工厂级实施管理,诸如工艺改进、质量控制、故障预防维护等。
通过实时数据库可集成产品计划、维护管理、专家系统、化验室信息系统、模拟与优化等应用程序,在业务管理和实时生产之间起到桥梁作用。
北京三维力控推出的pSpaceTM就是这样一个极具竞争力的软件产品,pSpaceTM作为企业级实时历史数据库,通过极高速度的数据采集、大量历史数据存储和大量实时过程数据的发布,实现企业信息集成的基础平台,它为企业实现底层监控、信息集成提供了全方位的软件解决方案。
pSpace可以构成一个复杂的企业信息化系统,企业信息化系统是采用了实时历史数据库技术的计算机系统,该系统不仅仅是一组对数据进行处理的软件,也不只是一个数据库。
一个实时历史数据库系统是一个实际可运行的,按照数据方式存储、维护和向应用程序提供数据或信息支持的系统,它是存储介质、处理对象和管理系统的 体,由数据库、硬件、软件几部分组成,pSpace是企业信息化的核心处理软件平台。
pSpace 企业级实时历史数据库为完全的分布式结构,可任意组建应用模式,支持C/S和B/S应用;它可以提供丰富的企业级信息系统客户端应用和工具;大容量支持企业级应用,内部实现高数据压缩率,可实现历史数据的大量存储,灵活的扩展结构可满足各种需求,具备广泛的安全性和可跟踪性。
pSpace实时历史数据库能完成来自DCS、FCS和其它控制系统的实时数据的采集、存储、压缩,实时数据和历史数据的检索、统计、分析、建模,并进行曲线、图表显示,实现了流程工业中典型的应用功能,如工艺流程图展现、历史曲线分析、历史报警分析、EXCEL报表插件等,能为其他管理软件提供高效的数据接口,将连续存储的历史数据与这些管理软件进行双向通讯,pSpace是一个具有标准接口的、可二次开发的平台。
实时数据库结构:
一个实时数据库系统的优劣,主要体现在它提供的功能是否齐备,系统性能是否优越,能否完成有效的数据存取,各种数据 *** 作、查询处理、存取方法、完整性检查,保证相关的事务管理,事务的概念、调度与并发控制、执行管理及存取控制,安全性检验。
以下是力控的系统结构图系统组成:由采集站DA、数据服务器、 WEB服务器、客户端组成,同时和关系数据库进行有效的数据交换,DCS的数据经过DA进行采集,由DA SERVER送到数据服务器,数据服务器再有效的送给其它客户端。
pSpace实时数据库服务器主要由以下几部分构成:
pSpace Server:
负责整个pSpaceTM应用系统的实时数据处理、历史数据存储、统计数据处理、数据服务请求、事件触发器管理、调度管理、资源管理、系统配置等。
pSpace Data Service:
为第三方厂家的软件访问pSpaceTM Server时提供数据服务功能,包括:OPC Server、DDE Server、ODBC Router、Base API接口等
pSpace COM SDK:
COM SDK为用户开发基于pSpaceTM Server的应用程序提供基于COM对象的编程接口。
pSpace Visual ActiveX:
是一组开放的控件,如:数据控件、文本控件、棒图控件、趋势控件等,控件可以直接访问实时数据库和关系数据库的数据。
pSpace DA Server数据采集器:
pSpaceTM DA server是数据采集站的设备通讯管理服务程序,用于系统和DCS、PLC等数据源之间的数据交换,具有自动网络通信负荷平衡功能和断线数据缓冲功能。
pSpace的Web服务器
使用IIS作为Web管理服务器,用图形客户端生成Web网页;
使用pSpace Visual ActiveX自行创建Web服务器和Web网页;
使用pSpace Webserver,用图形客户端生成Web网页;
pSpace 客户端
监控组态软件:力控Forcecontrol系列;
Microsoft Excel:采用标准EXCEL加载宏方式通过网络访问数据库;
“瘦”客户端:Microsoft Inter Explorer 50或以上版本的浏览器;
Visual ActiveX:pSpace可视化控件工具包是为建立客户端连接而提供的客户端产品;它包括一组ActiveX控件,如:数据控件、文本控件、棒图控件、趋势控件等;
二次开发工具及访问接口
标准访问接口供客户端程序调用或第三方软件访问使用,因此接口的完整性、开放性决定实时数据库二次开发的性能的优劣,pSpace访问接口及开发工具主要包括以下几种:
1)DBI API
DBI是一套实时数据库访问接口,给用户提供底层编程接口,通过它可以与客户端连接,对数据库进行数据读写,满足继线重连功能,可以获取数据库结构信息,动态控制变化数据集,DBI接口采用了快速数据访问机制,数据访问吞吐量可达到11万次/秒,可以适合过程仿真、优化控制、专家诊断等多种行业应用。
2)COM SDK
SDK是为用户开发基于pSpaceTM Server的应用程序提供基于COM对象的编程接口,用COM SDK编写的一个实例可以同时连接多个Server,也可以用COM SDK同时建立多个实例,提供面向对象的类库供用户开发应用程序,用户使用该工具编程可以提高开发效率,该工具可以在VC++,VB,VBScript,等开发环境下使用。
3)OLE DB Provider
应用程序提供pSpace Server数据库的ADO访问接口。
4)DAI SDK
pSpace的数据源采集接口的开放工具,DAI采集接口软件都可以单独运行在一台网络结点机,并可在远程对其进行配置与监控,具备以下功能:
DAI 可以直接利用原有的力控组态软件的驱动程序;
DAI 具备断线缓存功能;另外DAInterface还要增加几个接口;
DAI 支持XML、CSV文件接口,可采集离线数据源。
实时数据库性能指标:
从实时数据库运行环境来看,实时数据库系统的除了自身的软件性能外,还取决于所使用的 *** 作系统、硬件环境等。
单台服务器容量可达12,0000点以上;
历史数据库支持unix linux windows等64位 *** 作系统;
完整的事件记录系统,所有 *** 作员的动作均被检查并记录,可作为跟踪依据;
功能强大的压缩算法:按高压缩格式保存数据,采用死区和变化率压缩,压缩比为1:30;
支持优化旋转门算法对历史数据进行压缩;
专用的磁盘存贮算法来保证对长年形成的海量历史数据的快速查询;
支持的浮点型、布尔型、字符串型、等常见数据类型及“任意”类型;
数据库吞吐量支持每秒写入/查询20,000个数据点;
支持历史数据库在线备份,多服务器并发处理;
支持数据库冗余;
IO数据采集断线重连:通讯故障能够自动恢复,I/O时间同步;自动补偿 PC 时钟偏差。
构建企业信息门户
力控pSpace可以为企业在创建基于Inter/Intra的网络信息门户时提供完整的软件解决方案,同时支持PDA掌上终端访问力控的WEB服务器。
对pSpaceTM Server的数据进行Web管理有以下几种方式:
使用IIS作为Web管理服务器,将通用流程画面转换为Web网页,整个系统与WIN系统无缝集成,基于WEB组态的工具控件包通过相应的检索便可以进行查询,能够直接生成WEB页面;
使用组态软件创建Web服务器和Web网页然后发布;
用户使用pSpaceTM Visual ActiveX自行创建Web服务器和Web网页;
用户可以使用自己熟悉的网站开发工具如:FrontPage、Dreamweaver、ASP等创建主页,设立网站,并在网页中嵌入pSpace Visual ActiveX中的控件建立pSpaceTM Server的数据显示。
特点如下:
Web页面与过程画面的高度同步
pSpace Web Server实现了服务器端与客户端画面的高度同步, 在浏览器上可以同时浏览多个过程画面, 看到的图形界面与通用组态软件生成的过程画面效果完全相同,数据采用变化传输的方式,具有更快的运行与数据更新速度。
企业级Web服务器
pSpace Web Server专为构建企业级Web服务器而设计,具备高容量的数据吞吐能力和良好的健壮性,力控Web Server支持多达500的客户端的同时访问。
完善的安全机制
pSpace Web Server提供完善的安全管理机制。
只有授权的用户才能修改过程参数。
使用pSpace Web Server时,管理员尽可安心,不必担心非法或未授权的修改。
客户端
力控实时历史数据库管理系统提供了基本的客户端组态工具,开放的接口可以高级应用中的资产管理、设备诊断等管理客户端的开发,每个客户端应用软件都可以与pSpace Server运行在同一台计算机上,也可以分布式地运行在其它网络结点机上。
1)管理工具Admin
pSpace系统配置工具。
包括:在线配置数据库点、采集接口、监控服务器和采集器状态,启、停远程服务等。
2)Forcecontrol组态软件
完成生产调度系统的实时监控,曲线分析、生产报表、报警、事件等。
3)Excel Add-In:Excel加载宏,完成功能包括:
查询原始数据;
查询当前数据;
利用索引点查询过滤数据;
查询数据的采样值;
查询统计值(最小值、最大值、平均值、标准方差、累计值、计数值);
显示、导入、导出标签;
导入、导出数据;
显示、导入、导出消息;
显示采集接口;
4)pBatch
批量生产工艺数据的检索和表示,可跟踪与批量生产相关的各种信息。
5)Alarm Server
报警服务器。
6)SNMP Agent:
网络管理工具,可以在线诊断网络设备。
上层应用工具
报表工具:
可以在力控®的万能报表工具中获取实时数据库的各种过程数据,完成数据的查询与计算;建立易用、灵活、强大的报表系统。
设备运行诊断工具:
生产设备运行诊断工具可以方便地了解运行设备故障事件发生的时间、地点、状态和原因,从而降低设备维护成本。
趋势组记录工具:
提供了非常丰富的趋势记录功能,实时趋势和历史趋势记录允许趋势曲线多层重叠,可以通过颜 分好数据和坏数据,可以显示数据的采样周期、数值精度和曲线变化情况。
图形分析工具:
包括直方图、饼图、面积图等十种图形分析工具,非常方便数据的显示与比较。
图形具有透明性,从而更加容易地观察到数据之间的差别。
趋势曲线放大镜:
利用趋势曲线的放大镜工具,可以放大任何时间的实时和历史曲线,非常方便地分析时间序列的数据。
通过趋势曲线的滚动按钮,可以前后滚动查看趋势曲线的变化情况。
成本核算工具:
内嵌成本核算模板工具,包括核算体系(生产基本单位核算、财务核算及其报表)、预算和考核体系、信息实时查询(收率、消耗、能耗等)、成本统计报表。
质量分析工具:
提供质量分析模板工具,将生产过程的实时数据和质量点的采样数据进行比较,在线进行评估,以便生产管理人员及时掌握各个产品的质量数据。
长期保存质检数据,便于质量分析。
安全性及用户管理
网络安全
在进行项目设计时,在数据采集站可进行双网卡配置以保证生产网和管理网的物理隔离,DA SERVER采集站软件设计中可以保证数据单项传输,防止管理网的干扰生产网。
用户管理
实时数据库提供了完备的安全保护机制,以保证生产过程的安全可靠,用户管理具备多个级别,并可根据级别限制对重要工艺参数的修改,以有效避免生产过程中的误 *** 作。
实时数据库提供了安全区的概念,同级别,不同安全区的数据不可以互相 *** 作,保证了数据的分布式的管理。
提供基于远程的用户管理,增加更多的用户级别及安全区,管理所有用户的远程登陆信息。
加密管理:
支持工程加密,用户可以通过加密锁自己定义工程密码,没有此加密锁任何非法用户无法侵入,保护了自己的工程结构;
*** 作事件:
可以详细的记录 *** 作事件和系统事件,方便事故追忆;
开机自动运行设置、有效的屏蔽系统键盘,可以防止非法用户入侵;
数据采集器DA SERVER
DA SERVER 是Server 与各种数据源之间的接口,DA SERVER具有自动网络通信负荷平衡功能和断线数据缓冲功能,DA SERVER可以和Server运行在同一服务器内,也可以运行在不同的前端机上,通过TCP/IP与Server通信。
DA SERVER主要有以下几种:
DA SERVER:专用的数据采集服务器,通过它中心服务器可以采集各种DCS、PLC、FCS等I/O设备的数据,DA SERVER可以集成HMI/SCADA组态软件的数据采集接口,对于已经安装运行了组态软件的SCADA工作站,通过该数据采集器可以很方便地将SCADA数据采集到Server中。
MOPC:通过该数据采集器,Server可以采集其他各种第三方的OPC Server的数据。
性能
支持通过RS232、RS422、RS485、电台、电话轮巡拨号、以太网、移动GPRS、CDMA、GSM网络等方式和设备进行通讯;
开发环境下具备在线诊断设备通讯功能,可以动态的打开、关闭设备,通讯故障后具备自动恢复功能;
支持控制设备和控制网络冗余,控制设备进行切换时,通讯会自动切换;
支持多种协议的设备挂在一条通讯链路上与DA SERVER进行通讯,方便电台等远程通讯;
支持与设备采取主从、主主、从主等多种交互机制来进行通讯,比如对MODBUS标准协议设备,支持主与从2种方式与设备通讯;
可以采集带时间戳的数据,毫秒级数据采集速率,实现历史数据向实时数据库的回插功能,可以采集记录仪、录波器数据,支持SOE,完成事件监视。
支持的设备种类
支持主流的DCS、PLC、DDC、现场总线、智能仪表等1000多种厂家设备的通讯;也可以按照用户提出的通信协议和硬件接口,在较短时间内开发新的驱动程序。
无所不在的移动通讯
所有设备的驱动程序支持通过移动GPRS、CDMA网络与控制设备进行通讯,DA SERVER节点与其远程DA SERVER节点也可以进行移动通讯;
DA SERVER移动数据服务器与远程设备的通讯为并发处理、完全透明的解决方案,消除了一般软件采用虚拟串口方式造成数据传输不稳定的隐患,有效的流量控制机制保证了远程应用中节省通讯费用;
支持设备主动通过GPRS上传数据的方式进行数据传输。
典型企业信息化应用
胜利油田油气集输公司是胜利油田从事油气集输的专业化生产企业,主要担负胜利油田原油外输、天然气生产集输及轻烃生产任务。
管理着9个气田,187口气井,24座集配气站,总长240公里的天然气输气管道和220公里的输油管道,8座大中型输油站库,2座压气站和3套轻烃回收装置。
所辖13个三级单位,具有点多、线长、面广、易燃易爆、高温高压的特点。
该系统对油田的原油库和压气站等身产装置进行网络信息处理。
该信息系统集成了多种设备,信息集成使用了OPC、DDE、ODBC、PROFIBUS、MODBUS、RS485等多种网络采集方式进行数据处理,是一个典型的分布式采集,集中管理的大型网络信息化系统。
胜利油田原油库控制系统主要选用了SIEMENS 控制系统,在压气站中, 50万岗位使用Honeywell的S9000型号的DCS控制系统;SW64岗位是美国库伯公司的RR控制器;二次增压岗位使用日本Omron的控制器;离心机岗位是横河CS1000型号的DCS控制系统;配气岗位是美国SIXNET公司的ST-GT-1210控制器;热煤炉岗位控制系统是三菱的PLC;配电岗位设有许继的配电保护及监控系统。
pSpace在应用中有效的集成了以上系统,从监测和考核原材料及水、电、气、风的用量入手,减少能耗物耗,对优化生产过程,提高生产运行效率起到了关键的作用。
典型先进控制方案
pSpace支持与国外的各种数据库进行数据交互,比如INFOPLUS、PI、PHD等,通过pSpace SERVER可以在国内外的各种平台上进行上层应用、专家诊断、先进控制等,下面是一个电厂设备诊断的应用,pSpace SERVER通过各种接口将现有SIS系统、小神探系统、新增的断路器和各种辅机监测系统集成为一个整体,其中,状态检修系统需要的绝大部分实时数据都取自SIS系统的PI实时数据库,因此,PI数据库和力控实时数据库之间的接口是整个系统集成的关键,接口Gateway的性能将直接决定整个状态检修系统的性能。
用exp命令的query参数,从逻辑上把70G数据分开
例如,在后面添加 query=\" where customer_num like \'A%\'\"
多个exp语句并发执行
-------------------------------------
题主修改了问题,要导出整个用户,建议采用 expdp 的 PARALLEL 参数
例如: expdp test/test directory=d_test dumpfile=testfile1dp,testfile2dp parallel=2
---------------------------------------
expdp 远程导出可以考虑通过DBLINK
不知道你所说的负载量是什么,如果是读取速度的话自然是sqlite的效率要高很多,大量写入的话使用事务去做自然也不会慢到哪里去,做小型数据库是十分方便的。实际上用于桌面型数据库的话有很多的选择,根据自己的需求选择即可。
下面是copy部分:
SQLite的缺点在中小网站 CMS 应用场景下被规避:
1、并发低 动态访问时当访问量不超过10万PV的时候,SQLite 超过 Access 的并发能力已经绰绰有余;生成静态页后更无需考虑数据库的并发问题
2、在大数据量的情况下表现较差 但是中小站点一般情况下数据量不超过10万,而SQlite 在 100 万数据量之下表现还不错,因为省掉了对数据库服务器的远程连接甚至会更快
3、写入较慢 默认配置下的 SQlite 的写入速度比MySQL慢了很多,但是 CMS 应用场景的写入 *** 作较少。在插入新文章的时候基本感受不到慢。集中的写数据库 *** 作只有在安装的时候会出现,不过只出现一次,可以忽略
4、为已有的表加索引较慢 但是在中小站点CMS中不会有这样的需求,可以忽略
5、无法将 MySQL 部署到与前端机不同的服务器上,但是中小站点也没有分开部署的需求
综上所述:在中小站点 CMS 的应用场景下 SQLite 能最大限度的降低建站成本,降低维护难度,又很好得规避了自身的缺点。所以我认为未来支持 SQLite 的 CMS 系统一定会大行其道。
dbms指的是数据库管理系统(databasemanagementsystem)。
数据库管理系统(databasemanagementsystem)是一种 *** 纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称dbms。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过dbms访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。
它提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。它使用户能方便地定义和 *** 纵数据,维护数据的安全性和完整性,以及进行多用户下的并发控制和恢复数据库。
DBMS的主要功能
1、DBMS提供数据定义语言DDL,供用户定义数据库的三级模式结构、两级映像以及完整性约束和保密限制等约束。
2、DBMS提供数据 *** 作语言DML,供用户实现对数据的追加、删除、更新、查询等 *** 作。
3、DBMS的运行控制、管理功能是数据库的运营管理,包括多用户环境下的并发控制、安全性检查和存取限制控制、完整性检查和执行、运行日志的组织管理、事务的管理和自动恢复,即保证事务的原子性。这些功能保证了数据库系统的正常运行。
4、DBMS可以对组织进行分类,要存储和管理各种数据,包括数据字典、用户数据、存取路径等。
5、DBMS通过数据库的恢复、数据库的并发控制、数据库的完整性控制、数据库安全性控制四个方面,对数据库进行保护。
6、DBMS有数据库的数据载入、转换、转储、数据库的重组合重构以及性能监控等功能。
7、DBMS具有与 *** 作系统的联机处理、分时系统及远程作业输入的相关接口,负责处理数据的传送。
远程过程调用 Remote Procedure Call
进程间通信(IPC)是在多任务 *** 作系统或联网的计算机之间运行的程序和进程所用的通信技术。有两种类型的进程间通信(IPC)。
本地过程调用(LPC)LPC用在多任务 *** 作系统中,使得同时运行的任务能互相会话。这些任务共享内存空间使任务同步和互相发送信息。
远程过程调用(RPC)RPC类似于LPC,只是在网上工作。RPC开始是出现在Sun微系统公司和HP公司的运行UNIX *** 作系统的计算机中。
通过IPC和RPC,程序能利用其它程序或计算机处理的进程。客户机/服务器模式计算把远程过程调用与其它技术如消息传递一道,作为系统间通信的一种机制。客户机执行自己的任务,但靠服务器提供后端文件服务。RPC为客户机提供向后端服务器申请服务的通信机制,如图R-4所示。如果你把客户机/服务器应用程序想作是一个分离的程序,服务器能运行数据访问部分,因为它离数据最近,客户机能运行数据表示和与用户交互的前端部分。这样,远程过程调用可看作是把分割的程序通过网络重组的部件。LPC有时也称耦合(Coupling)机制。
用这种方式分割程序,当用户要访问数据时就无需每次拷贝整个数据库或它的大部分程序到用户系统。其实,服务器只处理请求,甚至只执行一些数据计算,把得出的结果再发送给用户。因为当数据存放在一个地方时,数据库同步很容易实现,所以多个用户可同时访问相同的数据。
分布式计算环境是由一个通信系统——网络连接的计算机集群。很容易把这个网络看成一个计算平台,若是对等方式,其中任何一台计算机都能成为客户机或服务器。一些处理任务可被分成独立运行程序在不同的网络计算机上并行处理,而独立的程序被交给最适合这个任务的计算机处理。这种策略可利用计算机空闲资源,提高网络的效益。一个典型的企业网包括许多运行着不同 *** 作系统的异构计算机系统。
随着企业网的产生,开发商必须编制可在各种计算机和网络通信协议中都能运行的程序。现在人们正努力使得远程过程调用独立,这意味着开发商就不用考虑底层的网络和网络上数据传输所用的协议,下面介绍RPC在开放式软件基金(OSF)的分布式计算环境(DCC)中实现的相关方法。RPC工作于多种分布式计算环境。
SunSoft的开放网络计算(ONC)的远过程调用/外部数据表示(RPC/XDR)协议被广泛采用。在三百一十万个运行网络文件系统(NFS)的系统中,有二百八十万个使用ONCRPC库,并在分布式应用中作为客户机或服务器。ONCRPC被IBM的所有 *** 作系统所支持(除了OS/400)。UNIX系统实验室把RPC/XDR当作是UNIX System V Release 4的一个标准部分。Novell支持下一代ONC+传输自立远程过程调用(TI-RPC)技术.TI-RPC 使用运输层接口(TLI)实现传输自立。TLI提供了一种访问面向连接或非连接传输服务的通用方法(这在“STERAMS环境”中有所叙述)。
Open Software Foundation(OSF)RPC 开放软件基金会(OSF)的RPC
RPC工具提供了一种编程语言和编译器,它们使用可看作是本地过程的可运行于客户机和服务器上的模块开发分布式应用程序。运行时设施(run-timefacility)使得分布式应用程序能在多机种异构系统上运行,这样使得底层体系结构和运输协议对于应用程序是透明的。
程序员用接口定义语言(IDL)建立接口定义(interface definition)。IDL是程序员用来设计远程运行的过程的工具。IDL编译器把IDL接口定义转换成与客户机和服务器相连的占位程序(stub)。客户机上的占位程序可加入到服务器的过程,而服务器上的占位程序也可加入到客户机过程。位于客户机服务器的RPC运行时设施与占位程序合作,来提供RPC *** 作。
异构环境中使用RPC的一个问题在于,不同的机器有不同的数据表示,OSFRPC通过具有调用机器的基本数据表示的特征调用来解决这个问题。当收到调用时,若根据特征知道两台机器数据表示不同的话,接收器就进行数据转换。
RPC运行时设施提供把客户机请求传送给服务器和在网上发送和接收响应的功能。DCERPC运行时设施也和网络上其它DCE服务相互作用,这些DCE服务有命名、安全和定时服务。运行时设施有下列特征:
可在多种网络上运行。开发者无需为每个网络编写特定的应用程序。
提供客户机或服务器或网络上的故障恢复。它支持文件系统、数据库和其它传输可变长数据的服务。
提供独立于任何一个目录服务的基于名字定位服务器的方法。
提供安全工具的接口,以防RPC通信遭受破坏。安全服务保证机密信息的保密性和提供鉴别来保护通信完备性。
支持网上并发或并行处理的多线程调度,于是一个应用程序就能同时执行多个 *** 作
提供多供应商提供的系统环境的可移植性和相互 *** 作性。
百度百科解释,准确无比
以上就是关于阻塞、非阻塞、多路复用、同步、异步、BIO、NIO、AIO 一文搞定全部的内容,包括:阻塞、非阻塞、多路复用、同步、异步、BIO、NIO、AIO 一文搞定、ifix5.5如何做历史数据库、oracle 11G 用exp 怎么样并发导出70G数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)