自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

丧心病狂Loli控的博客

世界不尽美好,却永远废萌。

  • 博客(33)
  • 资源 (2)
  • 收藏
  • 关注

原创 【Sharding-JDBC】简介与入门Demo

 初见

2020-11-30 21:51:14 479

原创 【Sharding-JDBC】分库分表理论

 引子在信息爆炸的当代,数据库需要存储的数据量也开始呈几倍数增长——这导致了数据库性能的降低。如何解决?一种思路是,提升硬件能力,比如增加存储容量,提升CPU性能等。这种方案成本很高但效果十分有限——因为,真正的瓶颈其实位于MySQL本身。 分库分表就是为了解决由于数据量过大而导致的数据库性能降低的问题。  垂直分表▶ 定义:垂直分表是将一个表按字段分成多表,每个表存储其中一部分字段▶ 提升:减少锁表的概率(两个属性分离开来以后,对其的访

2020-11-30 21:40:05 273

原创 分布式数据库系统之【存取优化】

 理论基础▍理解查询优化主要是说查询分解(查询重写)和数据本地化(片段优化);存取优化主要是考虑的是在实际物理层面(场地)的优化。▍场地分工查询场地:发出查询命令和存储最终查询结果的场地(注意是两个方面)源数据场地:需要访问的数据(及副本)所在的场地(可能不止一个)执行场地:查询操作实际执行所在的场地(图)▍优化目标广域网(Wide Area Network,WAN):主要考虑通信开销局域网(Local Area Network,LAN):都要考虑▍指标总时间(

2020-11-24 16:19:32 947

原创 分布式数据库系统之【查询优化】

 查询优化概述▍代价σЛ优化的目标就是指局部执行代价和网络传输代价的和最小。局部执行代价 = I/O代价 + CPU处理代价网络传输代价 = 启动代价 + 传输代价▍执行策略▍优化思路执行运算的次序执行运算的方法执行运算本身所在的场地执行运算所需数据的场地  查询处理概述▍问题分布式查询处理器需要考虑的问题是查询分解(query decomposition)和数据局部化(data localization) —— 这也是接下来两个模块的

2020-11-24 16:03:50 4148 1

原创 Hadoop架构再探讨——愈加繁荣的生态(Pig、Tez、Spark、Kafka)

MapReduce 1.0的缺陷▍MapReduce

2020-11-24 09:44:13 668

原创 Hadoop架构再探讨——MapReduce的设计改进(新一代资源管理调度框架YARN)

MapReduce 1.0的缺陷▍MapReduce 1.0体系结构(复习)JobTracker —— 监控TaskTracker的健康情况跟踪任务的执行进度、资源使用等,并将这些信息告诉TaskScheduler调度器TaskTracker —— 周期性向JobTracker发送心跳接收JobTracker发送的命令,并执行相应的操作(启动任务、杀死任务等)使用slot等量划分本节点的资源量(CPU、内存等)补充:划分出Map slot + Reduce slot▍MapReduce

2020-11-24 09:38:50 1020

原创 Hadoop架构再探讨——HDFS的设计改进(HA高可用+Federation联盟)

总述▍Hadoop1.0的局限与不足抽象层次低,需要人工编写大量代码表达能力有限开发者自己管理作业(Job)之间的依赖关系难以看到程序的整体逻辑延迟高,因此迭代效率低浪费资源(分为Map和Reduce两阶段)实时性差 (适合批处理,不支持实时交互)这里的Hadoop1.0仅指HDFS和MapReduce两个核心组件,不包括生态内的Pig、Hive、HBase等组件▍Hadoop1.0的改进思路Hadoop自身核心组件之一的HDFS的架构设计改进Hadoop自身核心组件之一的

2020-11-24 09:35:45 585

原创 【LeetCode】Sama的个人记录_43

class Solution { // 思路很简单:二进制1计数 + 重写比较器 // 麻烦的一点是:比较器的参数需要是T,int[]需要包装成Integer[],然后解包装... public int[] sortByBits(int[] arr) { Integer[] Arr = Arrays.stream(arr).boxed().toArray(Integer[]::new); Arrays.sort(Arr, (o1, o2) -> { .

2020-11-23 09:25:58 111

原创 【编译原理】语法制导的语义计算——翻译程序,语义栈,中缀转后缀

本节内容依旧非常抽象,因此这里给出三道完整例题 ,对应以下3个重要知识点/题型:1.0「自顶向下」构造LL(1)翻译程序2.0「自底向上」构造LR(1)语义栈3.0 「自顶向下/自底向上」中缀转后缀   ▍1.0「自顶向下」构造LL(1)翻译程序下面的翻译模式可用于将二进制无符号小数转化为十进制小数。请构造相应的递归下降翻译程序:N →  p {S.f := 1}  S  {print(S.val)}S →  {B.f.

2020-11-21 13:44:43 2945 1

原创 【编译原理】语法制导的语义计算——注释分析树

记住下面八个字,所有题目引刃而解 —— 向上综合,向下继承由于【综合属性】【继承属性】【注释分析树】的概念过于抽象,本文通篇采用立例题的形式。文章末尾给出手绘答案(图解)   ▍1·简单的向上综合给出G[S]的一个属性文法,且注释分析树已经画好。补全注释分析树即可:S →( L ){S.num := L.num + 1;}S → a{S.num := 0;}L → L₁, S{L.num := L₁.num + .

2020-11-21 13:44:21 13767 3

原创 【LeetCode】Sama的个人记录_42

 >>> 数据结构经典问题,这里给出非递归和递归两种解法class Solution { /** *【一遍扫描就可以>_< !!!】 * 双指针:快指针比慢指针快n,然后「共同移动」,当fast走到头时,slow就是我们需要操作的节点 * * 对于 0 -> 1 -> 2 -> 3 -> 4,考虑下面三种情况: * n = 3:正常情况 * n =

2020-11-21 10:31:09 67

原创 分布式数据库系统之【分片设计】

 两种设计策略▍两种设计策略自顶向下(top_down):用于设计一个新的数据库系统(本节着重点)自底向上(bottom_up):已经存在多个数据库系统,将它们集成为一个数据库系统▍top_down设计过程需求分析概念设计 + 视图集成 + E-R表示 + 转换到关系模式分布设计 + 分片 + 分配物理设计性能调优  分片简介▍分片的相关定义分片(Fragmentation):对全局数据的划分片段(Fragment):划分的结果称为片段

2020-11-19 11:41:56 6300

原创 分布式数据库系统之【结构】

 物理结构和逻辑结构(图)  体系结构▍基于层次的DBMS体系结构(图)应用处理器(AP)—— 负责分布式数据处理的软件数据处理器(DP)—— 负责分布式数据管理的软件通信管理器(CM)—— 负责为AP和DP在多个场地之间传送命令和数据(图)▍基于中间件的DBMS体系结构(JDBC、MyCat就是比较典型的中间件)  组件结构▶ 应用处理器(AP)功能:用户接口:检查用户身份,接受用户命令(如SQL)语义数据控

2020-11-19 11:31:31 1922 1

原创 分布式数据库系统之【概述】

content引入相关基本概念DDB两大特性DDBS的作用和评价DDBS关键技术   引入▍数据库发展历程▍数据库发展方向Cloud Computing(云计算)data intensive scalable computing(数据密集型可扩展计算)Non-relational Data Model(非关系型数据模型)Relational Cloud(关系云)▍分布式数据库的兴起分布数据库管理系统兴起于70年代中期,推动其发展.

2020-11-19 11:21:07 1213

原创 【Tips小技巧】电脑全屏截图&网页滚动截图

 电脑全屏截图Ctrl + PRTSC/SYSRQ  then  Ctrl+v 网页滚动截图F12  then  Ctrl+Shift+P  then  Mobile Capture full size screen

2020-11-18 21:05:10 1262

原创 【操作系统】计算机如何提高内存利用率?

 引子历史的弃子——从覆盖技术说起崭新的思路——交换的思想从连续到离散——基本分页,基本分段,基本段页式被欺骗的眼睛——虚拟内存   引子在讨论「如何」提高内存利用率之前,先问一句「为什么」要提高内存利用率很简单,因为不够用。通常意义上的内存即RAM,其价格必然远远高于磁盘。现如今,内存条单条128G都可以买的到(贫穷不仅限制了我的想象力,更限制了我的内存条容量);可时间倒推几十年,那时的人们在内存上可谓省吃俭用。在学习计算机组成原理的时候

2020-11-18 20:40:50 6367

原创 【编译原理】轻松学会LR(0)、SLR(1)、LR(1)、LALR(1)

 LR分析过程已知文法生成式(已标号)1E → E + T2E → T3T → T * F4T → F5F → ( E )6F → i已知LR分析表(根据项目图+已标号文法写出来的)完整分析过程状态栈串串操作0#i*i+i#s505#ii*i+i#r603#Fi*i+I#r402#Ti*i+i#s7027#T*i*i+i#s50275

2020-11-18 16:12:29 5795 4

原创 【编译原理】自底向上的算符优先分析

本文用一个例子作为演示,通俗易懂  Qs:已知文法G(S)为:S→a∣∧∣(T)S→a | ∧ | (T)S→a∣∧∣(T)T→T,S∣ST→T,S | ST→T,S∣S对输入串(a,a)#进行自底向上的算符优先分析  An:一·计算FirstVT和LastVT方法:求FirstVT集:从左向右找第一个终结符VT,可以忽视非终结符VN求LastVT集:从右向左找第一个终结符VT,可以忽视非终结符VNFirstVTL.

2020-11-14 14:16:25 1235

原创 快速入门数据仓库(Data WareHouse)

在很久很久之前,异世界里生活着许许多多的种族,有人类、有精灵、有兽人,还有哥布林、魔王… 这个异世界的神想要统一的管理这些种族,于是神打造了多个象征权力的戒指,分发给每个种族的首领——这个戒指可以帮助他们更好的管理和控制各自的种族。 而神拥有一个独一无二、至高无上的戒指,从而控制每个种族的领袖,进而控制整个异世界。 这个异世界的每个生命就是一条数据(Data),每个种族首领拥有的戒指就是数据库(Data Base),而那个最独一无二的戒指就是数据仓库(Data W.

2020-11-13 21:00:40 581

原创 【Impala】基于Hive的快速大数据查询引擎——Impala知识点总结

contentImpala简介Impala系统架构Impala核心组件Impala查询执行过程Impala的优缺点Impala与Hive的比较   Impala简介Impala是由Cloudera公司开发的新型查询系统Imapla提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据Impala基于MPP (Massively Parallel Processor ,大规模并行处理)Impala最大的卖点就是——快速.

2020-11-13 20:57:19 2696 2

原创 【Hive】位于Hadoop顶层的数据仓库——Hive知识点总结(图解)

 何为数据仓库(Data Warehouse)?▍初见与概念数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合。面向主题——从字面意思似乎难以理解,但通过对比就很好解释:与面向主题相对应的是面向应用。比如单纯的一次「支付」就是面向应用,而一整个「交易」就是面向主题集成——集成就是把不同数据源的数据整合到一起,即使数据的类型是不同的。比如一个数据源使用男/

2020-11-13 20:56:44 633

原创 【LeetCode】Sama的个人记录_41

 

2020-11-05 22:33:37 645

原创 信号量机制实现读者写者问题(思路剖析+Java代码实现+验证)

 写在前面:Java中:我们用这样的代码新建一个信号量:Semaphore mutex = new Semaphore(1);P操作(wait)的代码为:mutex.acquire();V操作(signal)的代码为:mutex.release();本文章的内容:读者写者问题(读者优先)读者写者问题(公平)读者写者问题(写者优先) 及其:思路验证    读者优先思路:读者写者问题大概

2020-11-05 14:58:32 2907 2

原创 【MapReduce】MapReduce知识点总结及实例分析

 初见▍ 分布式并行编程大名鼎鼎的摩尔定律告诉我们,CPU性能每18个月翻一番!然而,摩尔定律在21世纪初开始失效;雪上加霜的是,需要处理的数据量在呈几何倍数增长分布式的思想应运而生——将分布式程序运行在廉价的计算机集群上,从而获得海量的计算能力Google最先提出了分布式并行编程模型MapReduce,我们常用的Hadoop MapReduce是它的开源实现,且更加简单易用 >_<▍ 传统并行计算框架 VS MapReduce传统并行计算框架MapRe

2020-11-05 09:35:15 1142 1

原创 【词性标注】词性标注器设计

写在前面:本文用基于nltk库和Brown语料库进行演示:from nltk.corpus import brownimport nltksent = brown.sents(categories = 'news')[0] # Brown语料库中取一个句子,一会儿我们可对其进行词性标注tagged_sents = brown.tagged_sents(categories = 'news') # Brown语料库提供的人工的正确标注,一会儿我们用它来评估我们.

2020-11-04 20:14:24 632

原创 【词性标注】一篇文章弄懂词性标注

词性标注概述▶ 词类同一个词类的词具有相同的语法功能、在同样的位置中出现划分词类的目的在于描写语句的结构规则,以基于模式自动处理成批的语料(便于自然语言处理)词类 = 实词(content) + 虚词(function)实词——动词、形容词、代词、量词、数词虚词——连词、助词、语气词▶ 词性词性是对具体的词,根据其语法,兼顾其意义,将其归类的结果▶ 词性标注词性标注就是在给定的句子中,判定每个词的语法范畴,确定词性并加以标注的过程单类词(只具有单一词性的词):可以直接查词典

2020-11-04 20:12:39 4134 1

原创 编译原理Java实现——完整的自顶向下语法分析过程

 前排提示——本文只提供思路和代码运行效果具体的可运行代码移步这里进行下载(免费的):【编译原理实验】Java实现完整自顶向下语法分析——First、Follow、Select、判断LL(1)、提取公因子、消除左递归、自顶向下分析输入串下载的Java代码是直接可运行的,且在注释中包含了10个以上的测试用例  完整的自顶向下语法分析过程求emptyOK和emptyNO求First集求Follow集求Select集判断是否为LL(1)文法提取公

2020-11-04 12:09:40 1138 1

原创 编译原理Java实现——提取公因子、消除左递归

 前排提示——本文只提供思路,不提供代码甚至代码具体的可运行代码移步这里进行下载(免费的):【编译原理实验】Java实现完整自顶向下语法分析——First、Follow、Select、判断LL(1)、提取公因子、消除左递归、自顶向下分析输入串代码运行效果放在文末,可直接翻到最后进行查看  消除隐式在「提取公因子」「消除左递归」之前进行隐式的消除————如果产生式的右部以非终结符(ABC)开头,那么公因子有可能是隐式的;递归同理先对所有非终结符(即生成

2020-11-04 12:08:56 1785 3

原创 编译原理Java实现——First集、Follow集、Select集、判断是否为LL(1)文法

 前排提示——本文只提供思路,不提供代码甚至代码具体的可运行代码移步这里进行下载(免费的):【编译原理实验】Java实现完整自顶向下语法分析——First、Follow、Select、判断LL(1)、提取公因子、消除左递归、自顶向下分析输入串代码运行效果放在文末,可直接翻到最后进行查看  求 emptyOK和emptyNO对非终结符号VN分为了两类:最终可以推出空串(emptyOK) + 最终也无法推导出空串的(emptyNO)(这尤为关键,是整个自上

2020-11-04 12:07:59 2135 2

原创 【编译原理】自顶向下的语法分析

 

2020-11-04 10:17:31 1200

原创 【Java】ArrayList迭代时remove元素 , 未抛出ConcurrentModificationException异常

  在非线程安全的容器迭代时,如果进行add、remove等操作,会引发ConcurrentModificationException并发修改异常验证很简单:List<String> list = new ArrayList<>();list.add("a");list.add("b");list.add("c");list.add("d");for(String s : list){ if(s.equals("b")){

2020-11-04 09:59:57 249

原创 【Java】ConcurrentModificationException异常的源码深入分析与成功解除

 ConcurrentModificationException——并发修改异常当你觉得自己玩转ArrayList,HashSet,HashMap的时候,一个可怕的异常会突然出现在你的面前:ConcurrentModificationException不要被它的名字迷惑(并发修改异常),在单线程中,它依旧会经常出现! 单线程ConcurrentModificationException场景▶ for-each遍历场景List<String> list =

2020-11-04 09:21:50 453 1

原创 【Java】int[]与Integer[]的转化问题

 由于auto-boxing/unboxing机制的存在,你大可不必去纠结int和Integer的区别。然而,你会发现,当它们成为数组之后(int[]和Integer[]),可就没这么友好了——你会在下面两种场景中遇到意想不到的麻烦:auto-boxing/unboxing机制auto-boxing/unboxing机制】① 8个primative主数据类型有对应的8个包装类:Boolean, Character, Byte, Short, Integer, Long, Float

2020-11-02 23:40:20 969

【编译原理实验】Java实现完整自顶向下语法分析——First、Follow、Select、判断LL(1)、提取公因子、消除左递归、自顶向下分析输入串

编译原理Java实现完整自顶向下语法分析——First、Follow、Select、判断LL(1)、提取公因子、消除左递归、自顶向下分析输入串

2020-11-04

【编译原理实验】NFA确定化与DFA最小化

本资源为一个src文件夹,有四个package: 1. Beans:NFA的DFA类 2.Utils:用于输入和输出的工具类 3.Service:核心代码。提供了确定化和最小化的代码实现 4.Test:可直接运行、测试(并且提供测试样例)

2020-10-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除