首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用Go重写Node.js服务:项目性能提升5倍,内存减少40%

1 简介 Hasura Storage 是一项开源服务,在 hasura 和任何 s3 兼容的存储服务之上增加了一个存储服务。...其目的是能够利用云存储服务,同时也利用 hasura 的功能,如它的 graphql API、权限、行动、预设等。...Hasura Storage 方面表示,在使用 Golang 进行重写后,其可处理的服务请求数增加了 5 倍,同时内存消耗减半。...图片 另一个重要的指标是响应时间,Hasura Storage 提供了两个数据:最小响应时间,开源告诉我们系统未承受压力时的响应时间;以及 P95,开源告诉我们大多数用户的响应时间最多是多少...除了在 download_image_manipulated 中实现了大约 2 倍的改进外,在其他场景中则均实现了 4 倍的改进。 图片 再是 P95。

4.1K10

用Go重写:项目性能提升5倍,内存减少40%

Hasura Storage 是一项开源服务,在 hasura 和任何 s3 兼容的存储服务之上增加了一个存储服务。...其目的是能够利用云存储服务,同时也利用 hasura 的功能,如它的 graphql API、权限、行动、预设等。...出于业务发展需求,Hasura Storage 团队近期将其原本用 Node.js 编写的服务用 Golang 进行了重写。...另一个重要的指标是响应时间,Hasura Storage 提供了两个数据:最小响应时间,开源告诉我们系统未承受压力时的响应时间;以及 P95,开源告诉我们大多数用户的响应时间最多是多少(包括当系统处于压力之下...除了在 download_image_manipulated 中实现了大约 2 倍的改进外,在其他场景中则均实现了 4 倍的改进。 再是 P95。

34530
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    设计数据网格以控制数据蔓延

    敏捷是微软 Windows XP 在 2001 年发布后对极限编程 (XP) 的重新命名。与 XP 一样,敏捷也被定义为一组指导“原则”,但去掉了 XP 的实现细节。...下一代数据仓库,如 Snowflake 和 ClickHouse,通过完全消除对专门的数据仓库模式设计的需求,延续了这一趋势。 专业化只是推动集中化的力量之一。...两个领先的选择,Hasura 和 Apollo Router,可以很好地协同工作,但是只有 Hasura 才能真正为使用 GraphQL 调整现有数据源做好准备。...希望它有助于阐明数据网格的历史,解释它如何在整体数据策略中发挥作用,消除围绕数据网格的一些模糊性,建立关于数据网格的心理模型,并提供具体可行的建议,将数据网格从理论变为实践。...许多人正在认识到它在机器学习、分析或数据密集型应用中的效用,所有这些都成为当今数据生态系统中竞争的必备条件。

    12010

    受不了 Rust 这些问题,我将后端切换到了 Go

    该项目是 Hasura 的一个简单的后端 webhook 服务。你可能不了解 Hasura,那是一个 Postgres 数据库封装器,可以即时提供 GraphQL API。...如果你需要一个具体的类型,如: fn do_stuff(db: &Database) { db.create(Stuff); db.read(Stuff);} 你必须给 do_stuff...事实上,在 Golang 中,我做的事情基本相同;那到底是从哪里开始有问题的呢? 问题 2:异步 Trait 在 Rust 中,异步很简单,trait 也很简单,但异步 trait 却有些困难。...通常,在编写服务器时,我会在本地开发,并且要保证每次有修改时,本地服务器会重新加载,让我可以在提交真正的单元测试之前非常快速地测试功能。两次试验之间需要进行大量的编译;可以接受!...对我来说,要编排许多本地服务而又不用费事在每个服务(Hasura、Web 钩子、mock s3、mock oauth 服务器……)中运行 npm run ,最简单的方法是有一个 docker-compose.yaml

    66310

    2020年AWS,Microsoft和Google应进行的云收购

    这包括使其用户数据库更多地成为真实的数据存储,功能齐全的Web控制台,该控制台支持编辑以及简单,全面的社交登录以及安全性声明标记语言集成。...IT团队不可避免地必须在其前面运行本地代理,并且他们需要在数据进入Elasticsearch时对数据进行处理-更不用说围绕水平扩展的麻烦了。...只有使用高级服务,开发人员才能专注于关键差异因素,而不是重新实现大多数人需要的相同通用服务(例如身份验证,图像处理和搜索),从而加快了开发速度。...因此,Google应该购买Hasura,它在Firebase落后的地方正拥有惊人的发展速度:对关系数据库,GraphQL的支持以及在开发者反馈的帮助下快速迭代的机会。...拥有的Hasura可以为Firebase注入大量生命。 当然,Firebase也被收购。因此,如果过去是序幕,那么红旗比比皆是。但是,对于GCP而言,收购Hasura值得冒险。

    6.6K20

    写在 2021: 值得关注学习的前端框架和工具库

    对于我认为较为主流的则不会包含(如Vue与React框架本身这种~)。...在TS中这个工具的主要能力就是生成TS的类型定义,同时它的插件体系还提供了更多的额外能力,如Apollo-Client的插件,让你可以直接使用封装好的的useXXXQuery等,前端连查询语句都不用写了...Hasura[53],功能比较全的一款,支持PostgreSQL和MSSQL,除了上面提到的以外还提供鉴权与触发器(类似Serverless中的触发器),以及把外部已经独立部署的GraphQL API也纳入管控...Hasura还提供了前面说的GraphQURL作为client,hasura-code-gen来从Hasura服务生成TS代码,所以基本上可以用Hasura的生态做为一套方案了,包括我也有看到过一些创业公司就在使用...PostGraphile[54], 只支持PostgreSQL,优势在于性能与插件系统来实现高度定制,还提供了数据库工具。和Hasura一样能自动基于级联关系生成CRUD操作,同样提供了企业级支持。

    4.2K10

    写在2021: 值得关注学习的前端框架和工具库

    对于我认为较为主流的则不会包含(如Vue与React框架本身这种~)。...在TS中这个工具的主要能力就是生成TS的类型定义,同时它的插件体系还提供了更多的额外能力,如Apollo-Client的插件,让你可以直接使用封装好的的useXXXQuery等,前端连查询语句都不用写了...Hasura,功能比较全的一款,支持PostgreSQL和MSSQL,除了上面提到的以外还提供鉴权与触发器(类似Serverless中的触发器),以及把外部已经独立部署的GraphQL API也纳入管控...它提供的GraphiQL就是我上面提到的增强版本: Hasura还提供了前面说的GraphQURL作为client,hasura-code-gen来从Hasura服务生成TS代码,所以基本上可以用Hasura...PostGraphile, 只支持PostgreSQL,优势在于性能与插件系统来实现高度定制,还提供了数据库工具。和Hasura一样能自动基于级联关系生成CRUD操作,同样提供了企业级支持。

    2.9K10

    GraphQL 与 REST 双重赋能:Hasura 帮你给数据库添加接口 | 开源日报 No.75

    picture hasura/graphql-engine[1] Stars: 30.3k License: Apache-2.0 picture Hasura GraphQL Engine 是一个开源产品...它具有以下主要功能和核心优势: 内建强大查询:支持过滤、分页、模式搜索等功能 与现有数据库兼容:将其指向现有数据库即可立即获得可用的 GraphQL API 实时性能:可以使用订阅将任何 GraphQL...查询转换为实时查询 合并远程架构:通过单个 GraphQL 引擎端点访问自定义业务逻辑的自定义 GraphQL 架构 使用 Actions 扩展功能:编写 REST API 以在 Hasura 模式中添加自定义业务逻辑...支持自我认证数据结构、协议规范等。...提供多种计算机视觉和自然语言处理模型支持,如 BERT、ViT、ResNet 等。

    59650

    使用数据库编程在PostgreSQL上构建石头剪刀布游戏

    现代数据库 是持久、高效且可编程的数据存储库,使它们成为构建应用程序的超级强大环境。然而,近年来,许多数据库功能,如函数、触发器和物化视图,已经过时。...本文重新审视了这种范式,鉴于新的发展,并展示了如何通过创建一个在PostgreSQL 实例上运行的完全可用的“石头剪刀布”游戏,来构建一个以数据库为中心的应用程序,而不会牺牲现代软件工程原则。...原子性和一致性的损失 现代数据库,如 PostgreSQL,非常擅长使用其ACID 属性 来维护操作的原子性和结果数据的 一致性。...Hasura 和 Supabase 都展示了拥抱数据库编程的力量和效率。为组织提供基于数据库的“即时”后端 API,可以实现将应用程序业务逻辑推回到数据库的架构,从而无需自定义数据库样板代码。...数据库模式即代码:数据库代码需要合适的工具 回顾一下反对将业务逻辑推送到数据库的论点,其中许多论点归结为缺乏足够的工具和既定策略,将它们与现代软件工程实践(如自动化测试、CI/CD 等)集成。

    13410

    我们在未来会怎样构建Web应用程序?

    我想到了旅途的最后,你一定会同意我的观点,那就是浏览器中的数据库看起来应该是最有用的抽象之一。不过,这里说的有点太远了,我们先从头开始。 1客户端 这段旅程始于浏览器中的 Javascript。  ...GraphQL+Hasura GraphQL 是一种很好的方法来声明性地定义你想要从客户端获取的数据。...像 Hasura 这样的服务可以使用像 Postgres 这样的数据库,并做一些聪明的事情,比如给你一个 GraphQL API。 Hasura 很适合读取数据。...它们已被用于构建支持离线的应用程序(如 Roam)或协作应用程序(如 Precursor)。...Hasura 可以做轮询,而且可扩展。我们也可以尝试使用特定的订阅语言,类似于 Supabase。如果我们可以证明某些查询只能通过事实的某些子集来更改,我们可以将它们从轮询中移出。

    10K30

    FEC 的介绍

    作者:付秋平 在传统的无线信道传输环境下,数字信号在传输的过程中往往由于各种原因,使得在传送的数据流中产生误码,使得接收端无法完全正常恢复发送端的原始数据,所以通过信道编码,使得数据流进行一定的处理,使得系统具有一定的纠错能力和抗干扰能力...在IP网络环境下,误码已经由底层得到了保证,在使用UDP进行数据传输的时候,重点会关注在了丢包等环节,使用的技术也大致相同,如使用交织抗连续丢包、ARQ数据等待重传、FEC数据恢复等。...在上述的第一个例子中,理论上我们知道了矩阵的代数形式和整数数值,按照求逆矩阵的方式,就可以恢复出原始的数据。可是在实际应用中,让计算机来实现的时候却相当的并不友好。...可是有了伽罗华域,就不一样了,所有的操作都在同一个集合中,这样上述的问题都能得到很好的解决。...而生成元就象是这个起始之源,通过本原多项式f(x),一旦某个根满足f(a) = 0, 那么该根a通过遍历可以生成这个域上的所有非0元素。如a1,a2,an.....这个是一个非常有用的性质。

    4.5K01

    Hilt 工作原理 | MAD Skills

    为了生成这些组件,Hilt 在上述元数据包中查找所有被添加 @InstallIn 注解的类。添加了 @InstallIn 注解的模块被放置在相应组件声明的模块列表中。...为了说明我们为何在 Hilt 中使用字节码改写,让我们回到 @AndroidEntryPoint。...如您所见,Hilt 会在特定的 hilt_metadata 包下生成元数据,在生成组件时,会用它们查找所有被添加 @InstallIn 注解的模块。...当 :cache 被编译时,虽然它会生成元数据,但在编译 :app 时该元数据无法使用,因为它是一个传递依赖项。因此,Hilt 无法知晓 CacheModule,它会意外地从生成的组件中排除。...我们还关注了 Hilt Gradle 插件,并了解它是如何在幕后使用字节码改写和类路径聚合,让 Hilt 的使用变得更安全、更轻松。

    1.6K20

    HBase运维:如何逆向修复HBase元数据表

    HBase中的元数据表中记录了Region的路由信息,如果元数据被损坏,将会影响正常的HBase读写业务,而元数据被损坏的问题时有发生,这篇文章介绍了如何进行元数据逆向修复的原理与操作。...在实际的HBase运维中,会碰到各色各样的问题,如RegionServer异常退出,重启进程很慢,Region长时间处于RIT状态等等,为了帮助大部分读者提供HBase的运维能力,后续会针对"HBase...我们这里逆向生成元数据主要使用到了HFile Fileinfo中的的{firstkey、lastkey}信息。...这里的逆向生成元数据主要是指:根据HFile数据文件,反向生成regioninfo/tableinfo/meta表的过程。 1....这里只能恢复{表名,startkey,endkey}, 其它属性如:{offline标志, regionName, split标志, hashcode}等均使用代码重新生成或使用配置默认值。 3.

    3.5K10

    大厂都在实践的GraphQL,你了解吗?

    前言 最近,GraphQL 在构建后端 API 方面获得越来越多大公司的青睐, 如 PayPal、Facebook、Hasura、去哪儿等公司都做了大量实践。...今天本文将介绍如何在 springboot 项目中实践 GrapQL API....定义模型后,让我们将其放在资源目录中的文件夹 graphql 下,文件名为 schema.graphqls 。Spring 会自动读取扩展名为 *.graphqlss 的模型文件。...查询名称会自动映射到函数名称,或者使用 @QueryMapping接口的value参数(在本例中为person)显式定义它。 然后,我们使用指定参数名称@Argument注释来定义输入。...spring: graphql: graphiql: enabled: true 有了这个,就可以访问 /graphiql 路径上的 UI .它将自动扫描资源目录中的模型,以帮助开发人员验证

    2.6K40

    2021年11个最佳无代码低代码后端开发利器

    ◆ Hasura 最适合那些正在寻找基于GraphQL的快速解决方案并希望向后兼容REST的专家。 Hasura是一个即时的实时GraphQL APIs引擎。...它使你的数据可以通过GraphQL API或REST API即时访问。这有助于你专注于建立和运送应用程序的速度。 Hasura使用Postgres连接连接到数据库。它可以横向扩展并保持状态以缓存查询。...虽然Fauna更像是一个完整的数据库解决方案,但通常要生成一个API,你将不得不使用一个工具,如 NoCodeApi.com....定价 个人版:每月费用为25美元 团队版:150美元/月 ◆ Directual 最适合正在寻找可扩展的NoSQL数据库的低编码者,该数据库支持高级API配置,如认证。...Directual提供了一个云托管的可扩展NoSQL数据库。它提供了配置数据库的工具,支持数据结构和对象字段。它还支持绝大多数的数据类型,如字符串、数字、文件等。

    12.6K20

    【Python】从基础到进阶(九):探索Python中的迭代器与生成器

    本篇文章将深入探讨Python中的迭代器与生成器,包括如何实现自定义迭代器、理解生成器的工作原理,以及如何在实际开发中应用这些特性来优化程序性能。 二、迭代器 1. 什么是迭代器?...使用内置迭代器 Python中的常见数据结构(如列表、元组、字典)都可以通过迭代器来遍历。例如,可以通过iter()函数将列表转换为迭代器。...生成器表达式 除了生成器函数,Python还支持生成器表达式,它类似于列表推导式,但不会一次性生成所有元素,而是逐个生成元素。...状态管理:生成器会自动保存函数的执行状态,而迭代器必须手动维护状态(如索引位置)。 内存效率:生成器通过延迟计算生成值,节省内存,而迭代器可以一次性加载大量数据。...流数据处理:在处理数据流(如网络数据或实时传感器数据)时,生成器可以动态生成数据。 无限序列生成:生成器能够轻松生成无限长度的序列。

    12910

    使用 Python 创建使用 for 循环的元组列表

    数据完整性是另一个好处。任何长度的单个元组都可以在一行代码中解压缩为多个变量。 算法 让一个空列表保存元组。 使用 for 循环循环访问元素或对象。 对于每个条目,创建一个元组并将其追加到列表中。...例 1 从员工姓名列表中创建包含员工姓名及其相应员工 ID 的元组列表。...这将生成一个元组列表,其中包含给定短语中单词的长度。...元组通过改进数据检索和管理来增强数据库操作,并通过合并名称和 ID 等源使数据配对变得容易。 结论 与列表不同,Python 中的元组是一个有序的、不可变的项目集合。创建后,无法对其进行修改。...元组包括多种数据类型,包括整数、字符串和浮点数。本指南演示了如何在 Python 中使用 for 循环来创建元组列表。当您希望构造具有不同值的多个元组时,使用 for 循环生成元组列表可能很方便。

    37920

    ZincSearch获得360万美元融资,重新定义下一代Web3.0搜索引擎

    重新定义搜索引擎技术的公司 ZincSearch 今天宣布获得 360 万美元的种子轮融资,由 Nexus Venture Partners 领投,戴尔科技资本、Secure Octane、Cardinia...非结构化数据是非常有价值的商业资产。然而,随着组织经历大量来自不同来源的非结构化数据,从他们的数据中提取全部价值变得更加困难。...不幸的是,由于存储成本的上升(在集群中基于磁盘的存储通常比基于 S3 的存储成本高出十倍)以及搜索引擎的低效率,现如今团队不得不经常在他们可以存储的日志数量上做出妥协,创建不完整的数据集。...ZincSearch ZincSearch 最初是由前亚马逊架构师 Prabhat Sharma 构建的一个开源项目,在多年听到客户抱怨传统搜索引擎的成本、可维护性和复杂性之后,ZincSearch 正在重新定义搜索引擎技术...Nexus 产品组合包括 Apollo.io、Arya ka、Clover Health、Delhivery、Druva、FingerprintJS、Hasura、H2O.ai、Infra Market

    74920
    领券