前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手写一个简易版数据库!项目经验稳了

手写一个简易版数据库!项目经验稳了

作者头像
Guide哥
发布2022-11-07 14:27:06
3.5K0
发布2022-11-07 14:27:06
举报
文章被收录于专栏:JavaGuide

这是 JavaGuide 的「优质开源项目推荐」第 11 期,每一期我都会精选 5 个高质量的 Java 开源项目。

你可以通过 awesome-java (非常棒的 Java 开源项目集合,找 Java 项目必备)找到更多优质的 Java 开源项目。

  • Github 地址:https://github.com/CodingDocs/awesome-java
  • Gitee 地址:https://gitee.com/SnailClimb/awesome-java
  • 在线阅读:https://javaguide.cn/open-source-project/

MYDB:一个 Java 实现的简单的数据库

MYDB 是一个 Java 语言实现的简易版数据库,部分原理参照自 MySQL、PostgreSQL 和 SQLite。

麻雀虽小,五脏俱全。MYDB 目前已经实现 MVCC、两种事务隔离级别(读提交和可重复读)、死锁处理、简陋的 SQL 解析等关系型数据库的核心功能。

并且,MYDB 作者写了详细的实现教程,教程地址:https://ziyang.moe/cs/project/mydb/

Github 地址:https://github.com/CN-GuoZiyang/MYDB

ip2region:离线 IP 地址定位库

ip2region 是一个高性能离线 IP 地址定位库,10 微秒级别的查询效率,开箱即用,提供了多种主流编程语言(如 Go,Java,Python)的 xdb 数据生成和查询客户端 API。

通过 ip 地址可以通过自治系统(Autonomous System)找到该 ip 对应的具体地址,这样就可以轻松实现网站用户 ip 归属地类似的功能。

  • Gitee:https://gitee.com/lionsoul/ip2region
  • GitHub:https://github.com/lionsoul2014/ip2region

另外,mica-ip2region 这个项目是对这个项目的 stater 封装,目的是方便 Spring Boot 项目使用。

  • Gitee:https://gitee.com/lionsoul/ip2region
  • 官方文档:https://www.dreamlu.net/components/mica-ip2region.html

compileflow:轻量级流程引擎

一个轻量、高性能、可集成、可扩展的流程引擎,淘宝工作流TBBPM引擎之一。

compileflow 专注于纯内存执行,无状态的流程引擎,通过将流程文件转换生成java代码编译执行,简洁高效。当前是阿里业务中台交易等多个核心系统的流程引擎。

compileflow 介绍

  • Github :https://github.com/alibaba/compileflow 。
  • 官方 Demo : https://github.com/compileflow/compileflow-demo 。
  • 基于 IntelliJ IDEA 流程可视化插件 : https://github.com/alibaba/compileflow-idea-designer

CompreFace:免费开源的人脸识别服务

CompreFace 是一个免费开源的人脸识别服务,开箱即用,不需要机器学习技能!

本质上来说,它就是一个基于 Docker 的应用程序,可以用作独立服务器或部署在云中。

  • Github:https://github.com/exadel-inc/CompreFace
  • 官网:https://exadel.com/solutions/compreface/

transmittable-thread-local:定制化的 ThreadLocal

transmittable-thread-local(TTL) 基于 InheritableThreadLocal ,你可以将其看做是定制化的 ThreadLocal ,主要用于复用线程场景(比如线程池)下解决异步执行时上下文传递的问题(比如线程池中获取 ThreadLocal 中的数据)。

ThreadLocal的需求场景即是 transmittable-thread-local的潜在需求场景。下面是几个典型场景例子:

  • 分布式跟踪系统 或 全链路压测(即链路打标)
  • 日志收集记录系统上下文
  • SessionCache
  • 应用容器或上层框架跨应用代码给下层SDK传递信息

Github 地址:https://github.com/alibaba/transmittable-thread-local 。

下面是 TTL 官方的一些资料:

  • TTL 需求场景说明[1]
  • TTL 实际业务使用场景与设计实现解析[2]

再推荐几篇文章帮助大家理解 TTL 的原理和设计思想:

参考资料

[1]

TTL 需求场景说明: https://github.com/alibaba/transmittable-thread-local/blob/master/docs/requirement-scenario.md

[2]

TTL 实际业务使用场景与设计实现解析: https://github.com/alibaba/transmittable-thread-local/issues/123

[3]

通过 transmittable-thread-local 源码理解线程池线程本地变量传递的原理: https://www.cnblogs.com/throwable/p/12817754.html

[4]

如何在子线程和线程池中使用 ThreadLocal 传输上下文: https://www.jianshu.com/p/4093add7f2cd

·········· END ··············

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JavaGuide 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MYDB:一个 Java 实现的简单的数据库
  • ip2region:离线 IP 地址定位库
  • compileflow:轻量级流程引擎
  • CompreFace:免费开源的人脸识别服务
  • transmittable-thread-local:定制化的 ThreadLocal
    • 参考资料
    相关产品与服务
    人脸识别
    腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档