tiger

NoSQL 数据库
授权协议 MIT
开发语言 ErLang
所属分类 数据库相关、 NoSQL数据库
软件类型 开源软件
地区 国产
投 递 者 宗政坚白
操作系统 Linux
开源组织
适用人群 未知
 软件概览

erlang开发的开源高可靠性nosql数据库tiger介绍

可靠性:

    写:对于n=2f+1 机器集群,在f台机器宕机的情况下可写

    读:只要是没有宕机的机器都是可读的

一致性:

    强一致性

扩展性:

    读的能力可以线性扩展 

功能:

   目前实现了key/value的get set 和delete功能:

   基于memcached协议和leveldb的持久数据库

   基于redis协议和redis存储引擎的内存数据库,宕机后数据重放到内存

 

性能:

     单机跑3个实例:

     双核,Pentium(R) Dual-Core  CPU      E6600  @ 3.06GHz

     centos 5.6 erlang R15b 2G 内存

    基于memcached协议的接口:

     set接口:

     91.49% <= 12 milliseconds,5387.93 requests per second

     get 接口:

     100.00% <= 13 milliseconds 18177.54 requests per second
     基于redis协议的接口:

     set接口:

     100.00% <= 60 milliseconds 3954.13 requests per second

      get 接口: 
     13477.09 requests per second

 

     测试程序使用:mc-benchmark,redis-benchmark,因为3个实例在一个机器上,所以写的性能影响比较大,    部署的时候建议分开到不同物理机部署。

 

主要技术:

  erlang:用于socket和通讯层

   Zab(Zookeeper  Atomic Broadcast):实现消息的原子广播

  存储引擎:leveldb,redis存储引擎

 

 

架构实现:

zab_engine介绍:

将zab协议实现为erlang的api,如果使用erlang开发项目,可以嵌入zab_engine,实现多master的架构变得非常简单

 

 

引擎实现功能:

1:2阶段提交

2:恢复

   a.follow恢复

   b.leader恢复

   c.在线加入和恢复

架构:



 

使用说明:

1.实现gen_zab_server 回调函数

2.对于须同步数据,实现handle_commit

3.对于只读数据,实现handle_call

  • 这里简单介绍目前商业市场上出现的宣称是“第三代”图数据库产品,能支持OLAP和OLTP的场景。这个厂商提出了一个新的名词叫NPG(Native Parallel Graph)原生并行图(感觉广告软文在创造新词汇...o(╯□╰)o)。 因为TigerGraph不是开源的,因此我们可以从官宣的资料中了解了解它的核心设计。蓝色部分使个人的一点思考。 A Native Distributed Graph

 相关资料
  • 表元数据 下面这些方法用于获取表信息: 列出数据库的所有表 $this->db->list_tables(); 该方法返回一个包含你当前连接的数据库的所有表名称的数组。例如: $tables = $this->db->list_tables(); foreach ($tables as $table) { echo $table; } 检测表是否存在 $this->db->table_

  • 我的应用程序有两个数据源。第一个数据源使用JdbcTemplate访问Postgre。第二个数据源使用Spring数据JPA访问CockroachDb。 所以我为这个数据源创建了两种配置。 除了具有空间数据的对象之外,坚持使用这两个数据源工作正常。当我试图保存空间数据到CockroachDb,我得到一个错误: Hibernate:选择geoobject0_. id为id1_2_0_,geoobje

  • 6.9.3 Database ItemWriters 虽然文本文件和XML都有自己特定的 ItemWriter, 但数据库和他们并不一样。这是因为事务提供了所需的全部功能。 对于文件来说 ItemWriters 是必要的, 因为如果需要事务特性,他们必须充当这种角色, 跟踪输出的 item,并在适当的时间 flushing/clearing。使用数据库时不需要这个功能,因为写已经包含在事务之中。

  • SQLAlchemy 1.4 / 2.0 Tutorial 此页是 SQLAlchemy 1.4/2.0教程 . 上一页: 处理事务和DBAPI |下一步: |next| 使用数据库元数据 随着引擎和SQL执行的停止,我们准备开始一些炼金术。SQLAlchemy Core和ORM的核心元素是SQL表达式语言,它允许流畅、可组合地构造SQL查询。这些查询的基础是表示数据库概念(如表和列)的Pytho

  • 本文向大家介绍Android 将数据插入数据库,包括了Android 将数据插入数据库的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 我试图从Firebase数据库中读取数据,我已经到处阅读和查找,但我已经走到了死胡同。 这就是我所做的一切。 依赖项: 实现'com.google.firebase: Firebase存储: 9.2.1' 实现'com。谷歌。firebase:firebase数据库:9.2。1' 实现'com。谷歌。firebase:firebase授权:9.2。1' 实现'com。谷歌。火基:火基核心:9.2。

  • 本文向大家介绍node.js从数据库获取数据,包括了node.js从数据库获取数据的使用技巧和注意事项,需要的朋友参考一下 本文需要用node.js做一个从Sqlserver获取数据并显示到页面上的小功能,下面就为大家分享: app.js: 接下来就直接在页面中使用get方式请求即可,当然post方式也是类似原理。 还有我发现textarea控件在改变其text和html属性的时候,value还保

  • 我正在尝试将mysql数据库导入新版本的xampp(v7.1.8)。按下导入按钮后,我收到数百条此错误消息: 请注意.\vendor\phpmyadmin\sql parser\src\UtfString.php#128未初始化字符串偏移量:516 回溯 .\vendor\phpmyadmin\sql parser\src\Lexer.php\823:phpmyadmin\SqlParser\Ut