Well, can PicoLisp replace expensive "fully ACID" Datomic and Closure?
You mentioned that PicoLisp would be missing ACID feature. That's why we've invented the "Event Sourcing Layer": https://de.wikipedia.org/wiki/Event_Sourcing Sorry, not available in other languages! What's that? This is kind of apppend-only structure, similar to PostgreSQL WAL Log, where all storage events (SQL inserts, updates) get registed, before being applied (means finally written into) the database. In a distributed database, you have to insert such a layer to get fully ACID compliance. Like in a distributed, decentralized (this is not the same!) blockchain, see Bitcoin database. Means you will have to implement the following: All database servers, now listen up! Yeah! (server 1) Yeah! (server 2) Yeah! ... Yeah! ... I would like to insert 42 at symbol "Noclue"! Can i do that? Yeah! Ready! Yeah! Ready! .. .. Ok, sending "Upsert 42 into Noclue" + Checksum + Cluster Increment Nummber Received! Received! Received! Received! Ok, now all insert into database and write to disk! Finished! Finished! Finished! Finished! Thank you all! (Close!) Means: Being fully ACID compliant, for PicoLisp distributed cluster, you need to implement that mechanism on your own. Certainly plenty of things can go wrong. And like in all good languages, those errors can be caught with 'catch': : (catch 'OK (println 1) (throw 'OK 999) (println 2)) 1 -> 999 : (catch '("No such file") (in "doesntExist" (foo))) -> "No such file" Adding such an "Event Sourcing Layer" costs you perhaps 50 lines of Picolisp code. Peanuts!! Dead simple to implement. And typically those append only structures get garbaged after some time ... Have fun! Am Mittwoch, 6. Mai 2020 schrieb <andr...@itship.ch>: > Hi Guido .. > Additionally I like to add that throwing picolisp database together with "distributed databases like datomic" into the same category is misleading, this is hardly the same bucket. PicoLisp database can certainly be used to build distributed systems, including a datomic-like DBMS, but picolisp database is certainly not a "plug & play" distributed database system in the current mainstream sense. There distributed DBMS essentially means individual servers are abstracted away for the programmer, be it 3 or 3000 servers doesn't make a difference for the programmer using the DBMS - of course this abstracting on top of networking (which is unreliable) comes with constraints (e.g. usually no ACID) and a ton of potential issues (some better, some often not so much mitigated by common distributed DBMS software). This doesn't apply to PicoLisp database, which offers strict ACID transactions and gives strong consistency guarantees even when "distributed" (following C+P of CAP, while "datomic" follows A+P). PicoLisp database allows to easily deploy read-replicas and remote databases can be easily integrated into an single instance (including into the indexing system), but it doesn't give you multi master mechanics out of the box without basically re-implementing datomic or a similar architecture on top of it. > > Your understanding of both distributed databases and PicoLisp (including the non-DB areas) seem rather superficial to me. > > And it does not fall under US restrictions, since PicoLisp is <MADE IN GERMANY> and does not contain any US libraries, that might fall under those US export laws. > > What makes you think that Germany will not introduce similar laws sooner or later? > > Germany already has the "Hacker-paragraph" which arguably criminalizes distribution of the 'ping' network tool. Germany's "hate-speech" law was copied by a number of repressive states, a perfect template. And currently politicians debate about forcing websites to hand over password hashes to the government. Granted these laws are probably not widely applied in practice - but worse - this way they degenerate into tools of arbitrariness, which stands in direct opposition to democratic rule of law. > > It's not so easy, > - beneroth > > On 05.05.20 21:40, Guido Stepken wrote: > > Interesting question, isn't it? Let's have a look into my findings! > > Anaconda is a well known, free Software Installer for Python and R packages, mostly used under Windows, right? > > And you think, that "free software" packages cannot be restricted by US ministry of trade or U.S. president, such as happened in Huawei Google case, right? Plain wrong: > > Quote from: https://docs.anaconda.com/anaconda-repository/2.23/admin/eula/ > > [quote] > Export regulations > > Any use or distribution of the Software Product is made under conditions that the user and/or distributor is in full compliance with all export and other governing laws of the United States of America, including full and ongoing compliance with the Export Administration Regulations (EAR) of the United States Department of Commerce. See www.commerce.gov/ and http://www.bis.doc.gov/index.php/regulations/export-administration-regulations-ear. Use or distribution of Continuum software products to any persons, entities or countries currently under US sanctions is strictly prohibited. Continuum has self-assessed that Anaconda Repository requires no license to for export to non-embargoed countries > > The United States currently has embargoes against several countries. The exportation, re-exportation, sale or supply, directly or indirectly, from the United States, or by a U.S. person wherever located, of any Continuum software to any of these countries is strictly prohibited without prior authorization by the United States Government. By accepting this Agreement, you represent to Continuum that you will comply with all applicable export regulations for Anaconda. > [/quote] > > Means: Export Anaconda or packages from Anaconda to Iran and you're going to Guantanamo! > > And i repeat: *****Stop using US Software Stacks!***** > > Picoslip has everything, yor IT could ever need! Integrated Distributed Database, Prolog like reasoning about stored data and even contains a Graph Database, though it's mentioned nowhere. > > But there is no real need to mention that, since Lisp in itself ("Code is data, data is code") not only has a "syntax tree" (kind of graph), but, in fact, you can model any graph you like with Lisp's (cons) constructs. > > And it does not fall under US restrictions, since PicoLisp is <MADE IN GERMANY> and does not contain any US libraries, that might fall under those US export laws. > > Have fun! >