直接在 DNA 上执行 SQL 操作,已通过 PostgreSQL 验证
法国通信系统工程师学校与研究中心(Eurecom)数据科学系助理教授 Appuswamy 和伦敦帝国理工学院 SCALE 实验室负责人 Heinis 等人近期发表了一篇关于在 DBMS 存储层操作 DNA 的论文《OligoArchive: Using DNA in the DBMS storage hierarchy》。
论文研究了在数据库存储层次结构中集成 DNA 的问题。更具体地,其提出了以下两个问题:
- 数据库经验如何帮助优化 DNA 编码和解码?
- 生化机制如何应用于对 DNA 操作进行体外、近数据的 SQL 查询处理?
为了回答这两个问题,该研究引入了一个叫 OligoArchive 的架构,这是一种使用基于 DNA 的存储系统作为关系数据库归档层的架构。
DNA 的存储系统简单讲也就是指基于 ATCG 这些碱基所组成的一套存储信息的方案,类比 0/1 二进制,这种存储系统具有四进制。用 DNA 作为存储介质,优势是容量大与存储时间长,有数据指出 1 克 DNA 能够存储大约 2 拍字节,相当于大约 300 万张 CD;同时用 DNA 存储数据保存时间可能长达数千年;此外与硬盘、磁带等存储介质不同,DNA 不需要经常维护,而且在读取方式上,DNA 存储不涉及兼容性问题。
天然存在的 DNA 是有两条核苷酸链的双螺旋结构,而用于数据存储的 DNA 是单链核苷酸序列,又叫寡核苷酸(oligo),它是使用每次一个核苷酸来组装 DNA 的化学过程合成的。
OligoArchive 架构通过将基于磁带的归档层替换为基于 DNA 的归档层来改变 DBMS 存储层次结构,论文具体介绍了数据库引擎和 DNA 存储设备之间的分工,以及 DNA 存储设备应在 OligoArchive 中使用的接口。
数据库与 DNA 存储分工是这样的:数据库系统执行关系数据和寡核苷酸序列之间的转换。在 put 操作期间,DNA 存储系统合成 DNA 链并将它们存储在库中;在 get 操作期间,对 DNA 链进行测序并将读数返回。
研究人员通过为 PostgreSQL 构建归档和恢复工具(pg_oligo_dump 与 pg_oligo_restore)证明 OligoArchive 可以在实践中实现,这些工具执行模式识别编码和解码 DNA 上的关系数据,并使用这些工具将 12KB TPC-H 数据库归档到 DNA,进行体外计算,并将其恢复。
论文中的实验表明,使用合成 DNA 存档和恢复数据不仅可行,而且还可以利用数据库知识经验优化 DNA 编码和解码过程,甚至直接在 DNA 上执行 SQL 操作。
具体内容查看论文:
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
VS Code 的 Java 七月更新,新的重构特性
微软官方发博表示,Java on Visual Studio Code 已经更新,在这个更新中,提到几个新的重构特性、语义选择以及提供的一些其他改进。 重构 在extract to variable/constant/method (提取到变量/常数/方法)之后触发器的重命名 在extract to variable/constant/method重构之后,通常情况下,希望使用有意义的名称分配结果。使用此功能,将不再需要执行单独的重命名操作,所有操作都是在单个重构步骤中以流线型方式处理。 将局部变量转换为字段 Extract to field(提取到字段)也是一个流行的重构。现在,在选择表达式时,可以使用 extract to field。 当选择变量声明时,它将将变量转换为字段(convert the variable to field ) 支持语义选择 Smart Selection(也就是语义选择)是 VS Code 添加的新特性,它可以理解 Java 代码。这样,就可以扩展或缩小与代码中插入位置的语义信息相对应的选择范围。 若要扩展选择,在 Windows 上则使用 Shift...
- 下一篇
微软解释为什么 Rust 是系统编程的最佳选择
上周,MSRC(微软安全响应中心)透露出拥抱 Rust的打算,随后他们将这个话题扩展为一个系列,进一步阐述了使用安全的系统编程语言的的必要性,以及选择 Rust 的原因。 在该系列最新一篇文章中,MSRC团队首席云开发布道师 Ryan Levick 解释了为什么他们认为 Rust 编程语言目前是业界采用的最佳选择,不仅仅是因为它能够以内存安全的方式编写系统级程序。 “首先,已经有很多出色的内存安全语言在微软内外广泛使用,包括 .NET 语言(像是 C# 或 F#)和其他语言(例如 Swift、Go 和 Python)。我们鼓励目前使用 C 或 C++ 的人将其中任意一种语言纳入考虑。不过现在谈论的是对安全的系统编程语言的需求,此类工作负载需要 C、C++ 和 Rust 能够提供的速度和可预测的性能。 通过垃圾回收实现内存安全的语言不是系统编程的理想选择,因为它们的运行时间会导致不可预测的性能和不必要的成本。” 性能和控制 Levick 指出,最好先考虑一下无法从C 和 C++ 放弃的东西——性能和控制,就能更清楚地明白Rust 为什么是一个好的选择。像 C 和 C++ 一样,Rust ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Mario游戏-低调大师作品
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8