Skip to content

Commit

Permalink
Merge branch 'main' into perf_sql_engine_lock_optimize
Browse files Browse the repository at this point in the history
  • Loading branch information
zhoucheng361 committed Dec 27, 2024
2 parents d1e877c + 003c80b commit 4126882
Show file tree
Hide file tree
Showing 17 changed files with 657 additions and 281 deletions.
5 changes: 3 additions & 2 deletions .github/workflows/load.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
if [ "${{github.event_name}}" == "schedule" ] || [ "${{github.event_name}}" == "workflow_dispatch" ]; then
echo 'meta_matrix=["sqlite3", "redis", "mysql", "tikv", "tidb", "postgres", "mariadb", "fdb"]' >> $GITHUB_OUTPUT
else
echo 'meta_matrix=["redis", "mysql", "tikv"]' >> $GITHUB_OUTPUT
echo 'meta_matrix=["redis"]' >> $GITHUB_OUTPUT
# echo 'meta_matrix=["redis"]' >> $GITHUB_OUTPUT
fi
outputs:
Expand Down Expand Up @@ -104,8 +104,9 @@ jobs:
AWS_SECRET_ACCESS_KEY: ${{secrets.CI_COVERAGE_AWS_SK}}
AWS_ACCESS_TOKEN: ${{secrets.CI_COVERAGE_AWS_TOKEN}}
META: ${{matrix.meta}}
START_META: true
run: |
sudo -E GOCOVERDIR=$(pwd)/cover START_META=true .github/scripts/command/load_dump_bench.sh test_load_dump_with_small_dir
sudo -E GOCOVERDIR=$(pwd)/cover .github/scripts/command/load_dump_bench.sh test_load_dump_with_small_dir
- name: Load and dump with big directory
timeout-minutes: 30
Expand Down
1 change: 0 additions & 1 deletion docs/en/deployment/hadoop_java_sdk.md
Original file line number Diff line number Diff line change
Expand Up @@ -751,7 +751,6 @@ JuiceFS currently supports path permission control by integrating with Apache Ra
|-----------------------------------|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `juicefs.ranger-rest-url` | | `ranger`'s HTTP link url. Not configured means not using this feature. |
| `juicefs.ranger-service-name` | | `ranger`'s `service name` in `HDFS` module, required |
| `juicefs.ranger-cache-dir` | | `ranger`'s policies cache path. By default, a `UUID` path hierarchy is added under the environment variable `java.io.tmpdir` to prevent multitasking from interfering with each other. After configuring a fixed directory, multiple tasks will share the cache, and only one JuiceFS is responsible for cache refreshing, to reduce the pressure on connecting to `Ranger Admin`. |
| `juicefs.ranger-poll-interval-ms` | `30000` | `ranger`'s interval to refresh cache, default is 30s |

### 2. Dependencies
Expand Down
24 changes: 23 additions & 1 deletion docs/zh_cn/community/articles.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ JuiceFS 广泛适用于各种数据存储和共享场景,本页汇总来自世

## AI

- [从 CephFS 到 JuiceFS:同程旅行亿级文件存储平台构建之路](https://juicefs.com/zh-cn/blog/user-stories/cephfs-vs-juicefs-draco-travel-file-storage),2024-12-13,位传海@同程旅行
- [vivo 轩辕文件系统:AI 计算平台存储性能优化实践](https://juicefs.com/zh-cn/blog/user-stories/vivo-ai),2024-10-25,于相洋@vivo
- [大模型存储选型 & JuiceFS 在关键环节性能详解](https://juicefs.com/zh-cn/blog/solutions/large-model-storage-performance-juicefs),2024-10-09,李少杰
- [MiniMax:如何基于 JuiceFS 构建高性能、低成本的大模型 AI 平台?](https://juicefs.com/zh-cn/blog/user-stories/minimax-juicefs-ai),2024-08-30
- [基于 JuiceFS 构建高校 AI 存储方案:高并发、系统稳定、运维简单](https://juicefs.com/zh-cn/blog/user-stories/juicefs-vs-nfs-ai-storage),2024-06-26,徐国昊@中山大学
- [贝壳找房:为 AI 平台打造混合多云的存储加速底座](https://juicefs.com/zh-cn/blog/user-stories/beike-ai-platform-multi-cloud-storage),2024-06-12,王天庆@贝壳找房
- [北美科技企业 Jerry:基于 JuiceFS 构建 ClickHouse 主从架构](https://juicefs.com/zh-cn/blog/user-stories/jerry-clickhouse-read-write-separation-juicefs-primary-replica-architecture),2024-05-17,马涛@Jerry
Expand Down Expand Up @@ -63,7 +67,14 @@ JuiceFS 广泛适用于各种数据存储和共享场景,本页汇总来自世

## 云原生 & Kubernetes

- [海柔仿真系统存储实践:混合云架构下实现高可用与极简运维](https://juicefs.com/zh-cn/blog/user-stories/multi-cloud-storage-high-availability),2024-11-08,吴森栋@海柔创新
- [好未来:多云环境下基于 JuiceFS 建设低运维模型仓库](https://juicefs.com/zh-cn/blog/user-stories/multi-cloud-storage-juicefs-model-stroage),2024-11-06,贺龙华@好未来
- [小米云原生文件存储平台化实践:支撑 AI 训练、大模型、容器平台多项业务](https://juicefs.com/zh-cn/blog/user-stories/cloud-native-file-storage-platform-as-ai-training-large-models-container-platforms),2023-09-22,孙佳朋@小米
- [大模型训练:K8s 环境中数千节点存储最佳实践](https://juicefs.com/zh-cn/blog/usage-tips/large-model-storage-kubernetes),2024-09-25,朱唯唯
- [Clobotics 计算机视觉场景存储实践:多云架构、POSIX 全兼容、低运维的统一存储](https://juicefs.com/zh-cn/blog/user-stories/clobotics-posix-multi-cloud-storage),2024-08-30,Jonnas@Clobotics
- [JuiceFS 在多云架构中加速大模型推理](https://juicefs.com/zh-cn/blog/solutions/data-storage-multi-cloud-model-training-juicefs),2024-08-23,高昌健
- [如何在 Kubernetes 中使用 ClickHouse 和 JuiceFS](https://juicefs.com/zh-cn/blog/usage-tips/kubernetes-clickhouse-juicefs),2024-08-02,Vitaliy Zakaznikov
- [Kubernetes 数据持久化:从零开始使用 JuiceFS CSI Driver](https://juicefs.com/zh-cn/blog/usage-tips/kubernetes-juicefs-csi-driver),2023-12-11,于鸿儒
- [从本地到云端:豆瓣如何使用 JuiceFS 实现统一的数据存储](https://juicefs.com/zh-cn/blog/user-stories/scalable-computing-unified-data-storage-ops-cloud-spark-k8s-juicefs),2023-05-10,曹丰宇@豆瓣
- [云上大数据存储:探究 JuiceFS 与 HDFS 的异同](https://juicefs.com/zh-cn/blog/engineering/similarities-and-differences-between-hdfs-and-juicefs-structures),2023-04-04,汤友棚
- [Sidecar-详解 JuiceFS CSI Driver 新模式](https://juicefs.com/zh-cn/blog/usage-tips/explain-in-detail-juicefs-csi-driver-sidecar),2023-02-22,朱唯唯
Expand All @@ -78,6 +89,8 @@ JuiceFS 广泛适用于各种数据存储和共享场景,本页汇总来自世

## 数据共享

- [Ollama + JuiceFS:一次拉取,到处运行](https://juicefs.com/zh-cn/blog/usage-tips/ollama-juicefs),2024-09-09,朱唯唯
- [Conda + JuiceFS:增强 AI 开发环境共享能力](https://juicefs.com/zh-cn/blog/usage-tips/conda-juicefs-enhance-ai),2024-12-04,于鸿儒
- [云上使用 Stable Diffusion,模型数据如何共享和存储?](https://juicefs.com/zh-cn/blog/usage-tips/share-store-model-data-stable-diffusion-cloud),2023-06-16,于鸿儒
- [基于 JuiceFS 搭建 Milvus 分布式集群](https://juicefs.com/blog/cn/posts/build-milvus-distributed-cluster-based-on-juicefs)
- [如何解决 NAS 单点故障还顺便省了 90% 的成本?](https://juicefs.com/blog/cn/posts/modao-replace-nas-with-juicefs)
Expand All @@ -94,6 +107,16 @@ JuiceFS 广泛适用于各种数据存储和共享场景,本页汇总来自世

## 教程、使用指南、评测及其他

- [缓存管理自动化:JuiceFS 企业版 Cache Group Operator 新特性发布](https://juicefs.com/zh-cn/blog/release-notes/juicefs-cache-group-operator),2024-12-26,张旭辉
- [代码级解析:JuiceFS 元数据、数据存储设计原理](https://juicefs.com/zh-cn/blog/engineering/juicefs-metadata-data-stroage-designed),2024-11-25,Arthur
- [使用 JuiceFS 快照功能实现数据库发布与端到端测试](https://juicefs.com/zh-cn/blog/usage-tips/juicefs-snapshot-database-test),2024-11-15,马涛@Jerry
- [JuiceFS CSI:Mount Pod 的平滑升级及其实现原理](https://juicefs.com/zh-cn/blog/usage-tips/juicefs-csi-mount-pod-smooth-upgrade),2024-10-30,朱唯唯
- [详解 JuiceFS 在多云架构下的数据同步与一致性](https://juicefs.com/zh-cn/blog/solutions/juicefs-mirror),2024-10-18
- [全新 JuiceFS Python SDK 快速上手](https://juicefs.com/zh-cn/blog/usage-tips/juicefs-python-sdk),2024-10-14,于鸿儒
- [Hugging Face + JuiceFS:多用户多节点环境下提升模型加载效率](https://juicefs.com/zh-cn/blog/usage-tips/huggingface-juicefs),2024-09-29,于鸿儒
- [JuiceFS 企业版 5.1:新增可写镜像、Python SDK 多项特性,强化 AI 场景支持](https://juicefs.com/zh-cn/blog/release-notes/juicefs-enterprise-edition-v51),2024-09-14
- [性能、成本与 POSIX 兼容性比较:JuiceFS vs EFS vs FSx for Lustre](https://juicefs.com/zh-cn/blog/engineering/juicefs-vs-efs-fsx-for-lustre),2024-09-04,白伯纯
- [如何判断数据库和对象存储是否被 JuiceFS 使用?](https://juicefs.com/zh-cn/blog/usage-tips/database-object-storage-used-by-juicefs),2024-08-16,于鸿儒
- [一文详解 JuiceFS 读性能:预读、预取、缓存、FUSE 和对象存储](https://juicefs.com/zh-cn/blog/engineering/juicefs-read-performance),2024-07-26,莫飞虎
- [JuiceFS 直连 NFS 新功能介绍,赋能 NAS 进行 AI 训练](https://juicefs.com/zh-cn/blog/usage-tips/juicefs-nfs-nas-ai),2024-07-19,于鸿儒
- [SeaweedFS + TiKV 部署保姆级教程](https://juicefs.com/zh-cn/blog/usage-tips/seaweedfs-tikv),2024-07-12,杨进豪@思谋科技
Expand All @@ -110,7 +133,6 @@ JuiceFS 广泛适用于各种数据存储和共享场景,本页汇总来自世
- [千卡利用率超 98%,详解 JuiceFS 在权威 AI 测试中的实现策略](https://juicefs.com/zh-cn/blog/engineering/juicefs-mlperf-test),2024-02-28,莫飞虎
- [极限挑战:使用 Go 打造百亿级文件系统的实践之旅](https://juicefs.com/zh-cn/blog/engineering/go-build-billion-file-system),2024-02-02,Sandy
- [详解新功能 JuiceFS CSI Dashboard:简化云上环境的问题排查流程](https://juicefs.com/zh-cn/blog/usage-tips/juicefs-csi-dashboard),2023-12-29,李晨曦
- [Kubernetes 数据持久化:从零开始使用 JuiceFS CSI Driver](https://juicefs.com/zh-cn/blog/usage-tips/kubernetes-juicefs-csi-driver),2023-12-11,于鸿儒
- [JuiceFS 用户必备的 6 个技巧](https://juicefs.com/zh-cn/blog/usage-tips/juicefs-user-skills),2023-11-22,于鸿儒
- [手把手教你搭建 Ceph 集群、对接 JuiceFS 文件系统](https://juicefs.com/zh-cn/blog/usage-tips/ceph-juicefs),2023-11-20
- [JuiceFS 企业版 5.0 新特性速览](https://juicefs.com/zh-cn/blog/release-notes/juicefs-enterprise-edition-v5),2023-11-17
Expand Down
1 change: 0 additions & 1 deletion docs/zh_cn/deployment/hadoop_java_sdk.md
Original file line number Diff line number Diff line change
Expand Up @@ -876,7 +876,6 @@ JuiceFS 当前支持对接 Apache Ranger 的 `HDFS` 模块进行路径的权限
|-----------------------------------|----------|--------------------------------------------------------------------------------------------------------------------------------|
| `juicefs.ranger-rest-url` | | `ranger`连接地址。不配置该参数即不使用该功能。 |
| `juicefs.ranger-service-name` | | `ranger`中配置的`service name`,必填 |
| `juicefs.ranger-cache-dir` | | `ranger`策略的缓存路径。默认在环境变量`java.io.tmpdir`下,添加`UUID`路径层级防止多任务相互影响。当配置固定目录后,多个任务会共享缓存,有且仅有一个JuiceFS对象负责缓存刷新,减少对连接`Ranger Admin`压力。 |
| `juicefs.ranger-poll-interval-ms` | `30000` | `ranger`缓存刷新周期,默认30s |

### 2. 环境及依赖
Expand Down
14 changes: 14 additions & 0 deletions sdk/java/libjfs/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -695,6 +695,20 @@ func jfs_update_uid_grouping(cname, uidstr *C.char, grouping *C.char) {
}
}

//export jfs_getGroups
func jfs_getGroups(name, user string) string {
fslock.Lock()
defer fslock.Unlock()
userGroups := userGroupCache[name]
if userGroups != nil {
gs := userGroups[user]
if gs != nil {
return strings.Join(gs, ",")
}
}
return ""
}

//export jfs_term
func jfs_term(pid int, h int64) int {
w := F(h)
Expand Down
33 changes: 28 additions & 5 deletions sdk/java/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,14 @@
<pattern>com.google.common</pattern>
<shadedPattern>io.juicefs.shaded.com.google.common</shadedPattern>
</relocation>
<relocation>
<pattern>org.apache.commons.lang</pattern>
<shadedPattern>io.juicefs.shaded.org.apache.commons.lang</shadedPattern>
</relocation>
<relocation>
<pattern>com.kstruct.gethostname4j</pattern>
<shadedPattern>io.juicefs.shaded.com.kstruct.gethostname4j</shadedPattern>
</relocation>
</relocations>
</configuration>
</plugin>
Expand Down Expand Up @@ -350,6 +358,11 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.apache.ranger</groupId>
<artifactId>ranger-plugins-common</artifactId>
Expand All @@ -361,6 +374,21 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.kstruct</groupId>
<artifactId>gethostname4j</artifactId>
<version>0.0.2</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-bundle</artifactId>
<version>1.19.3</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-jaxrs</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>org.apache.ranger</groupId>
<artifactId>ranger-plugins-audit</artifactId>
Expand All @@ -372,11 +400,6 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
</dependencies>

<distributionManagement>
Expand Down
Loading

0 comments on commit 4126882

Please sign in to comment.