最新 | 最热门 | 最高评价

+1  100行代码的压缩前缀树: 50% smaller

Tag: algo | memory | succinct | trie | bitmap
张炎泼(xp) 发于 2021年02月01日 08:00 | 点击: 833 | 展开摘要
这文介绍一个压缩前缀树实现的sorted set(github: succinct.Set), 区区95行代码, 包含了一组完整的功能:

用 前缀树 存储一个排序数组, 去掉指针, 压缩掉50%的空间;
例如在本文的例子中, 存储2.4MB的200万个单词, 只需要1.2MB.

创建: 从key列表创建一个压缩的前缀树;

查询: 支持Has() 操作来查询1个key是否存在;

优化: 通过索引来加速 bitmap 的操作, 将较大的 bitmap 操作优化到O(1)的

查看全文: http://www.udpwork.com/item/17474.html

+0  Go编程模式:Map-Reduce

Tag: Go 语言 | 程序设计 | 编程语言 | functional | functional-programming | Go | golang | MapReduce | 函数式 | 函数式编程
陈皓 发于 2020年12月24日 15:13 | 点击: 602 | 展开摘要
在本篇文章中,我们学习一下函数式编程的中非常重要的Map、Reduce、Filter的三种操作,这三种操作可以让我们非常方便灵活地进行一些数据处理——我们的程序中大多数情况下都是在到倒腾数据,尤其对于一些需要统计的业务场景,Map/Reduce/Filter是非常通用的玩法。下面先来看几个例子:

本文是全系列中第5 / 9篇:Go编程模式
Go编程模式:切片,接口,时间和性能
Go 编程模式:错误处理
Go 编程模式:Functional Options
Go编程模式:委托

查看全文: http://www.udpwork.com/item/17491.html

+0  slimarray: gzip的压缩率, 即时访问

Tag: algo | array | 数组 | compress | succinct
张炎泼(xp) 发于 2020年11月15日 08:00 | 点击: 457 | 展开摘要
slimarray

场景和问题

在时序数据库, 或列存储为基础的系统中, 很常见的形式就是存储一个整数数组,
例如 slim 这个项目按天统计的 star 数:

这类数据有有很明显的统一的变化趋势, 对这类数据的存储,
我们可以利用数据分布的特点, 将整体数据的大小压缩到几分之一.
这就是 slimarray 要做的事情.

使用 slimarray, 可以将数据容量减小到gzip差不多的大小,
同时还能允许直接访问这些数据!
测试中我们选择了2组随机数, 以及现实中的

查看全文: http://www.udpwork.com/item/17477.html

+0  常见分布式基础设施系统设计图解(六):分布式 MR 系统

Tag: System and Architecture | MapReduce | 图解笔记 | 基础设施 | 系统设计
四火 发于 2020年11月03日 02:17 | 点击: 428 | 展开摘要
其实对于 MR(Map Reduce)系统来说,可能更重要的是分治和分步处理的思想,因为现在的基于 MR 的数据处理框架或者平台,在实现上数据处理往往已经和最经典的对于 MR 的理解(最早应该是来自 Google 的那篇论文)有了不少区别。当然,我还是按照之前的做法,把一个典型的 MR 系统简单图示画出来了,这个图相对比较简单。

还是老规矩,虚线表示控制流,实线表示数据流。
上半部分用户向 Master 这个 job 管理节点提交一个 job 的请求,这个请求被拆解为若干个

查看全文: http://www.udpwork.com/item/17822.html

+0  LeetCode付费题目(一)

Tag: Algorithm & Data Structure | LeetCode
四火 发于 2017年11月07日 03:30 | 点击: 3480 | 展开摘要
LeetCode 300题以内需要付费才能查看的所有题目解答。

156

Binary Tree Upside Down

157

Read N Characters Given Read4

158

Read N Characters Given Read4 II – Call multiple times

159

Longest Substring with At Most Two Distinct Characters

161

One Edit

查看全文: http://www.udpwork.com/item/16493.html

+0  求第K个数的问题

Tag: Algorithm & Data Structure | Recommended | PriorityQueue | | 快排
四火 发于 2017年07月14日 13:01 | 点击: 1977 | 展开摘要
一道经典的题目。给一堆乱序的数,如果它们从小到大排好,求第k个是多少。假设排列的下标从1开始,而非0开始。

这个问题如此之简单而熟悉,可它却可以是很多现实问题的某一个子问题的抽象。它本身相关的问题其实就不少,而且还可以不断演进,成为不同复杂程度的问题。

看到这个问题,脑海里的第一反应是一左一右红蓝两条分支——堆排序或者快排。Java中快排用Arrays.sort就可以了,如果是堆排序需要用到PriorityQueue。 用Arrays.sort写起来最简单(这里的参数校验

查看全文: http://www.udpwork.com/item/16349.html

+0  全网统一账户实践

Tag: *nix | freeIPA | infrastucture | LDAP | tcp | vpn
jaseywang 发于 2017年03月04日 14:44 | 点击: 4863 | 展开摘要
分享下目前我们全网的账号管理体系。

整体的账户管理思路是分而治之。主要分为下面三类账户:

1. 办公网账户,也就是大家熟悉的域账户。对于办公网账户,全网用户一人一账户,在 OpenLDAP 的基础上做了一些开发,这是进入公司内部的大门,所有新入职的员工都会分配一个该账号,不管是在办公室连接 Wi-Fi 还是在家连接 anyconnect VPN,访问 confluence/jira 等基础办公设置,都需要通过此账户进行登录认证。

2. 生产网账户,主要用来访问线上

查看全文: http://www.udpwork.com/item/16160.html

+0  一张复杂网络的生长过程

Tag: *nix | infrastucture | networking
jaseywang 发于 2017年02月27日 22:30 | 点击: 2062 | 展开摘要
虽然不是网络出身,但是对于我们全网架构的「生长」过程还是比较了解的,分几个重要的时间点讲讲里面有意思的事情。

15 年下旬

公司业务还没起飞,全网架构简单,应付一天 1k+ 的订单了(有效挂号单)绰绰有余,机房跟第三方的卡管机构通过一根 10M 的 SDH 专线打通,所有到院方的请求先经过第三方的卡管机构,由其转发再进行业务层面的处理,实际的带宽峰值不到 500kbps。

16 年初

正式开始批量接入三甲医院,同时跟医院数据打通的方式也由原先的经过第三方卡管机

查看全文: http://www.udpwork.com/item/16150.html

+0  树莓派(raspberrypi)、saltstack 在线下自助机运维上的应用

Tag: *nix | infrastucture | kiosk | operations | raspberrypi | saltstack
jaseywang 发于 2017年02月08日 13:05 | 点击: 2571 | 展开摘要
目前每家院区都分布了从数台到近百台规模不等的自助机,覆盖了北京市属 22 家医院的三十多个院区,一千多台的日常变更、升级管理、甚至常人看来很简单的开关机成了摆在眼前的一大问题。下面这篇博客会抛出 4 个问题并且分享下我们线上的实战经验。

1. 开关机,一个看似很幼稚的问题

你去市面上问一个的有点经验的运维,「服务器怎么开关机」,他可能第一反应是,「服务器要关机吗?」如果你接着问,「如果现在就有这么一个需要,需要先关机过段时间再开机,怎么办?」,他很可能会告诉你,「远程

查看全文: http://www.udpwork.com/item/16090.html

+0  通过 noVNC 实现数千台自助机的实时可视化

Tag: *nix | Django | infrastucture | kiosk | LDAP | mysql | saltstack | vnc | websocket
jaseywang 发于 2017年02月06日 20:17 | 点击: 4832 | 展开摘要
背景很简单,目前我们运营维护着北京市属三甲医院数千台的自助机,这里面包含挂号取号机、检查报告机以及其他若干衍生出来的自助机种类,数量已经超过一千多台,不同的院区通过密密麻麻的专线跟我们的机房源源不断的进行着各种协议的数据传输与交互。

由于各方面技术以及非技术层面的限制,只能使用微软的系统,为了管理这部分的机器,一方面我们通过 saltstack 来进行日常的产品升级以及变更,对于桌面的可视,比如我们需要知道当前这台自助机前患者的操作,就需要 VNC 来帮助了。

一年前

查看全文: http://www.udpwork.com/item/16089.html

+0  树莓派(raspberrypi)、saltstack 在线下自助机运维上的应用

Tag: *nix | infrastucture | kiosk | operations | raspberrypi | saltstack
jaseywang 发于 2017年01月20日 13:05 | 点击: 1872 | 展开摘要
目前每家院区都分布了从数台到近百台规模不等的自助机,覆盖了北京市属 22 家医院的三十多个院区,一千多台的日常变更、升级管理、甚至常人看来很简单的开关机成了摆在眼前的一大问题。下面这篇博客会抛出 4 个问题并且分享下我们线上的实战经验。

1. 开关机,一个看似很幼稚的问题

你去市面上问一个的有点经验的运维,「服务器怎么开关机」,他可能第一反应是,「服务器要关机吗?」如果你接着问,「如果现在就有这么一个需要,需要先关机过段时间再开机,怎么办?」,他很可能会告诉你,「远程

查看全文: http://www.udpwork.com/item/16083.html

+0  LeetCode题目解答——第311到371题

Tag: Algorithm & Data Structure | LeetCode
四火 发于 2017年01月19日 13:19 | 点击: 2008 | 展开摘要
老规矩,跳过需要付费的题目。题目是越来越不好做,我尽量把自己的思路写下来。

371

Sum of Two Integers 

51.9%
Easy

368

Largest Divisible Subset 

31.9%
Medium

367

Valid Perfect Square 

36.9%
Medium

365

Water and Jug Problem 

24.7%
Medium

363

Ma

查看全文: http://www.udpwork.com/item/16069.html
|<<<1234567>>>| 一共10页, 120条记录