Sequence

公布半小时下载量达10W:阿里大牛出品【MyCat笔记】真香

泪湿孤枕 提交于 2020-11-06 08:50:35
前言 如今随着互联网的发展,数据的量级也是成指数式的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求,这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。 但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要有事务与安全指标的。这个时候NoSQL肯定是无法满足的,所以还是需要使用关系性数据库。如何使用关系型数据库解决海量存储的问题呢? 此时就需要做数据库集群,为了提高查询性能将一个数据库的数据分散到不同的数据库中存储,为应对此问题就出现了——MyCat 。 在前不久,我偶然翻到了一个MyCat笔记,那是我向一个阿里大神求得的。 笔记比较详细的介绍了他对于MyCat的理解,结合了实战进行分析讲解。 对MyCat感兴趣的朋友可以拿去看看。 下面将这份文档的内容以图片的形式展现出来,但篇幅有限只能展示部分,如果你需要**“高清完整的pdf版” ,可以直接 点击「 MyCat 」备注:CSDN** 即可免费领取。 这份笔记从:MyCat简介→MyCat入门→MyCat配置文件详解→MyCat分片→MyCat高级→MyCat高可用集群搭建→MyCat架构剖析→MyCat综合案例 进行了详细的分析讲解。 MyCat 简介

SNMP mib文件说明

百般思念 提交于 2020-11-06 06:28:54
MIB file的开始和结束 所有的MIB file的都以DEFINITIONS ::= BEGIN关键字开始,以END结束。我们所有添加的节点均应在此之间。 XXX-TEST-MIB DEFINITIONS ::= BEGIN …… …… END 模块引用区域 在MIB开始关键字后,即是模块引用区域,利用IMPORTS标识,所有的模块引用及群组的引用均使用FROM关键字说明其出处,引用使用分号(;)结束。 注:分号,英文全角分号。 在一个MIB file中,所有引用到的数据类型均应有引用。 如: IMPORTS enterprises FROM RFC1155-SMI Integer32 FROM SNMPv2-SMI DisplayString FROM SNMPv2-TC; MIB核心部分(对象标识,标量节点,表格对象的定义) 对象标识 对象标识用关键字OBJECT IDENTIFIER声明,它的主要功能是用来将一类功能的对象结合起来。展开或折叠此对象标识即可展开或折叠此类功能的所有对象。 在ASN.1中,对象标识符类型描述对象的抽象信息,MIB树中的每一个标号是用对象标识符描述的。 例如: xxx OBJECT IDENTIFIER ::= {enterprises 22566} xxx是一个子树支,它定义在enterprises树支下,“22566”

CodeForces 407E: k-d-sequence

北慕城南 提交于 2020-11-04 09:40:10
题目传送门: CF407E 。 题意简述: 给定非负整数 $k,d$ 和一个长度为 $n$($1\le n\le 2\times 10^5$)的整数序列 $a$。 求这个序列中最长的一个连续子串 $a[l:r]$ 满足:添加不超过 $k$ 个整数,再排序后,可以形成公差为 $d$ 的等差数列。 若有多个满足条件取最左侧的那个。 题解: 首先特判 $d=0$ 的情况,这时相当于求最长连续段。 易发现若一些数要组成一个公差为 $d$ 的等差数列,必须要满足这些数模 $d$ 同余。 所以依次考虑每个模 $d$ 同余的连续子串,将其中每个数除以 $d$ 向下取整,转化为 $d=1$ 的情况。 转化为一个经典问题,要求连续子串的值域满足某些条件,而条件仅和子串中的最值、子串端点的位置有关。 假设子串为 $a[l:r]$,这里的条件是:$\max{a[l:r]}-\min{a[l:r]}+l\le k+r$ 且 $a[l:r]$ 中无重复元素。 考虑右端点 $r$ 从 $1$ 开始逐步向右推,每次求出最佳的合法左端点位置。 对于两个限制,前者使用两个单调栈和线段树解决,后者限定了一个 $l$ 的下限,维护每个值的上一次出现位置,每次向右推时更新即可。 求位置时需要查询一段区间内的最靠左的值 $\le k+r$ 的位置,这可以通过线段树维护最小值简单地做到。 下面是代码,时间复杂度 $

PostgreSQL数据库中的常见错误

十年热恋 提交于 2020-11-04 04:55:53
我们在操作数据库的时候,我们总会遇到很多错误。下面整理了一下常见的错误。 错误1 FATAL: connection limit exceeded for non-superusers 原因:非超级用户的连接数(max_connections - superuser_reserved_connections)超过了设定值 解决办法:增加max_connections设定值,但如果增加了过多的话,数据库负担太大还容易产生内存错误。可以记住pg-pool等工具来辅助解决。 错误2 FATAL: sorry, too many clients already 原因:数据库服务器的连接数超过了max_connections设定值。 解决办法:和错误1解决办法类似。 错误3 LOG: checkpoints are occurring too frequently 原因:checkpoint处理正频繁发生。 解决办法:增加 checkpoint_segments的值。 错误4 LOG: archive command failed with exit code (X) 原因: archive_command 失败了。 解决办法:因为有可能是硬盘没空间了,所以可以把数据库的log删除一些。 错误5 LOG: number of page slots needed (X) exceeds max

【LeetCode】 87 排列序列

匆匆过客 提交于 2020-11-04 01:41:08
题目: 解题思路: liweiwei-深度优先遍历 + 剪枝、有序数组模拟 https://leetcode-cn.com/problems/permutation-sequence/solution/hui-su-jian-zhi-python-dai-ma-java-dai-ma-by-liwei/ 代码: import java.util.Arrays; public class Solution { /** * 记录数字是否使用过 */ private boolean[] used; /** * 阶乘数组 */ private int[] factorial; private int n; private int k; public String getPermutation(int n, int k) { this.n = n; this.k = k; calculateFactorial(n); // 查找全排列需要的布尔数组 used = new boolean[n + 1]; Arrays.fill(used, false); StringBuilder path = new StringBuilder(); dfs(0, path); return path.toString(); } /** * [@param](https://my.oschina.net/u

第四阶段组队训练赛第四场

∥☆過路亽.° 提交于 2020-11-03 02:27:08
题目来源:NAIPC2018 D: Missing Gnomes 题目描述 A family of n gnomes likes to line up for a group picture. Each gnome can be uniquely identified by a number 1..n written on their hat. Suppose there are 5 gnomes. The gnomes could line up like so: 1, 3, 4, 2, 5. Now, an evil magician will remove some of the gnomes from the lineup and wipe your memory of the order of the gnomes. The result is a subsequence, perhaps like so: 1, 4, 2. He then tells you that if you ordered all permutations of 1..n in lexicographical order, the original sequence of gnomes is the first such permutation which contains the

通过BGP EVPN方式动态建立VXLAN隧道实现

心不动则不痛 提交于 2020-11-02 10:51:09
原文:华为官网技术支持:EVPN配置举例 组网需求 如下图的组网图所示,Router1为企业分支网关,Router2为企业总部网关,由于分支与总部之间用户的业务需求不同,则将其规划为不同网段。企业分支的PC_1与总部的PC_2终端用户所属VLAN ID分别为VLAN 10、VLAN 20。现企业希望通过分支与总部之间通过BGP EVPN方式动态建立VXLAN隧道实现用户间互通 通过VXLAN三层网关通信组网图 配置思路 采用如下思路配置不同网段用户通过BGP EVPN方式动态建立VXLAN隧道实现互通: 分别在Router1、Router2、Router3上配置路由协议,保证网络三层互通。 分别在Router1、Router2上配置VXLAN接入业务选择部署方式。 配置BGP EVPN对等体关系。 在Router1和Router2上配置源端VTEP的IP地址。 在Router1和Router2上配置VPN实例。 在Router1和Router2上配置三层网关。 在Router1与Router2之间配置BGP对邻居发布IP前缀类型的路由。 操作步骤 配置路由协议。 配置Router1。Router2和Router3的配置与Router1类似,这里不再赘述。配置OSPF时,需要发布设备上的32位Loopback接口地址。 <Huawei> system-view [Huawei]

阿里巴巴JAVA编程规范之MYSQL规约

陌路散爱 提交于 2020-11-01 05:55:36
(一) 建表规约 1. 【强制】表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsignedtinyint ( 1表示是,0表示否),此规则同样适用于odps建表。 说明:任何字段如果为非负数,必须是unsigned。 2. 【强制】表名、字段名必须使用小写字母或数字;禁止出现数字开头,禁止两个下划线中间只 出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。 正例:getter_admin,task_config,level3_name 反例:GetterAdmin,taskConfig,level_3_name 3. 【强制】表名不使用复数名词。 说明:表名应该仅仅表示表里面的实体内容,不应该表示实体数量,对应于DO类名也是单数 形式,符合表达习惯。 4. 【强制】禁用保留字,如desc、range、match、delayed等,参考官方保留字。 5. 【强制】唯一索引名为uk_字段名;普通索引名则为idx_字段名。 说明:uk_即 unique key;idx_即index的简称。 6. 【强制】小数类型为decimal,禁止使用float和double。 说明:float和double在存储的时候,存在精度损失的问题,很可能在值的比较时,得到不 正确的结果。如果存储的数据范围超过decimal的范围

Python之Pandas:pandas.DataFrame.to_csv函数的简介、具体案例、使用方法详细攻略

你。 提交于 2020-10-29 10:22:26
Python之Pandas:pandas.DataFrame.to_csv函数的简介、具体案例、使用方法详细攻略 目录 pandas.DataFrame.to_csv函数的简介 pandas.to_csv()函数的具体案例 pandas.DataFrame.to_csv函数的简介 DataFrame. to_csv ( path_or_buf=None , sep=',' , na_rep='' , float_format=None , columns=None , header=True , index=True , index_label=None , mode='w' , encoding=None , compression='infer' , quoting=None , quotechar='"' , line_terminator=None , chunksize=None , date_format=None , doublequote=True , escapechar=None , decimal='.' , errors='strict' ) def to_csv Found at: pandas.core.generic def to_csv( self, path_or_buf:Optional[FilePathOrBuffer]=None, sep

前端常用的几个函数收集

流过昼夜 提交于 2020-10-29 06:31:21
获取链接URL的参数 var key=getQueryStringByKey('参数名称') function getQueryStringByKey(key) {      var returnValue = "" ;      var str = window.location.search.toLowerCase();      if ($.trim(str).length == 0 ) {     returnValue = "" ;    }    else {       str = str.substr(1 );        var strArr = str.split("&" );        for ( var i = 0; i < strArr.length; i++ ) {        var index = strArr[i].indexOf("=" );        var keyStr = strArr[i].substring(0 , index);        if (key.toLowerCase() == keyStr) {           returnValue = strArr[i].substr(index + 1 );            break ;          }      }     } return