Buckets

Linux内核TCP/IP参数分析与调优

微笑、不失礼 提交于 2021-02-17 23:27:22
1.下图是数据通信的一个过程:TCP三次握手. TCP数据传输. TCP的四次断开 SYN:(同步序列编号,Synchronize Sequence Numbers)该标志仅在三次握手建立的时候有效。表示一个新的TCP连接请求。 ACK:(确认编号,Acknowledgement Number)是对TCP请求的确认标志,同时提示对端系统已经成功连接所有数据。 FIN(结束标志,Finish)用来结束一个TCP会话,但对应端口仍处于开放状态,准备接受新数据。 下面分别解析11个阶段的Server端和Client端的TCP状态。 1)、LISTEN:首先服务端需要打开一个socket进行监听,状态为LISTEN. /* The socket is listening for incoming connections. 侦听来自远方TCP端口的连接请求 */ 2)、SYN_SENT:客户端通过应用程序调用connect进行active open.于是客户端tcp发送一个SYN以请求建立一个连接.之后状态置为SYN_SENT. /*The socket isactively attempting toestablish a connection. 在发送连接请求后等待匹配的连接请求 */ 3)、SYN_RECV:服务端应发出ACK确认客户端的SYN,同时自己向客户端发送一个SYN.

Searching the Web UVA

筅森魡賤 提交于 2021-02-15 17:12:08
  The word “search engine” may not be strange to you. Generally speaking, a search engine searches the web pages available in the Internet, extracts and organizes the information and responds to users’ queries with the most relevant pages. World famous search engines, like GOOGLE, have become very important tools for us to use when we visit the web. Such conversations are now common in our daily life: “What does the word like ∗ ∗ ∗ ∗ ∗∗ mean?” “Um. . . I am not sure, just google it.”   In this problem, you are required to construct a small search engine. Sounds impossible, does it? Don’t worry

Linux内核 TCP/IP、Socket参数调优

亡梦爱人 提交于 2021-02-14 16:58:09
/proc/sys/net目录   所有的TCP/IP参数都位于/proc/sys/net目录下(请注意,对/proc/sys/net目录下内容的修改都是临时的,任何修改在系统重启后都会丢失),例如下面这些重要的参数: 参数(路径 + 文件) 描述 默认值 优化值 /proc/sys/net/core/rmem_default 默认的TCP数据接收窗口大小(字节)。 229376 256960 /proc/sys/net/core/rmem_max 最大的TCP数据接收窗口(字节)。 131071 513920 /proc/sys/net/core/wmem_default 默认的TCP数据发送窗口大小(字节)。 229376 256960 /proc/sys/net/core/wmem_max 最大的TCP数据发送窗口(字节)。 131071 513920 /proc/sys/net/core/netdev_max_backlog 在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。 1000 2000 /proc/sys/net/core/somaxconn 定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数。 128 2048 /proc/sys/net/core/optmem_max 表示每个套接字所允许的最大缓冲区的大小。

OC类的原理探究(一)

ぐ巨炮叔叔 提交于 2021-02-14 16:20:24
对象原理探究(一) 对象原理探究(二) 前面两篇文章介绍了OC对象的原理,以及一些分析的思路和方法,今天开始,将开启类的原理探究。 不过在探究类的原理之前,我想补充说明一个东西 isa指针定义如下: union isa_t { isa_t () { } isa_t ( uintptr_t value) : bits(value) { } Class cls; uintptr_t bits; # if defined(ISA_BITFIELD) struct { ISA_BITFIELD; // defined in isa.h }; # endif }; isa指针分为nonpointer指针和非nonpointer指针 。 非nonpointer指针没有经过优化,它里面只通过 cls 属性存储对应的类的地址; nonpointer指针是经过优化的,它通过 bits 存储很多信息。 需要注意的是, cls 和 bits 是互斥的: 非nonpointer指针只使用到 cls ,而nonpointer指针只使用到 bits 。 我们前面也讲到,nonpointer的isa指针可以存储很多额外信息,并且其存储信息的内存布局是跟架构有关的,下面这张图可以很形象地将该布局给展示出来: 类的结构分析 类是使用Class来接收 ,这一点我们在开发中已经非常熟悉了。所以关于类的结构分析

[LeetCode] 670. Maximum Swap 最大置换

ぃ、小莉子 提交于 2021-02-03 09:04:24
Given a non-negative integer, you could swap two digits at most once to get the maximum valued number. Return the maximum valued number you could get. Example 1: Input: 2736 Output: 7236 Explanation: Swap the number 2 and the number 7. Example 2: Input: 9973 Output: 9973 Explanation: No swap. Note: The given number is in the range [0, 108] 解法:从后向前扫,遇到比max_value 大的就记录这个最大数的值和位置,继续向前扫,遇到小于这个max_value时,就记录这个交换位置, 因为越往左扫数位越高,交换后整个数字值越大。 Java: class Solution { public int maximumSwap(int num) { char[] digits = Integer.toString(num).toCharArray(); int[] buckets = new int[10]; for (int i = 0; i <

2019山东省赛反省

ぐ巨炮叔叔 提交于 2021-01-30 19:24:28
此次比赛,我很荣幸得此机会跟着学长学姐去打铁。第一次接触这种比赛,确实感到新奇,同时也有不安,因为平时没好好做题,知之甚少,基础确实是超级不稳的。好在学长说让我们开阔一下眼界,尽力就行。比赛做出几个题我就不说了,但是补题的时候真的发现我们真的很菜,简单的题我们竟然可以耗时那么久。。。。。emmm,,以后可得努力了 A - Calandar On a planet far away from Earth, one year is composed of 12 months, and each month always consists of 30 days. Also on that planet, there are 5 days in a week, which are Monday, Tuesday, Wednesday, Thursday and Friday. That is to say, if today is Monday, then tomorrow will be Tuesday, the day after tomorrow will be Wednesday. After 3 days it will be Thursday, after 4 days it will be Friday, and after 5 days it will again be

05. CouchBase常用术语解释-CouchBase从0到50

廉价感情. 提交于 2021-01-23 04:52:09
到目前为止我们已经搭建起来一套CouchBase集群,并且可以通过界面进行基本的操作。从这一节开始,主要是讲解CouchBase的架构原理。我一直觉得学习开源软件不是学习这套软件怎么安装配置和使用,更重要的是要学习到软件的原理,架构和代码实现。尤其是自定而下,从设计原则,指导思想到具体的架构,组件功能划分,最后到代码的具体实现。 如果只是了解CouchBase的安装配置方法,实在是有点太过于浅薄。 互联网行业实在飞速发展的,各种性能一代强过一代的开源软件层出不穷,只是疲于奔命的去了解软件的安装配置方法实在算不上是一个好的方法,反而如果能够了解学习吸收到软件背后的设计思想和架构原理,那么不管开源软件如何迭代,也能轻易的掌握其本质。 就跟现在的计算机飞快发展,但是其背后的冯·诺依曼体系结构永远是不变的核心。 下面了解CouchBase中所使用到的一些关键术语 Data:我们要存储的数据,在Couchbase中一条数据就是一个item。每个item都是k,v结构的,包含一个value以及用来查找value的key。value可以是二进制也可以是json文档。 Buckets, Memory, and Storage:Buckets直译为桶,是couchbase中组织数据的一种方式,类似于关系数据库中的database。couchbase中item存储在Bucket中

04. CouchBase集群界面-CouchBase从0到50

偶尔善良 提交于 2021-01-23 04:51:44
CouchBase提供了功能丰富的界面,几乎任何的操作都可以在界面上通过鼠标点击来实现,因此有必要首先 熟悉Coubbase的Web界面 。这里先了解下CouchBase界面的基本操作选项和功能。 可以通过: http://x.x.x.x:8091 来访问管理界面,输入之前设置的用户名和密码就可以登陆 4.0 目录 4.0 目录 4.1 Dashborad仪表盘 4.2 Servers集群节点 4.2.1 给集群添加节点 4.2.2 集群中的Group 4.3 Buckets 4.4 Indexes索引 4.5 全文索引 4.6 查询接口 4.7跨集群同步 4.8 安全管理 4.9 设置 4.10 系统日志 4.1 Dashborad仪表盘 左边为菜单栏,从上到下依次为: Dashboard:仪表盘,整个集群的概览信息 Servers:服务节点,整个集群的节点信息 Buckets:类似于mysql数据库的概念,注意 CouchBase中没有表 的概念,创建了Bucket直接往里面插入数据。另外这里的 Bucket要跟后面说的VBucket 区分开来。 Indexes:索引的管理界面 Search:全文索引的管理界面 Query:Web的查询接口 XDCR:跨集群的同步管理界面,注意和replicate的区别,一个是集群内的复制,一个是跨集群(一般是异地)的同步 Security

结构体及内存对齐

半世苍凉 提交于 2021-01-17 06:56:01
1、什么是结构体    定义:结构体是一系列数据的集合,这些数据可能描述了一个物体,也可能是对一个问题的抽象。   举个栗子,简单的说,对于人,人有名字,性别,年龄,身高,体重等个人信息,那么,我们在定义这种个体的时候,就不能说它能用一个字符或整型变量来定义。 这时候,就需要结构体闪亮登场了。   基本语法: struct 结构体名字 { 类型 名字; 类型 名字; 类型 名字; ... }结构体变量1,结构体变量2……;   方式一: struct People{ int age; float height; float weight; NSString * name; }; 初始化及赋值: struct People pe = { 12 , 164.60 , 65.15 , @" 小米 " };  NSLog(@"%@",pe.name);   方式二:通过结构体变量 struct Worker{ NSString * postOfDuty; NSString * department; } Worker1,Worker2; // 这里的Worker1 Worker2 相当于方式1中创建的pe // 用这种方式 定义的结构体 只能使用点语法的方式去赋值 Worker1.postOfDuty = @" 保安 " ; Worker2.department = @" 研发部门 " ;

从0开始搭建数据仓库(2):产品经理如何“玩转”Hive SQL

自闭症网瘾萝莉.ら 提交于 2021-01-16 15:03:07
作者介绍 莲石东路@乌森 心之所向,***成长。从底层架构到应用实战,聊聊炼数成金背后的故事。 持续更新数据治理、数据科学、数据可视化、空间计算系列文章。 01 前言 公司新入职了的产品经理小美因为业务需要,想搭一个数据大屏方便自己查看数据。她找开发小王申请了数仓权限,然后从技术中台里找到了数据大屏的工具,把自己平时查数据用的sql搬上去跑,结果总是报错。 小美找到了做数据产品经理的师兄小帅看了看。 小帅:你这个查询有问题,业务系统的sql不能直接搬来用。 小美:我看长得差不多啊,除了多了个分区外,不都是sql吗? 小帅:你现在建的是Hive查询,Hive SQL虽说和SQL非常相似,但是一些细节上还是有区别的。 02 Hive SQL是什么? Hive是大数据领域常用的数据仓库组件,可以借助查询语言SQl将HDFS上存储的结构化文件映射成一张数据库表,并提供类SQL查询功能。Hive-SQL就是这个”类SQL查询功能”。Hive-SQL与SQL基本上一样,因为当初的设计目的,就是让会SQL不会编程MapReduce的也能完成处理数据工作。 【拓展】Hive-SQL是如何转化为MapReduce任务的呢?整个编译过程分为六个阶段: 1) Antlr定义SQL的语法规则,完成SQL词法,语法解析,将SQL转化为抽象语法树AST Tree 2) 遍历AST Tree