「2014-2-6」TokuMX and MongoDB related materials collection
简介参考 TokuMX 和 MongoDB 各自的官方站点。

##
Tokutek 最重要的特点和 marketing word 是所谓 fractal tree indexing technology,相关链接:

1. 由于 per-node buffer 的引入所导致的 ACID 里的 Durability 问题应对方式(通过更合理的规划物理机器布局、增加单事务数据量等方式来分摊 fsync 开销;更「松弛」的持久化处理,即不要求每次 operation 都做持久化、而是「延迟容忍」的持久化机制)。
http://www.tokutek.com/2010/01/high-insertion-rates-into-a-tokudb-table-with-durable-transactions/
2. 微博上 fractal tree 相关的链接。
##
MongoDB 的一条融资新闻,觉得在 community 运作和开发模式(开源社区和公司运营相结合,所有的 issue 和 bug fix 都是可公开访问的,有很高的透明度)上,MongoDB 做的很棒。简单初步看了一下,记录在此,不一定准确和全面。
1. 数据建模的基本策略,embedded data & references 两种最基本的类型:前者直接在 document 里嵌入 sub-document 形成从属和绑定的关系,好处是能够以更少的读操作,从 collection 里获取数据,并且对原子写入支持更好(写操作的 atomicity 是建立在 document 基础上);后者通过 reference 引用其他 collection 里的 document,好处是能够降低 duplicate data fields(类似于用指针代替物理拷贝),对存储空间更友好,坏处则是对业务逻辑上的某个 record 做操作可能意味着对多个 documents 做操作。
基本介绍,如何建模 relationship between documents(有别于简单 key-value 数据库的地方),设计数据模型时必要的一些考量(such as lifecycle management, indexing, atomicity, horizontal scalability, and document growth)。
2. 同 SQL 常见术语和概念的对照表。如,行和列分别对应于 BSON document 和 field,主键(primary key)术语一致但稍有不同(MongoDB 里制定了 BSON ObjectID _id 做为主键);值得注意的是,table join 的对应项是 embedded documents and linking,这挺有趣的,基于目前极其有限的了解,我的猜测是,MongoDB 尽管是 schema free No-SQL 数据库,但它可能对早期的 data modeling 提出了更高的要求。
3. FAQ 里对于「Do MongoDB databases have schemas?」的回答,最有价值的一点,可能就在于「simplifies and facilitates iterative software development with MongoDB」。
4. 关于 MongoDB 的典型应用场景和是否支持事务的 FAQ。
MongoDB has a general-purpose design, making it appropriate for a large number of use cases. Examples include content management systems, mobile applications, gaming, e-commerce, analytics, archiving, and logging.
Do NOT use MongoDB for systems that require SQL, joins, and multi-object transactions.
5. 数据持久性方面的问题《Are writes written to disk immediately, or lazily?》。
Writes are physically written to the journal within 100 milliseconds, by default. At that point, the write is _durable_ in the sense that after a pull-plug-from-wall event, the data will still be recoverable after a hard restart.
Jounaling mechanism - http://docs.mongodb.org/manual/core/journaling/。注意 private view / shared view / data files 三者在不同操作下的 memory view 映射。
##
其他相关的链接:
1. 《main rules of efficient SQL》,其中也提到了 Oracle 数据库 table join 的三种机制如 hash join 等等。
2. 《What do Clustered and Non clustered index actually mean?》
Regarding multiple indexes. You can have only one clustered index per table because this defines how the data is physically arranged. If you wish an analogy, imagine a big room with many tables in it. You can either put these tables to form several rows or pull them all together to form a big conference table, but not both ways at the same time. A table can have other indexes, they will then point to the entries in the clustered index which in its turn will finally say where to find the actual data.
3. 《How does database indexing work?》,以及一个相关的问题,数据库里的 cardinality 含义。
Also given the nature of a binary search, the cardinality or uniqueness of the data is important. Indexing on a field with a cardinality of 2 would split the data in half, whereas a cardinality of 1,000 would return approximately 1,000 records. With such a low cardinality the effectiveness is reduced to a linear sort, and the query optimizer will avoid using the index if the cardinality is less than 30% of the record number, effectively making the index a waste of space.
4. 《关于 MongoDB 你需要知道的几件事》《千万别用 MongoDB ?真的吗?》。
「2014-2-6」TokuMX and MongoDB related materials collection的更多相关文章
- 企业运营对 DevOps 的「傲慢与偏见」
摘要:出于各种原因,并非所有人都信任 DevOps .有些人觉得 DevOps 只不过给开发者改善产品提供了一个途径而已,还有的人觉得 DevOps 是一堆悦耳的空头支票,甚至有人认为 DevOps ...
- [转帖]「知乎知识库」— 5G
「知乎知识库」— 5G 甜草莓 https://zhuanlan.zhihu.com/p/55998832 通信 话题的优秀回答者 已关注 881 人赞同了该文章 谢 知识库 邀请~本文章是几个答 ...
- 「CSP-S模拟赛」2019第四场
「CSP-S模拟赛」2019第四场 T1 「JOI 2014 Final」JOI 徽章 题目 考场思考(正解) T2 「JOI 2015 Final」分蛋糕 2 题目 考场思考(正解) T3 「CQO ...
- 面试都在问的「微服务」「RPC」「服务治理」「下一代微服务」一文带你彻底搞懂!
❝ 文章每周持续更新,各位的「三连」是对我最大的肯定.可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇) ❞ 单体式应用程序 与微服务相对的另一个概念是传统的「单体式应用程 ...
- 我叫Mongo,收了「查询基础篇」,值得你拥有
这是mongo第二篇「查询基础篇」,后续会连续更新6篇 mongodb的文章总结上会有一系列的文章,顺序是先学会怎么用,在学会怎么用好,戒急戒躁,循序渐进,跟着我一起来探索交流. 通过上一篇基础篇的介 ...
- 我叫Mongo,干了「查询终结篇」,值得您拥有
这是mongo第三篇"查终结篇",后续会连续更新5篇 mongodb的文章总结上会有一系列的文章,顺序是先学会怎么用,在学会怎么用好,戒急戒躁,循序渐进,跟着我一起来探索交流. 通 ...
- 「编程羽录」上线,程序员必备的这些技能你能get到嘛?
大家好,我是小羽. 好久不见,给大家带来个好消息,小羽的全新专题「编程羽录」系列正式上新,主要是介绍一些关于面试题和经验总结的文章. 会为大家提供一些技术栈之外,程序员还需要的其他方面硬核知识,做到全 ...
- 对于前端,「微信小程序」其实不美好
微信小程序开放公测了,9月底我曾经写过一篇 「微信小程序」来了,其中最后一句:"谢天谢地,我居然还是个前端". 这种火爆的新事物总是令人激动,感谢这个时代. 但是,当我真作为开发者 ...
- macOS安装「oh my zsh」
目前常用的 Linux 系统和 OS X 系统的默认 Shell 都是 bash,但是真正强大的 Shell 是深藏不露的 zsh, 这货绝对是马车中的跑车,跑车中的飞行车,史称『终极 Shell』, ...
随机推荐
- tinyxml学习2
在TinyXML中,根据XML的各种元素来定义了一些类: TiXmlBase:整个TinyXML模型的基类. TiXmlAttribute:对应于XML中的元素的属性. TiXmlNode:对应于DO ...
- 向mysql数据库中插入大二进制文件和大文本
@Test public void run() throws ClassNotFoundException, SQLException, FileNotFou ...
- CSS从大图片上截取小图标的操作
注:图片名称(tabicons.png)每个小图标width:18px;height:18px从左上角坐标为(-0px;-0px;); 例如第一个对号的坐标为(-0px;-0px;)第二个加号的图标为 ...
- Spark Streaming源码解读之Job动态生成和深度思考
本期内容 : Spark Streaming Job生成深度思考 Spark Streaming Job生成源码解析 Spark Core中的Job就是一个运行的作业,就是具体做的某一件事,这里的JO ...
- 【转】提高VR渲染速度的关键
提高VR渲染速度的关键,这个教程比以往的教程都要重要很多,如果你是刚刚步入学习和上升阶段那么这将是你必须要看的东西,他会让你迅速提升技能达到比你死看书本好很多的效果,不多说上教程 VR的基本渲染方 ...
- Python之路【第十九篇】:爬虫
Python之路[第十九篇]:爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...
- [转]分享一个用Telnet代替JLinkRTTClient的办法,实现同时显示和记录
原帖子http://www.amobbs.com/thread-5614514-1-1.html Jlink 驱动 升级到4.96后,提供了一个 JLinkRTTViewer,确实方便了很多,但似乎不 ...
- Maven-3.2.2安装配置
(1)安装JDK,这里是1.7.0_51 (2)Maven-3.2.2下载地址:http://mirrors.cnnic.cn/apache/maven/maven-3/3.2.2/binaries/ ...
- 获取DataGridView中的的选中行
1. 获取DataGridView中的的选中行:http://blog.csdn.net/yiqijinbu/article/details/7734593 2.winform datagridvie ...
- Facebook内部分享:26个高效工作的小技巧
春节假期马上就要结束了,该收收心进入新一年的工作节奏了~分享 26 个高效工作的小技巧,希望对大家有所帮助~(我发现自己只有最后一条执行得很好,并且堪称完美!) 1.时间常有,时间优先. 2.时间总会 ...