首页 > TAG信息列表 > UInt64
数据采集之:巧用布隆过滤器提取数据摘要
概览 在telemetry采集中,由于数据量极大,一般采用分布式架构;使用消息队列来进行各系统的解耦。有系统如下: 设备将各类数据上报给采集器,采集器充当格式转换的角色。将各类不同的设备数据转换为统一的格式。 采集器将数据写入到消息队列中,后端的其它服务,如“分析”,“告警”等服务从对不起,我错了,这代码不好写
hello,大家好呀,我是小楼。 前几天不是写了这篇文章《发现一个开源项目优化点,点进来就是你的了》嘛。 文章介绍了Sentinl的自适应缓存时间戳算法,从原理到实现都手把手解读了,而且还发现Sentinel-Go还未实现这个自适应算法,于是我就觉得,这简单啊,把Java代码翻译成Go不就可以混个PR? 甚至AcWing 145. 超市
// // Created by Kaede on 2022/5/17 // Problem: Acwing 145 // #include <algorithm> #include <cstdio> #include <cstdlib> #include <iostream> #include <map> #include <vector> namespace DisjointSet { class disjointSet {6.S081-2021-Lab4 Traps学习笔记
RISC-V assembly a0-a7存放参数,13放在了a2中 编译器内联了这两个函数,从li a1,12可以看出来,编译器直接算出了结果,做了内联优化 0x630 0x38,即函数的返回地址 57616=0xE110 0x00646c72小端存储则为72-6c-64-00 对照ASCII码表 72:r 6c:l 64:d 00:字符串结束标识 输出为:HE1105. Lab: Copy-on-Write Fork for xv6
https://pdos.csail.mit.edu/6.S081/2021/labs/cow.html 1. 要求 Your task is to implement copy-on-write fork in the xv6 kernel. You are done if your modified kernel executes both the cowtest and usertests programs successfully. Here's a reasonable plan6. Lab: Multithreading
https://pdos.csail.mit.edu/6.S081/2021/labs/thread.html 主要熟悉多线程的一些操作。 1. Uthread: switching between threads 1.1 要求 In this exercise you will design the context switch mechanism for a user-level threading system, and then implement it. To getvictoriaMetrics库之布隆过滤器
victoriaMetrics库之布隆过滤器 代码路径:/lib/bloomfilter 概述 victoriaMetrics的vmstorage组件会接收上游传递过来的指标,在现实场景中,指标或瞬时指标的数量级可能会非常恐怖,如果不限制缓存的大小,有可能会由于cache miss而导致出现过高的slow insert。 为此,vmstorage提供了两个参go的sync.Mutex的锁的使用
点击查看代码 package main import ( "fmt" "sync" "time" ) var ( m = make(map[int]uint64) lock sync.Mutex ) type task struct { n int } func calc(t *task) { var sum uint64 sum = 1 for i := 1; i <= t.n; i++ { sum *= u[ACNOI2022]唯一可做之题
题目 题目背景 连续两天写 LCT + ddp \texttt{LCT}+\texttt{ddp} LCT+ddp,今天一看,感觉仍然 dc语言:统计整数二进制表示中1的个数(汉明重量)
问题描述:对于一个字节的无符号整型变量,求其二进制表示中1的个数。 第一次见到这个问题应该是icephone第一次例会的时候,问题虽然简单,但也值得深思。 后来查阅资料的时候才知道这个问题有个正式的名字叫Hamming_weight,也被一些公司当做面试题。 下面通过几个不同阶段的算法,谈谈Bigcache(1)-NewBigCache
前言 BigCache作为一个知名的本地存储库,其本身存在着很多巧妙的设计理念与实现,本系列将从源码入手,一步一步做出解析,希望感兴趣的可以共勉。 NewBigCache() 该函数位于bigcache/bigcache.go内 NewBigCache函数作为BigCache的实例化函数,作用是根据给定的配置返回一个cahce实例,【操作系统】MIT 6.s081 LAB6
Lab6: Copy-on-Write Fork for xv6 原文地址:YSBLOG 参考资料:MIT 6.s081 xv6-lab6-cow - 知乎 (zhihu.com) 实验背景: 在原本的xv6中,当Shell处理指令时,会通过fork创建一个子进程,该子进程包含一个完整的Shell拷贝,在该子进程中调用exec执行对应的指令程序,而在exec中第一件事就MIT 6.S081 操作系统 LAB6:Copy-on-Write
Lab: Copy-on-Write Fork for xv6 实现xv6中的写时复制 Virtual memory provides a level of indirection: the kernel can intercept memory references by marking PTEs invalid or read-only, leading to page faults, and can change what addresses mean by modifying PTEs.MIT 6.S081 操作系统 LAB7:Multithreading
Lab: Multithreading Uthread: switching between threads 实现一个用户级线程,跟内核线程的切换没什么区别。只要上课听懂了,复制内核代码就行了 只贴关键代码 线程上下文 struct context { uint64 ra; uint64 sp; // callee-saved uint64 s0; uint64 s1; uint64 s2;MIT6.S081 LAB3 pagetable & virtual memory
预备知识(理解相关代码) 1. 地址空间 为什么需要地址空间(address space)?(1)进程之间的内存隔离性;(2)实现了抽象性,为了对内存进行更好的管理。 2. 页表 2.1 页表(page table)在一个物理内存上创建不同的地址空间。页表在硬件中通过内存管理单元(MMU)实现,MMU将虚拟地址翻译称物理地址,物理地址用fork函数详解(附代码)
虽然篇幅很长,但大多是易懂的代码,不用担心看不完 这里的所有操作,都将在下面的代码中有所体现 fork会拷贝当前进程的内存,并创建一个新的进程。如上图,fork函数会将整个进程的内存镜像拷贝到新的内存地址,包括代码段、数据段、堆栈以及寄存器内容。之后,我们就有了两个拥有完全一样clickhouse-位图函数
位图函数总结 位图函数构造方法 由聚合函数groupBitmapState由 Array object 构造的 groupBitmapState 参数类型: 函数的参数必须为UInt64返回值类型:AggregateFunction(groupBitmap,UInt64)示例: select groupBitmapState(uid) as user_bit,toTypeName(user_bit) from ycsb_t快速傅里叶变换的迭代法代码实现
在上文中,我们聊到了离散傅里叶变换的实现,其时间复杂度是O(N^2),以及快速傅里叶变换的递归实现,其时间复杂度是O(NlogN)。 但是因为实现方式是用递归法,并且为了分离奇偶下标的数据,又重新申请了一些数组,所以空间复杂度有所上升,显然不是最优解。分离奇偶下标的过程: 递归法是从最顶端开C# Sqlite数据类型
SQLite 数据类型C# 数据类型 BIGINT Int64 BIGUINT UInt64 BINARY Binary BIT Boolean 首选 BLOB Binary 首选 BOOL Boolean BOOLEAN Boolean CHAR AnsiStringFixedLength 首选 CLOB String COUNTER Int64 CURRENCY Decimal【笔记】对golang的大量小对象的管理真的是无语了……
业务中有这样一个struct: type bizData struct{ A uint64 B uint64 C int32 D uint32 } 虽然没有实测,但我猜测这样的对齐方式,这个struct占24字节。 业务中用一个map指向这些对象: map[uint64]*bizData 这样的存储对象,一个容器开启10GB内存,最多存储60万左右的对象,容器内clickhouse(六)系统库system说明
背景 现在ClickHouse已经能正常使用起来了,包括副本和分片。因为ClickHouse已经可以提供服务了,现在需要关心的就是服务期间该数据库的各项性能指标的情况,如CPU、内存、查询等等。其实在安装完ClickHouse之后,有个内置的数据库system,该库下保存了很多需要的信息,类似于MySQL中的infoMD5的C++实现
放一波代码吧,MD5已经不是检查数据完整性的最佳选择了QAQ(但是有一定的教学意义) 基本原理网上都有,这份代码核心部分(压缩函数)也是从cryptopp搞来的,其他的填充啥的自己写的。就…称我为缝合怪吧hhh 注:由于填充过程是对整个数据读进内存然后进行的填充,所以计算大文件Hash时悠着点ClickHouse学习系列之五【系统库system说明】
背景 之前介绍过ClickHouse相关的系列文章,现在ClickHouse已经能正常使用起来了,包括副本和分片。因为ClickHouse已经可以提供服务了,现在需要关心的就是服务期间该数据库的各项性能指标的情况,如CPU、内存、查询等等。其实在安装完ClickHouse之后,有个内置的数据库system,该库下保redis源码阅读-数据结构篇-hyperloglog
@目录5. HyperLogLog 实现 hyperloglog.c数据结构定义Helper函数(可跳过,需要时阅读)元素哈希处理 O(1)添加基数 O(1)... 5. HyperLogLog 实现 hyperloglog.c 数据结构定义 hllhdr struct hllhdr { char magic[4]; /* "HYLL" */ uint8_t encoding; /* HLL_DENSE or6.S081 Xv6 Lab Multithreading
6.S081 Xv6 Lab: Multithreading Lab: Multithreading of MIT 6.S081 Fall 2020 $ git fetch $ git checkout thread $ make clean Uthread: switching between threads 这个题有意思的,手写用户线程的实现。做起来不难,大体框架人家都给了,自己只要实现一下上下文切换。 首