15 -【cmu15-721】【高级数据库系统】【卡内基梅隆大学】【中英字幕】

1. 计算机数据库系统通常使用特定的网络协议进行客户端和服务器之间的通信。
2. ODBC和JDBC是常用的用于与数据库系统交互的API。
3. ODBC是Microsoft在上世纪90年代提出的,而JDBC是Sun Microsystems在Java出现后提出的。
4. 数据库系统通常会提供自己的网络协议,用于客户端和服务器之间的通信。
5. Postgres数据库中只有20%的数据库使用SSL或TLS加密,这一点令人惊讶。
6. 数据系统执行查询并将结果序列化返回给客户端时,会消耗大部分时间。
7. 不同的数据系统有自己的网络协议,不兼容。
8. 许多新系统选择使用现有的MySQL协议或Postgres协议,而不是实现自己的网络协议。
9. 在网络传输中,可以使用压缩和特定编码来提高性能。
10. 数据库系统可以使用不同的编码方式来处理字符串、长度编码、空值和整数等数据。
11. 一种方法是使用二进制编码,将数据编码为二进制格式发送给客户端。
12. 另一种方法是使用现有的库,如Google Protocol Buffers、Facebook Thrift和Flat Buffers,来定义数据的格式,并将其转换为相应的代码。
13. 文本编码是将数据以字符串的形式发送,客户端负责将其转换回二进制数据。
14. Apache Arrow是一种用于网络传输的标准列格式,可以实现零拷贝操作,提高数据传输效率。
15. Apache Arrow是一个围绕数据格式构建的项目,其中包括其他子项目,如ADBC和Arrow Flight。
16. ADBC是一种用于与数据系统通信的API,可以以Arrow格式获取和处理数据。
17. Data Fusion是一个围绕Arrow格式构建的执行引擎项目。
18. 一些系统,如Snowflake,可以使用Arrow格式导入和导出数据。
19. I/O U-ring是一个新的系统,可以实现零拷贝异步I/O,可以提高数据系统的性能。
20. 用户旁路是一种替代内核旁路的方法,通过将数据库逻辑嵌入内核中,让内核运行所需的数据库代码。
21. EPVF是一种允许在内核中运行用户代码的技术,通过编写EPVF程序并进行验证和编译,然后在运行时使用LLVM进行即时编译。
22. 用户旁路适用于那些不需要长时间保留数据的逻辑,例如快速查看数据并进行决策的场景。
23. 用户旁路可以在Postgres代理、B+树遍历等场景中提高性能。
24. 长期愿景是构建一个只运行数据库系统的微内核,以避免操作系统的开销。