3 天前 / semlinker
在大文件上传的场景中,为了提高大文件上传的用户体验,我们会支持断点续传。在上传过程中,我们会对大文件进行分片处理,然后使用 md5 算法计算分片的哈希值,再把该分片的内容和其对应的哈希值一起提交到服务器。 当服务器接收到分片对应的哈希值时,会先查询该哈希值是否已经存在。如果存在,则表示该分片已经上传过。这时可以返回大文件已上传的字节数,从而让客户端可以继续上传剩余的内容。 其实分片对应的哈希值也可以被称为分片的 “数字指纹”,那么什么是 “数字指纹” 呢?要理解 “数字指纹”,我们需要先来了解一下什么是消息摘要算法。
4 天前 / 云水木石
所谓数据加密,就是将一段数据处理成无规则的数据,除非有关键的密钥,否则谁也无法得知无规则数据的真实含义。 在密码学中,用于数据加密的算法主要有两种,分别是对称加密算法(Symmetric-key Algorithms)和非对称加密算法(Asymmetrical Cryptography)。 这篇文章先介绍比较容易理解的对称加密算法。 无论什么加密算法,密钥是非常重要的一环,加密和解密都需要用到,如果加密和解密的密钥相同,这种加密算法就属于对称加密算法。
7 天前 / u578576
阅读大概需要 3 分钟 附源码 [toc] 前言单体架构的服务的日子已经一去不复返了。 当前系统业务和数据存储的复杂度都在提升,分布式系统是目前使用非常普遍的解决方案。 全局唯一 ID 几乎是所有设计系统时都会遇到的,全局唯一 ID 在存储和检索中有至关重要的作用。 ID 生成器在应用程序中,经常需要全局唯一的 ID 作为数据库主键。如何生成全局唯一 ID? 首先,需要确定全局唯一 ID 是整型还是字符串?如果是字符串,那么现有的 UUID 就完全满足需求,不需要额外的工作。缺点是字符串作为 ID 占用空间大,索引效率比整型低。
14 天前 / 美团技术团队
总第 432 篇 2021 年 第 001 篇 压缩在数据传输和存储过程中经常扮演着十分重要的角色,因此提高压缩的效率可以帮助我们节省时间和降低存储成本。本文介绍了压缩算法的优化在构建部署平台的应用,能够帮助研发团队提高研发和交付效率。背景 通常而言,服务发布平台的构建部署的流程(镜像部署除外)会经过构建(同步代码 -> 编译 -> 打包 -> 上传)、部署(下载包 -> 解压到目标机器 -> 重启服务)等步骤。以美团内部的发布平台 Plus 为例,最近我们发现一些发布项在构建产物打包压缩的过程中耗时比较久。如下图所示的 pack 步骤,一共消耗了 1 分 23 秒。
25 天前 / leehavin
分布式任务调度系统,纯 NET 打造的重量级大数据实时计算平台,万亿级调度经验积累!面向中小企业大数据分析场景。 开源地址:https://github.com/NewLifeX/AntJob 使用教程:https://www.yuque.com/smartstone/blood/antjob 体验地址:http://ant.newlifex.com 功能特点 AntJob 的核心是蚂蚁算法:把任意大数据拆分成为小块,采用蚂蚁搬家策略计算每一块! (蚂蚁搬家,一个馒头掉在地上,众多小蚂蚁会把馒头掰成小块小块往家里般!) 该算法设计于 2008 年...
26 天前 / lxneng
k-means 属于无监督学习算法,无监督算法的内涵是观察无标签数据集自动发现隐藏结构和层次,在无标签数据中寻找隐藏规律。聚类模型在数据分析当中的应用:既可以作为一个单独过程,用于寻找数据内在规律,也可以作为分类等其他分析任务的前置探索。 例如我们想探寻我们产品站内都有哪些社交行为群体,刚开始拍脑门想可能并不会很容易,这时候可以根据用户属性、行为对用户进行聚类,根据结果将每个簇定义为一类社交群体,基于这些类训练后续的分类模型,给用户打标签后进行个性化推荐、运营。
29 天前 / 云水木石
说到 Hash(哈希),开发人员应该不陌生,比如 Hash 表是一种非常常用的数据结构,通过 Hash 表能够根据键值快速找到数据。哈希函数将文本(或其他数据)映射为整数,从而能够提高检索效率。 密码学中的 Hash 算法和普通的 Hash 算法不是同一个概念,从安全的角度考虑,密码学中的 Hash 算法除了有普通 Hash 算法的特性之外,还有其他的一些特性。 密码学 Hash 算法也通常称作摘要算法,是密码学中的基础算法,是现代密码学中的核心组成部分。
31 天前 / KevinYan
在高并发业务场景下,保护系统时,常用的"三板斧"有:"熔断、降级和限流"。今天和大家谈谈常用的限流算法的几种实现方式,这里所说的限流并非是网关层面的限流,而是业务代码中的逻辑限流。 限流算法常用的几种实现方式有如下四种: 计数器滑动窗口漏桶令牌桶下面会展开说每种算法的实现原理和他们自身的缺陷,方便以后我们在实际应用中能够根据不同的情况选择正确的限流算法。 计数器算法思想计数器是一种比较简单粗暴的限流算法,其思想是在固定时间窗口内对请求进行计数,与阀值进行比较判断是否需要限流,一旦到了时间临界点,将计数器清零。
33 天前 / 冷星1024
圣 诞 快 乐 接下来让我们一起来探讨 js 数据结构中的树。这里的树类比现实生活中的树,有树干,树枝,在程序中树是一种数据结构,对于存储需要快速查找的数据非有用,它是一种分层数据的抽象模型。一个树结构包含一系列存在父子关系的节点。每个节点都有一个父节点以及零个或多个子节点。如下所以为一个树结构:) 和树相关的概念:1.子树:由节点和他的后代构成,如上图标示处。2.深度:节点的深度取决于它祖节点的数量,比如节点 5 有 2 个祖节点,他的深度为 2。3.高度:树的高度取决于所有节点深度的最大值。
36 天前 / reesunhuang
分享嘉宾:彭克炼贝壳 资深工程师 编辑整理:马瑶 出品平台:DataFunTalk 导读:随着贝壳流量的日渐增长,贝壳商业化细分场景越来越丰富,公司对业务迭代和效果优化的效率有了更高的要求,贝壳商业化策略算法中台的架构也在不断的进行调整和升级。本文将围绕贝壳商业化策略算法中台的架构演进过程,介绍贝壳在商业化策略算法中台架构方面的探索和实践。重点探讨贝壳商业化算法模型落地、架构设计、服务治理以及性能优化方面的问题,以及如何增强系统的稳定性和扩展性。
37 天前 / 多颗糖
▲点击上方"多颗糖"关注公众号 前文《理解 Paxos》只包含伪代码,帮助了理解但又不够爽,既然现在都讲究Talk is cheap. Show me the code.这次就把文章中的伪代码用 Go 语言实现出来,希望能帮助各位朋友更直观的感受 Paxos 论文中的细节。 但我们需要对算法做一些简化,有多简单呢?我们不持久化存储任何变量,并且用chan直接代替 RPC 调用。 代码地址:https://github.com/tangwz/paxos/tree/naive 记得切换到 naive 分支。 定义相关结构体我们定义 Proposer 如下: type proposer struct { // server id id int // the largest round numbe...
39 天前 / Old_Panda
苟利国家生死以,岂因祸福避趋之 Expand Menu 首页 RSSProjects 关于八皇后问题 Posted on 2020-12-12 by OldPandaPython 算法 0 最近 Netflix 又出品了一部新剧,并在豆瓣上获得了 9.0 的高分,叫《后翼弃兵》。讲的是从小在孤儿院长大的主角拥有着不凡的国际象棋天赋,在她的天赋被发现挖掘之后一路走到了国际象棋世界冠军的故事。说到国际象棋,作为一名程序员,自然而然就想到了计算机的经典问题——八皇后问题。 所谓八皇后问题,就是在 8×8 的国际象棋棋盘上放置八个皇后,使得彼此之间不会互相攻击。
39 天前 / Thinkgamer
点击标题下「搜索与推荐 Wiki」可快速关注▼相关推荐▼1、美团点评|深度学习在推荐中的实践 2、近 100 页的《常见的五种神经网络》汇总电子书 3、以 DSSM 为例说明深度学习模型训练中的若干问题 4、聊一聊海量公众号下我是如何进行筛选和内容消费的万物皆可 Embedding 系列会结合论文和实践经验进行介绍,前期主要集中在论文中,后期会加入实践经验和案例,目前已更新: 万物皆可 Vector 之语言模型:从 N-Gram 到 NNLM、RNNLM 万物皆可 Vector 之 Word2vec:2 个模型、2 个优化及实战使用 Item2vec 中值得细细品味的 8 个经典 tricks 和 thinksDoc2vec 的...
40 天前 / 超人汪小建
什么是算法算法是一组清晰定义的指令集合,用于解决某类问题或执行某种运算任务。算法应该在有限的空间和时间内进行表达,其运行从初始状态和初始输入开始,经过一系列有限而清晰定义的指令操作后,最终产生输出并终止于某个最终状态。 算法的作用算法是一个包含了一系列操作的过程,算法由计算机执行以保证在有限时间内找到解决方法。算法是为了能更快更容易更好地解决问题,算法由设计者硬编码。算法的应用范围很广,常规基础算法与数据结构紧密相关,该类算法更多被用于确定性领域,比如对于链表、数组、图和堆等等的各种搜索和排序算法。
40 天前 / Monica2333
怪化猫本次 233 酱介绍下单调栈、单调队列、并查集、KMP 算法,欢迎交流指正~ 单调栈「单调栈」首先是一种基于栈的数据结构,只不过通过栈来维护的是单调递增或单调递减的数据。入栈和出栈都是操作栈顶。对于每一个元素都只有一次入栈和出栈的操作,因此时间复杂度为 O(N)。 递增栈(递减栈)是通过出栈的顺序是递增还是递减来定义。从栈顶到栈底是递增,则为单调递增栈;从栈顶到栈底是递减,则为单调递减栈。 假设我们把数组 [7,8,3,4,1] 中的每个元素构建成一个二元组(其中 index 为元素下标,value 为元素的值),然后随着二元组 index 的增加...