MongoDB爱好者
垂直技术交流平台

牟天垒的博客 第2页

使用模式构建:扩展引用模式(The Extended Reference Pattern)

牟天垒评论(3)赞(0)

贯穿整个《使用模式构建》,我希望你已经了解到一件事,即模式是什么样子取决于数据的访问方式。如果我们有许多相似的字段,属性模式可能是一个很好的选择。为了适配一小部分数据的访问会极大地改变我们的应用程序吗?也许异常值模式是值得考虑的。还有一些模...

使用模式构建:子集模式(The Subset Pattern)

牟天垒评论(3)赞(0)

在多年前,第一代PC拥有高达256KB的RAM和两个5.25英寸的软盘驱动器。没有硬盘,因为在当时它们极为昂贵。这些限制导致在处理大量(对那时来说)数据时由于内存不足,必须在物理上交换软盘。如果当时有办法只把我经常使用的数据(如同整体数据的...

使用模式构建:计算模式(The Computed Pattern)

牟天垒评论(5)赞(1)

我们已经在使用模式构建系列研究了各种优化存储数据的方法。现在,我们从另一个角度来看看模式设计。通常,仅仅存储数据并使其可用还不够。当我们可以从数据中计算出值时,数据会变得有用的多。最新Amazon Alexa的总销售收入是多少?有多少观众看...

使用模式构建:异常值模式(The Outlier Pattern)

牟天垒评论(9)赞(1)

到目前为止,在《使用模式构建》系列中,我们已经研究了多态模式、属性模式和桶模式。其中,尽管文档的模式略有不同,但从应用程序和查询的角度来看,文档的结构基本上是一致的。然而,如果情况并非如此会怎么样?当有数据不属于“正常”模式时会发生什么?如...

可靠的因果保证

牟天垒评论(1)赞(1)

传统的数据库由于服务于单个节点,因此自然地为读写操作提供了顺序保证,这称为“因果一致性(causal consistency)”。分布式系统同样可以提供这些保证,但要做到这一点,就必须对所有节点上的相关事件进行协调和排序,并对某些操作完成的...

使用模式构建:桶模式(The Bucket Pattern)

牟天垒评论(12)赞(4)

在本期《使用模式构建》中,我们将介绍桶模式。这种模式在处理物联网(IOT)、实时分析或通用时间序列数据时特别有效。通过将数据放在一起,我们可以更容易地将数据组织成特定的组,提高发现历史趋势或提供未来预测的能力,同时还能对存储进行优化。 桶模...

使用模式构建:属性模式(The Attribute Pattern)

牟天垒评论(10)赞(1)

欢迎回到MongoDB模式设计系列。上一次我们研究了多态模式,它涵盖了集合中所有文档具有相似但不相同结构的情况。在本文中,我们将了解一下属性模式。属性模式特别适用于以下情况: 我们有一些大文档,它们有很多相似的字段,而这些字段的一个子集具有...

使用模式构建:多态模式(The Polymorphic Pattern)

牟天垒评论(11)赞(3)

当涉及MongoDB时,一个经常被问到的问题是“我如何在MongoDB中为我的应用程序构造模式(schema)?”老实说,这要看情况而定。你的应用程序读操作比写操作多吗?从数据库中读取时需要将哪些数据放在一起?有哪些性能因素需要考虑?文档有...

打破WiredTiger的Logjam(下篇):无等待解决方案

牟天垒评论(1)赞(0)

本文的上篇探讨了WiredTiger中WAL的原始算法,该算法用于合并写操作以达到最小化I/O的目的。它没有使用耗时的锁,而是分两个阶段使用CAS原子操作来实现。只要每个核运行的线程不太多,这个算法就可以非常好地工作。但当线程数超过该限制时...