HarperDB:一个弱势的SQL / NoSQL数据库

开始在你的车库里和你的伙伴一起编写一个新的数据库。使用 JavaScript。以你的狗的名字命名。为您自己的数据模型申请专利。不要开源。接管世界。

这就是HarperDB成功的秘诀。这似乎不太可能,它让你怀疑这是天才还是只是疯狂。

分解数据模型

斯蒂芬·戈德堡(Stephen Goldberg)和凯尔·伯恩哈迪(Kyle Bernhardy)似乎不像疯子。他们在企业咨询方面拥有长期的经验,而这正是他们开始在HarperDB上的原因。

Goldberg和Bernhardy喜欢NoSQL的规模和易用性,但仍然希望ANSI SQL能够进行可操作的分析。他们希望能够执行多表联接和多条件语句。

他们,以及数据库世界中几乎所有其他人。SQL和NoSQL解决方案的融合已经持续了一段时间。处理此要求的典型方法是多模型数据库。但戈德堡和伯恩哈迪决定采取不同的方法。

他们认为多模型作为一种设计模式存在固有的缺陷,对数据湖和map reduce解决方案的性能感到沮丧,并且想要一些符合ACID的东西。

他们认为需要一个单一的模型来适应上述所有内容,因此他们继续创建了他们所谓的爆炸数据模型,这也是他们专利的基础。


在分解数据模型中,JSON 对象中的每个属性或 SQL 插入/更新语句中的列在写入时都成为索引。这些属性及其值谨慎地存储在磁盘上。

Goldberg和Bernhardy说,这避免了配置外键和索引的需要,并允许在不增加磁盘占用空间的情况下为每个属性/列编制索引,因为它们不会存储整个记录,也不会存储单独的索引表。

搜索时,并行化用于将数据合并回基于请求列的对象。Goldberg和Bernhardy指出,这具有允许联接与单个表搜索一样具有性能的额外好处:

“我们的数据模型允许在高吞吐量下同时读取和写入。每个属性事务都是离散的,我们没有遇到行锁定或需要内存中转换,这通常会困扰数据库解决方案,并导致它们在HTAP方案下失败。

无架构,无需维护

现在听起来不那么疯狂了,尽管乍一看他们的合并数据方法似乎与多模型方法并不完全不同。对此进行评估将意味着要么获得其实施和专利,要么以竞争解决方案为基准,而这些都是我们没有的选择。

然而,听起来仍然有点疯狂的是,在像数据库市场这样拥挤的市场中采用既定的解决方案。戈德堡和伯恩哈迪表示,他们并不是要与根深蒂固的解决方案竞争,而是与他们并肩工作并增强它们。

这也是他们今天推出专注于物联网的部分原因,因为他们注意到有很多绿地项目,这些项目需要新的架构模式才能看到成功和扩展。

他们还希望与传统的SQL数据仓库一起工作,作为一个旁车,通过其JDBC驱动程序为非结构化数据提供实时SQL功能,或者将SQL数据库中的列/行数据制作成旨在与JSON交互的应用程序。

HarperDB 将广告宣传为无架构和无配置。Goldberg和Bernhardy澄清说,说HarperDB有一个动态模式更准确。“无配置”是指不需要对列、外键、数据类型或索引进行配置。

HarperDB 具有架构、表和属性的概念。架构和表仅提供用于查找属性和创建逻辑集合的名称空间。属性是在插入/更新时条件反射地创建的,没有数据类型,但 ODBC 和 JDBC 驱动程序会对数据进行采样,以在 BI 工具中建议数据类型。

从车库到世界

Goldberg和Bernhardy还表示,HarperDB背后的设计思想是让它变得如此简单,以至于任何技能水平的开发人员都可以使用它。他们希望将开发数据库的大部分复杂性内部化,而不是将这种复杂性卸载到开发人员身上。他们说安装过程需要五个问题,大约需要一到两分钟。

他们提到与78个团队一起举办黑客马拉松,只有一名开发人员提出了有关实现的问题。他们补充说,自2017年8月发布测试版以来,他们收到的支持请求不到五次,来自670多名开发人员的下载量接近800次。

这触及了一个重要的观点:你能从HarperDB获得什么样的支持,它背后的团队是什么,增长前景如何?

尽管 HarperDB 的核心团队经验丰富,关系紧密,但经过长时间的合作,整个组织目前雇佣了八名员工。HarperDB迄今已筹集了约130万美元的资金,并正在筹集另外75万至100万美元,目标是在12至18个月内进行潜在的A轮融资。

Goldberg和Bernhardy表示,这将使他们能够通过工程和销售人才来发展团队,并且他们正在与销售该产品的嵌入式设备和系统集成合作伙伴合作并提供支持。

Node.js物联网及其他领域取得胜利?

Goldberg和Bernhardy强调利用Node.js进行人才招聘。他们说他们选择Node.js部分原因是它很容易学习,而且大多数开发人员已经知道JavaScript。因此,这使得引入开发人员变得更加容易。

在 JavaScript 上构建这样一个复杂系统的决定在几年前可能会受到嘲笑。但对于Goldberg和Bernhardy来说,Node.js是一种竞争优势。

他们引用了Stackoverflow过去几年的开发人员调查,其中Node.js是#1和#2受欢迎的语言,也是物联网中常用的语言,也是他们瞄准物联网的部分原因:

“微计算设备上的HarperDB不是精简版本,网关解决方案或缓存机制,而是直接在设备上运行的完整HTAP数据库。它与服务器版本相同的代码库。

它是无状态的,允许在不使用时很少的资源使用,如CPU,RAM,重要的是电池寿命。

人们表达了对HarperDB需要更接近操作系统和Node的担忧.js允许您在本机使用C / C++库。然而,我们尚未发现有必要这样做。

这为我们提供了进一步的创新空间,并提供了获得性能和功能的机会。由于围绕NPM的惊人社区,支持的库的丰富性以及NPM的易用性,我们还能够令人难以置信的快速交付产品。

因为 Node.js 是作为 Web 语言编写的,所以我们看到了使用它来进行集群和 Socket.io 以及 Express 等 API 的惊人好处。我们与Node.js社区有很好的互动经验。

相关文章