信息存储

ext文件系统机制原理剖析

空扰寡人 提交于 2019-11-27 04:44:41
本文原创地址:博客园骏马金龙 https://www.cnblogs.com/f-ck-need-u/p/7016077.html 将磁盘进行分区,分区是将磁盘按柱面进行物理上的划分。划分好分区后还要进行格式化,然后再挂载才能使用(不考虑其他方法)。格式化分区的过程其实就是创建文件系统。 文件系统的类型有很多种,如CentOS 5和CentOS 6上默认使用的ext2/ext3/ext4,CentOS 7上默认使用的xfs,windows上的NTFS,光盘类的文件系统ISO9660,MAC上的混合文件系统HFS,网络文件系统NFS,Oracle研发的btrfs,还有老式的FAT/FAT32等。 本文将非常全面且详细地介绍ext家族的文件系统,中间还非常详细地介绍了inode、软链接、硬链接、数据存储方式以及操作文件的理论,基本上看完本文,对文件系统的宏观理解将再无疑惑。ext家族的文件系统有ext2/ext3/ext4,ext3是有日志的ext2改进版,ext4对相比ext3做了非常多的改进。虽然xfs/btrfs等文件系统有所不同,但它们只是在实现方式上不太同,再加上属于自己的特性而已。 4.1 文件系统的组成部分 4.1.1 block的出现 硬盘的读写IO一次是一个扇区512字节,如果要读写大量文件,以扇区为单位肯定很慢很消耗性能,所以Linux中通过文件系统控制使用"块

链接原理

房东的猫 提交于 2019-11-27 04:16:36
本文简单介绍了程序的链接原理。学习链接原理有助于程序员理解程序的本质,同时也可以为日后的大型软件的代码开发打下坚实的基础。由此可知链接原理的重要性,尤其是一些程序员被一些莫名其妙的错误困扰的时候,更加能够体会到这一点。 1 连接器的任务 连接器将多个目标文件链接成一个完整的、可加载、可执行的目标文件。其输入是一组可重定位的目标文件。链接的两个主要任务如下: (1) 符号解析,将目标文件内的引用符号和该符号的定义联系起来。 (2) 将符号定义与存储器的位置联系起来,修改对这些符号的引用。 2 目标文件 典型的目标文件分为以下3种形式: (1) 可重定位目标文件 这种文件包含二进制代码和数据,这些代码和数据已经转换成了机器指令代码和数据,但是还不可以直接执行。因为这些指令和数据中往往引用其他模块(目标文件)中的符号,这些其他模块的符号对于本模块来说是未知的,这些符号的解析需要链接器将所有模块进行链接。这种操作称为“重定位”,因此,这种目标文件被称为“可重定位的目标文件”,后缀名通常为*.o (2) 可执行目标文件 这种文件同样包含了二进制代码和数据。所不同的是,这种文件已经经过了链接操作,和所有的模块(目标文件)都产生了联系。链接器将所有需要的可重定位目标文件连接成一个可执行目标文件。这时,每个目标文件中引用其他目标文件中的符号都已经得到了解析和重定位。因此,每个符号都是已知的了

大型网站架构常用解决方案

廉价感情. 提交于 2019-11-27 03:17:41
每个大型网站都是由小变大的,在变大的过程中,几乎都需要经历单机架构、集群架构到分布式架构的演变。而伴随着业务系统架构一同演变的,还有各种外围系统和存储系统,比如关系型数据库的分库分表改造、从本地缓存到分布式缓存的过渡等。 在业务架构逐渐复杂的同时,保证系统的高性能、高可用、易扩展、可伸缩,使框架能有效地满足业务需要,是一个长远而艰巨的任务。本文介绍了五种相关的技术:分布式服务化架构、大流量的限流和削峰、分布式配置管理服务、热点数据的读写优化和数据库的分库分表。 值得注意的是,技术并不是越复杂越好,技术是为了更好地服务业务,只要能达到业务的需求,就是好的技术。简单说就是,即使你有实现复杂技术的能力,没有用户量和利润为基础,也难以落地实施。所以虽然下文中提到了一些框架,但是并不是每一种框架都需要你去亲自实践。很多时候,只是给你提供一个新的思路,一种新的方法,而至于是不是值得被实践,还需要得到业务和用户的考验。 文章目录 分布式服务化架构 集群和分布式 服务化架构,微服务和RPC 服务化架构的组成 服务的横向拆分 服务治理方案 总结 大流量的限流和削峰 分布式系统为什么要进行流量管制 限流方案 削峰方案 基于时间分片的削峰方案 基于异步调用的削峰方案 分布式配置管理服务 热点数据的读写优化 缓存技术 热卖商品的高并发读 基于Redis集群的多写多读方案

前言、Mysql简介

家住魔仙堡 提交于 2019-11-26 23:42:23
一、Mysql5.7的新增功能 1、支持JSON,是一种可以替代XML的存储信息格式,从5.7.8版本开始支持 2、改进InnoDB的可扩展性和临时表的性能,从而实现更快的网络和大数据加载等操作 3、改进赋值包括多源复制、多从线程增强、在线GTIDs和增强的半同步复制 4、增加了许多新的监控功能,以减少空间和过载,使用新的SYS模式显著提高易用性 5、以安全第一为宗旨,提供了很多新的功能,从而保证数据库的安全 6、重写了大部分解释器、优化器和成本模型,提高了可维护性、可扩展性和性能 6、全新功能,包括InnoDB空间索引,使用Boost.Geometry,同时提高完整性和标准符合性 二、Excel访问Mysql 1、安装 来源: https://www.cnblogs.com/cloud-sj/p/11335508.html

知识图谱综述

三世轮回 提交于 2019-11-26 20:21:14
知识图谱综述 通用知识图谱VS行业知识图谱 区别 通用知识图谱 行业知识图谱 广度/深度 广度 知识类型/来源 常识性知识, 百科知识,语言学知识 精度 低 面向群体 普通用户 代表 谷歌大脑 类型 模式 数据模型固定 数据量 获取难度 公共数据 领域知识图谱 挑战 1.多源异构数据难以融合 2.数据模式动态变迁困难 3.非结构化数据计算机难以理解 4.分散的数据难以统一消费利用 解决方案   • 挑战1:使用知识图谱(本体)对各种类型的数据进行抽象建模,基于可动态变化 的“概念—实体—属性—关系”数据模型,实现各类数据的统一建模。   • 挑战2:使用可支持数据模式动态变化的知识图谱的数据存储,实现对大数据及数 据模式动态变化的支持。   • 挑战3:利用信息抽取技术,对非结构化数据及半结构化数据进行抽取和转换,形 成知识图谱形式的知识。   • 挑战4:在知识融合的基础上,基于语义检索、智能问答、图计算、推理、可 视化等技术,提供统一的数据检索、分析和利用平台。 联系 通用知识图谱为行业知识图谱提供基础/体系,细化,则是需要搜寻相应的行业知识 行业知识图谱能够通过融合到通用知识图谱当中 关键技术  或者这张图(好好感觉) 知识建模  就是建立图谱的数据模式,就是对整个知识图谱的结构进行定义,构建 自顶向下的方法:专家手工编辑形成数据模式 自底向上的方法:

HBase详解

对着背影说爱祢 提交于 2019-11-26 20:19:55
一、 简介 history started by chad walters and jim 2006.11 G release paper on BigTable 2007.2 inital HBase prototype created as Hadoop contrib 2007.10 First useable Hbase 2008.1 Hadoop become Apache top-level project and Hbase becomes subproject 2008.10 Hbase 0.18,0.19 released hbase是bigtable的开源山寨版本。是建立的hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。 它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作)。主要用来存储非结构化和半结构化的松散数据。 与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。 HBase中的表一般有这样的特点: 1 大:一个表可以有上亿行,上百万列 2 面向列:面向列(族)的存储和权限控制,列(族)独立检索。 3 稀疏:对于为空(null)的列,并不占用存储空间,因此

RAM

你。 提交于 2019-11-26 20:02:02
1. 前记 我们知道,不同的计算机结构对RAM 的使用方式是有区别的,典型的计算机结构有两个,冯诺依曼结构和哈佛结构,而两大阵营的领军人物就是传说中的Intel X86系列的8086和51单片机系列的8051。请先对号入座,不理解的跳过去,继续往下看。 2. What? 长啥样? 内存条,RAM中的一种,常见的应该是DDR SDRAM。相信各位都触摸过它,冷冰,无情,当然,你上电后它就变了样,暖暖的,无怨无悔的为我们干活。 嘿!别唬我,这个俺知道,51单片机。没错,51单片机里面也内置了RAM ,叫片内RAM。 这个就是一般嵌入式板卡上的RAM, 为了加以区分,就叫片外RAM。 广义上讲,CPU内部的寄存器也算是RAM的一种。 在哪里? PC主板图片 嵌入式板卡图片 找一找你系统上的内存吧,再看看CPU datasheet 上有没有提到内置RAM。 特点是啥? RAM(Random Access Memory),随机存储器。特点如下: 如其名,可随时读写 快,读写速度杠杠的,CPU最喜欢和它一起“玩”了 掉电后,数据全部丢失,因此,别指望RAM中的数据长期存储,那么,我想要长期存储公司所有员工的数据怎么办?用FLASH吧。 请参考: RAM、ROM、Flash的分类、性能比较 RAM,ROM,FLASH存储器区别 与CPU的连接方式 RAM是用来存储CPU计算所需的数据的

ASP.NET Session使用详解

泪湿孤枕 提交于 2019-11-26 19:22:00
Session模型简介 Session是什么呢?简单来说就是服务器给客户端的一个编号。当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站。当每个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个用户的唯一身份。这个SessionID是由WWW服务器随机产生的一个由24个字符组成的字符串,我们会在下面的实验中见到它的实际样子。 这个唯一的SessionID是有很大的实际意义的。当一个用户提交了表单时,浏览器会将用户的SessionID自动附加在HTTP头信息中,(这是浏览器的自动功能,用户不会察觉到),当服务器处理完这个表单后,将结果返回给SessionID所对应的用户。试想,如果没有SessionID,当有两个用户同时进行注册时,服务器怎样才能知道到底是哪个用户提交了哪个表单呢。当然,SessionID还有很多其他的作用,我们会在后面提及到。 除了SessionID,在每个Session中还包含很多其他信息。但是对于编写ASP或ASP.NET的程序与来说,最有用的还是可以通过访问ASP/ASP.NET的内置Session对象,为每个用户存储各自的信息。例如我们想了解一下访问我们网站的用户浏览了几个页面,我们可能在用户可能访问到每个的页面中加入: <% If

Hive 架构

孤街醉人 提交于 2019-11-26 16:56:16
翻译自Hive官方文档 Design 目录 Hive Architecture (Hive架构) Hive Data Model (Hives数据模型) Metastore (元数据) Motivation (动因) Metadata Objects (元数据对象) Metastore Architecture (元数据架构) Metastore Interface (元数据接口) Hive Query Language (Hive查询语言) Compiler (编译器) Optimizer (优化器) Hive APIs Figure 1 Hive Architecture(Hive 架构) 图1显示了Hive的主要组件及其与Hadoop的交互。如该图所示,Hive的主要组件是: UI :用户向系统提交查询和其他操作的用户界面。 Driver :接收查询的组件(Component)。这个组件实现了session句柄的概念,并提供了在JDBC/ODBC接口上执行和获取模型化的API。 Compiler :解析查询的组件,对不同的查询块(query blocks)和查询表达式(query expressions)进行语义分析,最终在表(元数据表)的帮助下生成执行计划,并从Metastore中查找分区元数据。 MetaStore :存储仓库中各种表和分区的所有结构化信息的组件

lucene入门&Solr

自闭症网瘾萝莉.ら 提交于 2019-11-26 14:53:33
LUCENE 1. 学习计划 1、案例分析:什么是全文检索,如何实现全文检索 2、Lucene实现全文检索的流程 a) 创建索引 b) 查询索引 3、配置开发环境 4、创建索引库 5、查询索引库 6、分析器的分析过程 a) 测试分析器的分词效果 b) 第三方中文分析器 7、索引库的维护 a) 添加文档 b) 删除文档 c) 修改文档 8、Lucene的高级查询Lucene的查询 a) 使用Query的子类查询 MatchAllDocsQuery TermQuery NumericRangeQuery BooleanQuery b) 使用QueryParser QueryParser MulitFieldQueryParser 2. 案例 实现一个文件的搜索功能,通过关键字搜索文件,凡是文件名或文件内容包括关键字的文件都需要找出来。还可以根据中文词语进行查询,并且需要支持多个条件查询。 本案例中的原始内容就是磁盘上的文件,如下图: 3. 需求分析 3.1. 数据库搜索 数据库中的搜索很容易实现,通常都是使用sql语句进行查询,而且能很快的得到查询结果。 为什么数据库搜索很容易? 因为数据库中的数据存储是有规律的,有行有列而且数据格式、数据长度都是固定的。 3.2. 数据分类 我们生活中的数据总体分为两种:结构化数据和非结构化数据。 结构化数据:指具有固定格式或有限长度的数据,如数据库