Dragonfly v2.2.0 is released!

Dragonfly v2.2.0 is released! 🎉🎉🎉 Thanks the contributors[1] who made this release happend and welcome you to visit d7y.io[2] website.

Features

Client written in Rust

The client is written in Rust, offering advantages such as ensuring memory safety, improving performance, etc. The client is a submodule of Dragonfly, refer to dragonflyoss/client[3].

outside_default.png
outside_default.png
Client supports bandwidth rate limiting for prefetching

Client now supports rate limiting for prefetch requests, which can prevent network overload and reduce competition with other active download tasks, thereby enhancing overall system performance. Refer to the documentation[4] to configure the proxy.prefetchRateLimit option.

642ef016382acbe98d80494ae2d580b5.png
The following diagram illustrates the usage of download rate limit, upload rate limit, and prefetch rate limit for the client.

839657c26c24063be03a9a728aed9734.png

Client supports leeching

If the user configures the client to disable sharing, it will become a leech.

2e626dd7fddc579864ab66d528383bb3.png
Optimize client's performance for handling a large number of small I/Os by Nydus
  • • Add the X-Dragonfly-Prefetch HTTP header. If X-Dragonfly-Prefetch is set to true and it is a range request, the client will prefetch the entire task. This feature allows Nydus to control which requests need prefetching.

  • • The client's HTTP proxy adds an independent cache to reduce requests to the gRPC server, thereby reducing request latency.

  • • Increase the memory cache size in RocksDB and enable prefix search for quickly searching piece metadata.

  • • Use the CRC-32-Castagnoli algorithm with hardware acceleration to reduce the hash calculation cost for piece content.

  • • Reuse the gRPC connections for downloading and optimize the download logic.

Defines the V2 of the P2P transfer protocol

Define the V2 of the P2P transfer protocol to make it more standard, clearer, and better performing, refer to dragonflyoss/api[5].

Enhanced Harbor Integration with P2P Preheating

Dragonfly improves its integration with Harbor v2.13 for preheating images, includes the following enhancements:

  • • Support for preheating multi architecture images.

  • • User can select the preheat scope for multi-granularity preheating. (Single Seed Peer, All Seed Peers, All Peers)

  • • User can specify the scheduler cluster ids for preheating images to the desired Dragonfly clusters.

Refer to documentation[6] for more details.

ffd26578c8a81edf96ada3dffe02b304.png
Task Manager
User can search all peers of cached task by task ID or download URL, and delete the cache on the selected peers, refer to the documentation[7].2b6b84fab94754c5c8af041fea9d3525.png
Peer Manager
Manager will regularly synchronize peers' information and also allows for manual refreshes. Additionally, it will display peers' information on the Manager Console.6bb15e450cd2f1be6d57d853c3ed8e0b.png
Add hostname regexes and CIDRs to cluster scopes for matching clients.

When the client starts, it reports its hostname and IP to the Manager. The Manager then returns the best matching cluster (including schedulers and seed peers) to the client based on the cluster scopes configuration.

c92e8971f4f9a1b0d4c1dcf053bf2019.png
Supports distributed rate limiting for creating jobs across different clusters

User can configure rate limiting for job creation across different clusters in the Manager Console.

cd95abc4a1af9ab4febec76182b1398c.png
Support preheating images using self-signed certificates

Preheating requires calling the container registry to parse the image manifest and construct the URL for downloading blobs. If the container registry uses a self-signed certificate, user can configure the self-signed certificate in the Manager's config for calling to the container registry.

0ca3df4871d71ab1656650c0e7efbe88.png
Support mTLS for gRPC calls between services

By setting self-signed certificates in the configurations of the Manager, Scheduler, Seed Peer, and Peer, gRPC calls between services will use mTLS.

Observability

Dragonfly is recommending to use prometheus for monitoring. Prometheus and grafana configurations are maintained in the dragonflyoss/monitoring[8] repository.

Grafana dashboards are listed below:

Name

ID

Link

Description

Dragonfly Manager

15945

https://grafana.com/grafana/dashboards/15945

Grafana dashboard for dragonfly manager.

Dragonfly Scheduler

15944

https://grafana.com/grafana/dashboards/15944

Granafa dashboard for dragonfly scheduler.

Dragonfly Client

21053

https://grafana.com/grafana/dashboards/21053

Grafana dashboard for dragonfly client and dragonfly seed client.

Dragonfly Seed Client

21054

https://grafana.com/grafana/dashboards/21054

Grafana dashboard for dragonfly seed client.

58f0859500a6954fe5fe5ceacb3f4010.jpeg
7318be976c14fe8788830d4115e3f2c1.jpeg

Nydus

Nydus v2.3.0 is released, refer to Nydus Image Service v2.3.0[9] for more details.

  • • builder: support --parent-bootstrap for merge.

  • • builder/nydusd: support batch chunks mergence.

  • • nydusify/nydus-snapshotter: support OCI reference types.

  • • nydusify: support export/import for remote images.

  • • nydusify: support --push-chunk-size for large size image.

  • • nydusd/nydus-snapshotter: support basic failover and hot upgrade.

  • • nydusd: support overlay writable mount for fusedev.

Console

Console v0.2.0 is released, featuring a redesigned UI and an improved interaction flow. Additionally, more functional pages have been added, such as preheating, task manager, PATs(Personal Access Tokens) manager, etc. Refer to the documentation[10] for more details.

b112c4d6ab2a514c2d4d039af63a6778.png
c9c4e66da178db0fd19d34b26bd58583.png

Document

Refactor the website documentation to make Dragonfly simpler and more practical for users, refer to d7y.io[11].

0b3f1ee2bac3aad626f950e9c79c0762.png

Significant bug fixes

The following content only highlights the significant bug fixes in this release.

  • • Fix the thread safety issue that occurs when constructing the DAG(Directed Acyclic Graph) during scheduling.

  • • Fix the memory leak caused by the OpenTelemetry library.

  • • Avoid hot reload when dynconfig refresh data from Manager.

  • • Prevent concurrent download requests from causing failures in state machine transitions.

  • • Use context.Background() to avoid stream cancel by dfdaemon.

  • • Fix the database performance issue caused by clearing expired jobs when there are too many job records.

  • • Reuse the gRPC connection pool to prevent redundant request construction.

AI Infrastructure

Model Spec

The Dragonfly community is collaboratively defining the OCI Model Specification. OCI Model Specification aims to provide a standard way to package, distribute and run AI models in a cloud native environment. The goal of this specification is to package models in an OCI artifact to take advantage of OCI distribution and ensure efficient model deployment, refer to CloudNativeAI/model-spec[12] for more details.****

outside_default.png
outside_default.png
Support accelerated distribution of AI models in Hugging Face Hub(Git LFS)
Distribute large files downloaded via the Git LFS protocol through Dragonfly P2P, refer to thedocumentation[13].47285226c95a3dfb2c065ac4e701d7b8.png

Maintainers

The community has added four new Maintainers, hoping to help more contributors participate in community.

  • • Han Jiang[14]: He works for Kuaishou and will focus on the engineering work for Dragonfly.

  • • Yuan Yang[15]: He works for Alibaba Group and will focus on the engineering work for Dragonfly.

Others

You can see CHANGELOG[16] for more details.

Links

  • • Dragonfly Website: https://d7y.io/

  • • Dragonfly Repository: https://github.com/dragonflyoss/dragonfly

  • • Dragonfly Client Repository: https://github.com/dragonflyoss/client

  • • Dragonfly Console Repository: https://github.com/dragonflyoss/console

  • • Dragonfly Charts Repository: https://github.com/dragonflyoss/helm-charts

  • • Dragonfly Monitor Repository: https://github.com/dragonflyoss/monitoring

Dragonfly Github

7db5a96738a6b85d0e597212c51fc866.png
引用链接

[1] contributors:https://github.com/dragonflyoss/dragonfly/graphs/contributors
[2]d7y.io:https://d7y.io
[3]dragonflyoss/client:https://github.com/dragonflyoss/client
[4]documentation:https://d7y.io/docs/next/reference/configuration/client/dfdaemon/
[5]dragonflyoss/api:https://github.com/dragonflyoss/api
[6]documentation:https://d7y.io/docs/next/advanced-guides/preheat/
[7]documentation:https://d7y.io/docs/next/advanced-guides/task-manager/
[8]dragonflyoss/monitoring:https://github.com/dragonflyoss/monitoring/
[9]Nydus Image Service v2.3.0:https://github.com/dragonflyoss/nydus/releases/tag/v2.3.0
[10]documentation:https://d7y.io/docs/next/advanced-guides/web-console/
[11]d7y.io:https://d7y.io/
[12]CloudNativeAI/model-spec:https://github.com/CloudNativeAI/model-spec
[13]documentation:https://d7y.io/docs/next/operations/integrations/hugging-face/
[14]Han Jiang:https://github.com/CormickKneey
[15]Yuan Yang:https://github.com/yyzai384
[16]CHANGELOG:https://github.com/dragonflyoss/dragonfly/blob/main/CHANGELOG.md

内容概要:本文围绕基于风光储能和需求响应的微电网日前经济调度问题,提出了一套完整的Python代码实现方案。研究综合考虑风能、光伏等可再生能源的出力不确定性、储能系统的动态充放电特性以及需求侧响应机制,构建了以最小化系统综合运行成本为目标的优化调度模型。该模型充分体现了对可再生能源的高效消纳、系统经济性提升与供需平衡调控的能力,通过Python编程结合优化求解器实现了模型的求解与仿真验证,为微电网能量管理系统的设计与科研分析提供了可复现的技术路径与实践参考。; 适合人群:具备一定Python编程基础和电力系统优化调度知识的科研人员、工程技术人员及高校电气工程、能源系统等相关专业的研究生。; 使用场景及目标:①应用于微电网、智能配电网及综合能源系统的科研建模与仿真分析;②帮助读者深入理解含高比例可再生能源的电力系统日前调度建模方法、目标函数构造与约束条件处理技巧;③为实际工程中实现低碳、经济、可靠的微电网运行提供算法支持与决策依据。; 阅读建议:建议读者结合文档中的代码实例,系统学习优化模型的数学表达与编程实现过程,重点关注变量定义、目标函数构建、系统约束(如功率平衡、储能动态、机组出力等)的编码实现,并尝试调整负荷、新能源出力等输入数据进行多场景仿真,以深入掌握微电网调度策略的灵敏度分析与优化效果评估方法。
### Spring源码面试终结者:31道核心题,源码级拆解IOC与AOP 这份资源不是“面试八股文”,而是对Spring、Spring Boot核心原理的**源码级深度拆解**。网上面试题答案大多浮于表面,无法应对面试官的连环追问。我结合源码阅读和实战踩坑,整理了这份**近10万字的硬核指南**,系统梳理了大厂面试中最棘手的31道Spring核心题。 **【资源核心内容】** - **IOC与DI王者解析**:深入BeanFactory与ApplicationContext层级设计,对比三种依赖注入方式,并用图文拆解三级缓存解决循环依赖的源码流程。 - **AOP与事务底层原理**:彻底讲透动态代理选择策略,深度分析@Transactional失效的10大经典场景及源码级解决方案。 - **Spring MVC与自动装配**:从DispatcherServlet的9大组件到SpringBoot的SPI机制,理清自动配置的完整加载链路。 - **高频追问与满分话术**:每道题配有“低分vs高分回答”对比,帮你精准拿捏面试官想要的“源码级理解”。 **【特色】** 拒绝罗列概念,每道题都从“核心考点”出发,深入到AbstractApplicationContext、TransactionInterceptor等Spring源码,帮助你在理解设计思想的同时,具备手写简易IOC容器的能力。 **【适合谁看】** 备战阿里、字节、美团等大厂面试的Java开发;对Spring原理一知半解,想系统提升源码阅读能力的开发者;希望从“会用”进阶到“懂原理”的技术人。 希望这份整理能帮你构建完整的Spring知识体系,轻松应对面试官的灵魂追问!
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 二进制补码、小数的补码及运算规则 一、补码的概念和原理 补码是一种普遍的概念,在计算机系统中,所有数值均采用补码形式进行表示(存储)。补码的核心特性在于:借助补码,能够将符号位与其它位进行统一处理;同时,减法运算亦可转化为加法运算来执行。补码的构成方式是在原码的基础上进行适当调整,原码表示法在数值前增加了一位符号位(即最高位用作符号位):正数该位为 0,负数该位为 1(0存在两种形式:+0 和-0),其余位用于表示数值的大小。 二、补码的表示和转换 补码的表示形式可区分为两种:整数的补码和小数的补码。 整数的补码表示方式: 1. 正数的补码与其原码相同(即自身) 2. 负数的补码通过原码取反,然后在最低位加 1,符号位保持不变 小数的补码表示方式: 1. 正小数的补码与其原码一致 2. 负小数的补码通过原码取反,然后在最低位加 1,符号位维持不变 三、补码的运算规则 补码的运算规则可归纳为三种:加法、减法和乘法。 1. 加法运算规则: [X+Y]补 = [X]补 + [Y]补 2. 减法运算规则: [X-Y]补 = [X]补 - [Y]补 = [X]补 + [-Y]补 3. 乘法运算规则: [X*Y]补= [X]补×[Y]补,即乘数(被乘数)相乘的补码等于补码的相乘。 需要强调的是,进行乘法运算时必须执行符号扩展:Nbit 乘数 和 Nbit 被乘数 都需符号扩展到 2Nbit,之后再进行直接相乘。 四、小数 Fraction 的补码表示和运算规则 小数 Fraction 的补码表示方式: 最高位为符号位,小数点位于符号位之后,其后的第一位代表 1/2,再后一位代表1/4,再...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值