文档章节

SQLite Is Serverless 是无服务器的

火眼金睛容嬷嬷
 火眼金睛容嬷嬷
发布于 01/27 08:36
字数 1589
阅读 215
收藏 0
按:虽然我觉得这篇文章有点蹭热度,但,所说的内容确实是在澄清一些东西。很多新的概念其实缺少背后的语境,新的造词都太随意了,以至于有混淆视听的嫌疑。
SQLite Is Serverless 是无服务器的

1. SQLite Is Serverless 是无服务器的

Most SQL database engines are implemented as a separate server process. Programs that want to access the database communicate with the server using some kind of interprocess communication (typically TCP/IP) to send requests to the server and to receive back results. SQLite does not work this way. With SQLite, the process that wants to access the database reads and writes directly from the database files on disk. There is no intermediary server process.

大多数 SQL 数据库引擎是作为单独的服务器进程实现的。 希望访问数据库的程序使用某种进程间通信(通常是 tcp / ip)与服务器通信,以向服务器发送请求并接收回来的结果。 不是这样工作的。 使用 SQLite,想要访问数据库的进程直接从磁盘上的数据库文件读写数据库。 没有中间服务器进程。

There are advantages and disadvantages to being serverless. The main advantage is that there is no separate server process to install, setup, configure, initialize, manage, and troubleshoot. This is one reason why SQLite is a "zero-configuration" database engine. Programs that use SQLite require no administrative support for setting up the database engine before they are run. Any program that is able to access the disk is able to use an SQLite database.

无服务器有优点也有缺点。 其主要优点是没有单独的服务器进程来安装、设置、配置、初始化、管理和故障排除。 这就是 SQLite 是一个“零配置”数据库引擎的原因之一。 使用 SQLite 的程序在运行之前不需要设置数据库引擎的管理支持。 任何能够访问磁盘的程序都能够使用 SQLite 数据库。

On the other hand, a database engine that uses a server can provide better protection from bugs in the client application - stray pointers in a client cannot corrupt memory on the server. And because a server is a single persistent process, it is able to control database access with more precision, allowing for finer-grained locking and better concurrency.

另一方面,使用服务器的数据库引擎可以更好地保护客户机应用程序中的 bug ——客户机中的寄生指针不会损坏服务器上的内存。 由于服务器是一个单一的持久进程,因此它能够以更高的精度控制数据库访问,从而实现更细粒度的锁定和更好的并发性。

Most SQL database engines are client/server based. Of those that are serverless, SQLite is the only one known to this author that allows multiple applications to access the same database at the same time.

大多数 SQL 数据库引擎是基于客户机 / 服务器的。 在那些无服务器的应用程序中,SQLite 是本文作者所知的唯一一个允许多个应用程序同时访问同一个数据库的应用程序。

2. Classic Serverless Vs. Neo-Serverless 经典的无服务器 vs 新服务器

(This section was added on 2018-04-02)

(此部分是在2018-04-02年度增加的)

Recently, folks have begun to use the word "serverless" to mean something subtly different from its intended meaning in this document. Here are two possible definitions of "serverless":

最近,人们开始使用“无服务器(serverless)”这个词来表示一些与本文意图稍有不同的东西。 以下是“无服务器”的两种可能定义:

  1. Classic Serverless: The database engine runs within the same process, thread, and address space as the application. There is no message passing or network activity.

    经典无服务器: 数据库引擎与应用程序在相同的进程、线程和地址空间中运行。 没有消息传递或网络活动。

  2. Neo-Serverless: The database engine runs in a separate namespace from the application, probably on a separate machine, but the database is provided as a turn-key service by the hosting provider, requires no management or administration by the application owners, and is so easy to use that the developers can think of the database as being serverless even if it really does use a server under the covers.

    Neo-serverless: 数据库引擎在与应用程序分离的名称空间中运行,可能在单独的机器上运行,但数据库作为交钥匙服务由宿主服务提供商提供,不需要应用程序所有者进行管理或管理,而且使用非常简单,以至于开发人员可以认为数据库是无服务器的,即使它确实在掩护下使用了服务器。

SQLite is an example of a classic serverless database engine. With SQLite, there are no other processes, threads, machines, or other mechanisms (apart from host computer OS and filesystem) to help provide database services or implementation. There really is no server.

Sqlite 是一个典型的无服务器数据库引擎的例子。 使用 SQLite,没有其他进程、线程、机器或其他机制(除了主机计算机 OS 和文件系统)来帮助提供数据库服务或实现。 实际上没有服务器。

Microsoft Azure Cosmo DB and Amazon S3 are examples of a neo-serverless databases. These database are implemented by server processes running separately in the cloud. But the servers are maintained and administered by the ISP, not by the application developer. Application developers just use the service. Developers do not have to provision, configure, or manage database server instances, as all of that work is handled automatically by the service provider. Database servers do in fact exist, they are just hidden from the developers.

Microsoft Azure Cosmo DB 和 amazons3是新无服务数据库的例子。 这些数据库是由在云中单独运行的服务器进程实现的。 但是,服务器是由 ISP 而不是应用程序开发人员维护和管理的。 应用程序开发人员只是使用该服务。 开发人员不必提供、配置或管理数据库服务器实例,因为所有这些工作都由服务提供者自动处理。 数据库服务器确实存在,只是对开发人员隐藏了。

It is important to understand these two different definitions for "serverless". When a database claims to be "serverless", be sure to discern whether they mean "classic serverless" or "neo-serverless".

理解“无服务器”的这两个不同定义非常重要。 当一个数据库声称是“无服务器”时,一定要辨别它们是指“典型的无服务器”还是“新服务器”。

本文转载自:https://www.sqlite.org/serverless.html

火眼金睛容嬷嬷

火眼金睛容嬷嬷

粉丝 62
博文 59
码字总数 42959
作品 0
海淀
私信 提问
加载中

评论(0)

SQLite3.8.4.2在Windows平台下的编译和使用

SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database......

Micooz
2014/03/30
2.9K
0
轻巧的本地数据库 - sqlite

  前言   SQLite,是一款轻型的数据库,它的设计目标是嵌入式的,而且现在很多嵌入式产品中使用它,它占资源非常低,在嵌入设备中,可能只需要几百K的内存就够了。它能够支持Windows/Lin...

linux运维菜
2018/11/01
0
0
【防衰老教程】-windows环境下安装SQLite

什么是 SQLite? SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置。...

Weijue
2018/05/09
190
0
嵌入式数据库 SQLite 3.23.1 发布

嵌入式数据库 SQLite 3.23.1 发布,包含大量更新。 SQLite 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的...

clouddyy
2018/04/11
1.2K
2
sqlite3 数据库命令操作

SQLite 数据库,是一个非常轻量级自包含(lightweight and self-contained)的DBMS,它可移植性好,很容易使用,很小,高效而且可靠。 SQLite嵌入到使用它的应用程序中,它们共用相同的进程空间...

长平狐
2013/01/06
87
0

没有更多内容

加载失败,请刷新页面

加载更多

REST API服务为验证失败返回的适当HTTP状态代码是什么?

每当我在基于Django / Piston的REST API应用程序中遇到验证失败时,我目前正在返回401 Unauthorized。 看过HTTP状态代码注册表后我不相信这是验证失败的合适代码,你们都推荐什么? 400错误请...

javail
26分钟前
76
0
《计算机程序的构造和解释》分享下载

书籍信息 书名:《计算机程序的构造和解释》 原作名:Structure and Interpretation of Computer Programs 作者: Harold Abelson / Gerald Jay Sussman / Julie Sussman 豆瓣评分:9.5分(22...

开始以后_
31分钟前
57
0
《Linux就该这么学》第六节课while循环语句,case测试语句,计划任务及用户文件的相关命令

《Linux就该这么学》 本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材,目前是国内最值得去读的Lin...

溪风之殇
40分钟前
60
0
有没有办法让非root进程绑定到Linux上的“特权”端口?

在我的开发盒上有这个限制是非常烦人的,因为除了我之外不会有任何用户。 我知道标准的解决方法 ,但它们都没有完全符合我的要求: authbind (Debian测试中的版本,1.0,仅支持IPv4) 使用i...

技术盛宴
41分钟前
55
0
Java程序员必须要了解的类Unsafe

前言 Java是一个安全的编程语言,它能最大程度的防止程序员犯一些低级的错误(大部分是和内存管理有关的)。但凡是不是绝对的,使用Unsafe程序员就可以操作内存,因此可能带来一个安全隐患。...

Onegoleya
41分钟前
52
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部