美文网首页
内存数据库 网络

内存数据库 网络

作者: 玲珑塔上玲珑人 | 来源:发表于2020-06-29 10:42 被阅读0次
数据库结构.png

数据库访问

通过API访问数据库:直接访问,ODBC,JDBC
ODBC
访问DBMS的标准API,是为了把数据库与系统分离开,所有主要关系型数据库都有ODBC的实现。
ODBC基于设备驱动模型,把标准命令集转换为DBMS特定的调用。
JDBC
可以看做用java写的ODBC(ODBC用C写的)
JDBC使用说明

数据库网络协议

所有主要的DBMS都是在TCP/IP协议上实现的

客户端-服务器工作流程:

  1. 客户端连上DBMS,开始身份验证(可能通过SSL握手实现)
  2. 客户端发送查询
  3. DBMS执行查询,然后序列化结果发给客户端

当前新的系统都用的是开源DBMS连接协议。

协议设计需要考虑的问题

行/列分布

ODBC/JDBC天生支持行分布
服务器一个一个的把元组打包,客户端再一个一个反序列化得到元组
然而现代的数据分析工具都是在列或矩阵上工作的。
一种解决方式是以向量的方式发送数据

压缩

用原始的通用压缩方法进行压缩
可以用Columnar-Specific Encoding有更高的压缩率对于网络较慢的情况是非常有效的。

数据的序列化

实现
1.二进制编码:客户端进行字节存储次序的转换;序列化格式与DBMS二进制格式越接近,序列化开销越低;可以用自己的格式也可以用已存在的库ProtoBuffers, Thrift, FlatBuffers

  1. 文本编码:把所有的二进制值都转换成字符串,不用考虑字节存储次序了endian

文本编码的处理:

  1. 空标志用'\0'表示字符串的结束以便客户端找到字符串末尾
  2. 长度:在开始加一个字符串的长度
  3. 定长:都按属性的maxsize给字符串分配长度

复制协议

实现上

  1. Master-Replica:所有更新都写到指定主体中;主体传播更新到副本不用院子提交协议;只读事务可以访问副本;如果主体down了,选举一个新的主体
  2. Multi-Master:事务可以更新在任意副本中,副本必须用原子协议进行同步

当一个事务提交到一个复制数据库上时,DBMS会决定是不是要等这个事务的修改传播到其他节点之后再对应用做出应答。

传播等级:

  1. 同步(强一致性):
    主体会把更新发送给副本,然后等待他们应答已经收到更新(比如Logged)
  2. 异步(最终一致性)
    主体给客户端发送ack而不需要等待副本收到更新。

相关文章

  • 内存数据库 网络

    数据库访问 通过API访问数据库:直接访问,ODBC,JDBCODBC访问DBMS的标准API,是为了把数据库与系...

  • Linux 文件系统 I/O 详解

    I/O 指的是相对内存而言的 input 和 output。从文件、数据库、网络向内存中写入数据叫做 input;...

  • Android随笔之Realm

    在Android中数据的存储无非就这么几种,数据库、sharedpreference、文件、内存、网络、内容...

  • Python I/O 操作(一)

    一、I/O 概念 I/O 指的是相对内存而言的 input 和 output从文件、数据库、网络向内存中写入数据叫...

  • 更多

    内存管理 多线程开发 数据库 网络优化 动画 动态化 TCP http网络协议 模块设计 需求分析 性能调优 常用...

  • redis基础

    简介: C语言编写、支持网络、可基于内存亦可持久化的日志型、key-value内存数据库,读写速度快, value...

  • (十七)大数据学习之内存数据库

    内存数据库 一.内存数据库 1.为什么要把数据存入内存? 快 2.常见的内存数据库:(1)MemCached:看成...

  • SpringBoot Redis 缓存

    一、前言 Redis是内存数据库,什么是内存数据库,内存数据库是相对于硬盘数据库的。您的电脑配置是内存16G,硬盘...

  • 干货:实时数据库,内存数据库,关系型数据库比较

    内存数据库 内存数据库就是将数据放在内存中直接操作的数据库,它利用内存的读写速度比磁盘快、内存是随机访问而磁盘是顺...

  • redis(二)redis概述与jedis的使用

    redis是一个高性能的、支持网络、可基于内存的key-value存储机制的NoSQL数据库。基于内存的特性使得r...

网友评论

      本文标题:内存数据库 网络

      本文链接:https://www.haomeiwen.com/subject/ndjgfktx.html