From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.devel Subject: Re: sqlite3 Date: Tue, 14 Dec 2021 09:57:51 +0100 Message-ID: <87lf0nr2b4.fsf@gnus.org> References: <87tufmjyai.fsf@gnus.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="26810"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Dec 14 09:59:30 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mx3ek-0006o8-Jz for ged-emacs-devel@m.gmane-mx.org; Tue, 14 Dec 2021 09:59:30 +0100 Original-Received: from localhost ([::1]:51946 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mx3ei-0006PR-Mt for ged-emacs-devel@m.gmane-mx.org; Tue, 14 Dec 2021 03:59:28 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:51486) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mx3dL-0005gt-AO for emacs-devel@gnu.org; Tue, 14 Dec 2021 03:58:04 -0500 Original-Received: from [2a01:4f9:2b:f0f::2] (port=56540 helo=quimby.gnus.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mx3dH-000886-Lx for emacs-devel@gnu.org; Tue, 14 Dec 2021 03:58:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:To:From:Sender:Reply-To:Cc:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=gHzE70TgRljrweUBidwXUlLMxfxRYQfL9/W3aLH2+Ac=; b=ncVWFnjDELlpQfn89t5xnrNsYS aAhLoh+yNe3mg/mjFqZtKunw7+1jJlXp6TdNWdzU9p9nvdmty1GAts/zbpYOfAEHnMcYe7jPCXY6M Owd0gSP+fmnYkcy7IlQiKjcojaaZwAAVi7drEyyKoxEn5feswwFrMO95ONQnd6dFxQ4s=; Original-Received: from [84.212.220.105] (helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mx3dC-0007Rc-Cq for emacs-devel@gnu.org; Tue, 14 Dec 2021 09:57:56 +0100 Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAD1BMVEVSR0YtKClqd4sZ Ghz///+otQIJAAAAAWJLR0QEj2jZUQAAAAd0SU1FB+UMDggdFTPQY+wAAAHBSURBVDjLXVOLkSsx CINNA/ZzA769BszQf28nCTbJPJLNbJAlvjafsGGw64aZ9at9ANg3YPJfRpf3I4AEuzf/gjxKgJqL hO34oUv+OZthN8/aeDPmLWBcG6DJOUAaHpekrsuHWYtITQAjbdvWboScMRrYOl+cFUsEFMiUzFb0 8WS2V1W6EGJlEpoRBaiuQD4EFpUyE40goBzhKgb8eVxSiKCyGBYPgIi7ANmYlBKQUcFB7xLkJaCW 8OPMFEGEoSUEXpySoiKhNZmTCfBqKAUkxWHOGq3NUJapjOwBFDfecXOyYkoNepklozBBdCceBlXC YoUvgXFpSUYVZXls/GYXWK1S3Bn3jtcHGINS+B7sxJNBMbpB5+de30B2jAy/Wd/mu1qI8/iOQKXk Ec2tOWlK69xbscQXYFX1cWN/898LKAHurBCDF5oH+6KGmaeGURosKbiwWn7tgfrBmQDte+Td2unq O3upGK5dKuiZuSpf89mnVno38QMEF3yubqL2tu3AsxrAMrz9GIr3XpHhM/+zeO77l1jW7joLP2Zb 3fgYGdzId7o8vho4itfjrSUtYA5Nj7dhzdFUXmQP8etaPYpYuD+iR3t6gv+1rwAAACV0RVh0ZGF0 ZTpjcmVhdGUAMjAyMS0xMi0xNFQwODoyOToyMSswMDowMEPY9e4AAAAldEVYdGRhdGU6bW9kaWZ5 ADIwMjEtMTItMTRUMDg6Mjk6MjErMDA6MDAyhU1SAAAAAElFTkSuQmCC X-Now-Playing: Hector Zazou's _Geographies_: "Des Cocotiers" In-Reply-To: <87tufmjyai.fsf@gnus.org> (Lars Ingebrigtsen's message of "Mon, 06 Dec 2021 02:51:33 +0100") X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a01:4f9:2b:f0f::2 (failed) Received-SPF: pass client-ip=2a01:4f9:2b:f0f::2; envelope-from=larsi@gnus.org; helo=quimby.gnus.org X-Spam_score_int: -35 X-Spam_score: -3.6 X-Spam_bar: --- X-Spam_report: (-3.6 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:281882 Archived-At: Lars Ingebrigtsen writes: > I think it'd be good to bring that into core, and then write a small > wrapper library (well, a trivial ORM) for the rest of Emacs to use, so > that we don't have to write SQL all over the place. That is: > > (setf (persistent-data :namespace "emoji" :key "favorites") emoji--favorites) > > I.e., what Emacs needs is a persistent key/value store, and this would > give us that. This is now implemented under the name of `multisession-value' (but not merged to the trunk yet; I'll probably do that later today, unless somebody comes up with a better name). As for the sqlite part of this: My initial benchmarking of this was wrong. I thought sqlite3 was going to be a real advantage for this thing, since I'd benchmarked excellent performance (more than 50K updates per second, for instance). But that's only when not committing after every transaction, which we want to do here, really. But it turns out that sqlite3 is actually slower for this particular use case than just writing the data to a file (i.e., using the file system as the database; one file per value). So multisession.el now offers two backends (`files' and `sqlite'), and defaults to `files'. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no