怎么做网盘搜索引擎网站,交互网站,个人简历ppt,百度统计官网我终于设法了解了当今最不寻常的数据库之一#xff0c;Datomic#xff0c;并希望与您分享。 感谢Stuart Halloway和他的工作室#xff01; 为什么#xff1f;#xff01;#xff1f; 我们将很快看到#xff0c;Datomic与传统的RDBMS数据库以及各种NoSQL数据库有很大的不… 我终于设法了解了当今最不寻常的数据库之一Datomic并希望与您分享。 感谢Stuart Halloway和他的工作室 为什么 我们将很快看到Datomic与传统的RDBMS数据库以及各种NoSQL数据库有很大的不同。 它甚至不是数据库-它是数据库之上的数据库。 直到现在我都无法解决这个问题。 理解Datomic及其独特设计和优势的关键实际上很简单。 主流数据库和语言是围绕1970年代的以下约束设计的 内存很贵 存储很贵 有必要使用专用的昂贵机器 Datomic本质上是对如果没有这些约束的话我们应该设计什么样的数据库的探索。 我们将选择什么样的设计来拥有千兆字节的RAM具有与带宽和速度相匹配的网络并且具有超越硬盘访问的能力以及一时兴起地旋转和杀死服务器的能力。 但是Datomic并不是一个学术项目。 这是务实的它想适应我们现有的环境并让我们现在就可以轻松开始使用其未来功能。 而且它不像看起来那样新鲜和绿色。 据报道Clojure和Datomic背后的主要思想家Rich Hickey已经考虑了这两个项目很多年了而且设计也经过了深思熟虑。 Datomic的怪异架构 Datomic是位于另一个数据库或存储之上的数据库–内存文件系统传统的RDBMSAmazon Dynamo。 您不将查询发送到服务器并获取结果。 相反您取回了执行查询并在本地运行查询和所有后续查询所需的所有数据。 因此“联接”非常便宜您可以做很多其他不可能的事情组合来自多个数据库和本地数据结构的数据在它们上运行任何代码…。 每个使用Datomic即“对等”的应用程序都将根据其独特的需求和使用模式将所需的数据与自身紧密联系在一起。 所有写操作都通过一个称为Transactor的组件进行该组件实质上对写进行序列化 从而确保ACID 。 听起来可能是一个瓶颈但考虑到设计和典型的应用需求它并不是最实用的[1] 。 据报道Datomic可以处理世界上所有信用卡的所有交易。在Kurt Zimmer的Relevance Podcast中收听Room Key的大量写入操作Podcast Episode 033 。 Datomic的工作原理与版本控制系统如Git非常相似。 它永远不会覆盖数据也没有更新。 您只需将数据标记为无效然后添加新数据即可生成新版本的数据库请考虑git hash / svn修订号。 然后您可以查询数据库的最新状态或特定版本的状态。 当然无论何时向数据库添加事实都不会复制整个数据库。Datomic既聪明又高效。 它不是单个的整体服务器存储事务处理程序和对等点在物理上是分开的。 是什么使这成为可能 网络访问速度快于磁盘访问可以通过网络获取所有数据 大量内存可以根据其实际需求在每个对等体上存储大量的子集 存储量巨大且价格便宜我们可以轻松存储历史数据 具有现代FP语言中使用的高效不变“持久”数据结构的经验廉价地创建新的“数据库值” Datomic的独特价值主张和能力 现在我们已经了解并希望了解Datomic的独特设计。 但是它给我们带来了什么与其他数据库有什么区别 该体系结构以及其他一些设计决策提供了以下关键特征 可编程性–数据架构查询输入/输出事务元数据都是对等点上完全可用的基本数据结构因此可以以以前无法想象的强大方式进行组合和处理 持久性/问责制-您永远不会丢失历史记录可以使用有关谁/为什么等的元数据来注释事务支持查找事物的状态事物的变化方式进行假设分析 弹性可伸缩性–由于许多负载已被推到对等端 灵活性–无需严格的架构易于根据每个对等方的独特需求进行导航合并和缓存数据并通过数据功能进行扩展 结束语 Datomic具有与关系数据库尤其是ACID相似的目标并且可以在类似的用例中使用。 从性能角度来看如果写入比读取更重要或者您确实需要每秒连续写入大量数据或者您的行数超过数十亿那么您可能会更喜欢另一种解决方案。 得益于针对重负载安装的设计和建议的体系结构即在存储器前面安装了memcached后端的性能并不重要因为对等方拥有本地所需的数据或从memcached获取数据因此应该根据使用相关的特征选择更多。 摘要 Datomic的设计–在本地获取数据和运行查询的同级单个写入协调器事务处理程序基于现有数据库/存储工具并保留所有历史记录的方法对我来说似乎很奇怪可能对我来说效率很低直到我意识到传统数据库是围绕不再存在的约束设计的。 Datomic现在对我来说很有意义并且似乎是一种具有令人着迷的功能和巨大潜力的工具。 希望您现在也能看到。 我遗漏了一些有趣的主题例如可以在Datomic中存储哪些数据结构以及使用的数据模型和查询模型。 要了解有关Datomic的更多信息请访问5岁 儿童Datomic和Datomic的主页 。 奖励链接 Datomic中的乐观和悲观锁定的数据功能 论坛答案 HighScalability.comVoltDB消除了六个SQL城市神话并在过程中提供了Internet规模的OLTP – VoltDB的体系结构描述与Datomic有一些共同点单线程写入作为事务单位的“存储过程”等 VoltDB – Mike Stonebraker令人难以置信的可伸缩性SQLACID数据库它也打破了70年代的约束并利用了巨大的RAM单线程访问等功能。 [1] HarizopoulosS.AbadiDJMaddenS.StonebrakerM.2008年6月。 OLTP穿过窥视镜以及我们在那里发现的东西 。 在2008年ACM SIGMOD国际数据管理会议论文集 第981-992页中。 ACM。 –本文表明传统的RDBMS在锁定和闩锁上花费了将近30的时间这可以通过单线程访问消除VoltDB也可以这样做。 另请参见VoltDB白皮书 。 参考 The Holy Java博客上的JCG合作伙伴 Jakub Holy 的Datomic革命性的非NoSQL数据库的意义 。 翻译自: https://www.javacodegeeks.com/2013/06/making-sense-out-of-datomic-the-revolutionary-non-nosql-database.html