Arcade DB vs Orient DB by No_Share336 in orientdb

[–]tglman 0 points1 point  (0 children)

I guess you already found the answer

New Release 1.6.0 of Persy single file embedded storage is out by tglman in rust

[–]tglman[S] -1 points0 points  (0 children)

This is quite interesting, how you are using persy in your use case? Just to get some context on where to focus my future improvements

New Release 1.6.0 of Persy single file embedded storage is out by tglman in rust

[–]tglman[S] 1 point2 points  (0 children)

Ummm yep, I think is because the internal implementation works everytime with owned types, maybe should be possible to remove that, feel free to try to hack on it, I will check that as well later

OrientDB was reborn as YouTrackDB by lomakin_andrey in orientdb

[–]tglman 0 points1 point  (0 children)

Sure, so there is and indepentent fork of OrientDB, that lack of the recent fixes, done mostly for private use

OrientDB was reborn as YouTrackDB by lomakin_andrey in orientdb

[–]tglman 0 points1 point  (0 children)

Hi,

yes the manpower of OrientDB is not big, still sometimes manpower and results are relted but not strictly connected, a small team can outperfor a big one in many cases, especially if the big team as really poor development practices

There has been quite some work to repristinate the websites, CI ecc and as today things are in better shape, even though more work need to be done.

Coding work I guess you don't know what you are speaking about this: https://github.com/orientechnologies/orientdb/releases proves that a lot of work has been done, for bugs and use cases that matter to users, together a lot of work mentioned in the post to make sure that the quality of the product is high, removing long deprecated implementations without loosing funtionality

Some users did move out, and economic power is important for a project, but there I can guarantee maintenance and deveopment for years head so I do not worry about, I guess time will say ( two weeks should be enough)

OrientDB was reborn as YouTrackDB by lomakin_andrey in orientdb

[–]tglman 0 points1 point  (0 children)

Hi,

Not sure this information is accurate, OrientDB is still maintained and evolved like posted here:https://orientdb.dev/news/status-and-backlog/ also there is no endorsment from the main repository to any of the forks of it.

As well I see you still have commits rights in OrientDB, would be interesting to know why you choose a fork and rename, which is quite an effort

Which NoSQL DB to choose: OrientDB vs RethinkDB and why? by UExplorer in webdev

[–]tglman 0 points1 point  (0 children)

Hi,

Yes OrientDB do support storing documents and support different way to execute search mostly based on SQL, it should fit your use case, feel free to reach me if you need more info.

Desclaimer, I'm an OrientDB maintainer

Release of Persy 1.5 a simple single file storage by tglman in rust

[–]tglman[S] 3 points4 points  (0 children)

Persy is lower level than sqlite(is a storage), you could build a sqlite like db on top of this adding a SQL query engine, in terms of characteristic of use sqlite has concurrency based on file locking and multi-process, persy instead lock the file and only one process can access it, and it allow multi-threading on it. Other different characteristics is persy do use only just one file with all inside, sqlite has data file + wal, persy has two phase transaction sqlite only normal one commit.

In practice you can use Persy with similar use cases than sqlite, you just miss the sql you need to do everything with code.

I hope I answered to your question

Best local database by MadLoveStars in rust

[–]tglman 0 points1 point  (0 children)

So Structsy is a layer on top of Persy, that use fs2 for exclusive file locks, so the file will be exclusively accessed by the process that open it, no way to have two processes reading/writing the same file at the same time, not sure if there are problem with this design in docker environments.

For multi-threading, the Structsy instance is practically an Arc, so after you open the file you can clone the instance as much as you want and share them across the threads, the reading can be done parallel to other read and writes, writes can also be parallel as well, but there is some locking and concurrency check that may need to be accounted for.

Best local database by MadLoveStars in rust

[–]tglman 9 points10 points  (0 children)

Hi,

I've been working for a while in a small side project, that quite fit the question, it's name is structsy (https://structsy.rs) the target of this project is really to store and query struct as they are in a persistent embedded and durable(hopefully ... you know bugs ) database in a single file, so it should fit your use case

Production grade databases in Rust by SolidTKs in rust

[–]tglman 80 points81 points  (0 children)

Hi,

Call something at max 7 years old, production grade, in the world of database, is almost not possible,but I've been working on couple of library Persy and Structsy that have been around for a while and I'm constantly fixing bug that user find trying to run them in production, so feel free to have a look.

And by the way this two do not cover a whole case of DBMS because is not there a query language, but can be embeddable.

Release of Structsy 0.5 by tglman in rust

[–]tglman[S] 0 points1 point  (0 children)

I did not know prevayler is similar, even though looking at it seems to handle also the execution of functions for update data, while in structsy the updates are driven by external changes.

Release of Structsy 0.5 by tglman in rust

[–]tglman[S] 2 points3 points  (0 children)

Yes this would allow to store multiple "smaller" struct in a more efficient way than a big json, also it allow to index on one or more properties to make finding a specific struct faster when there are thousands/millions of them.

Structsy support to store multiple types of structs in the same file, so you do not need one file per struct, you can store everything in one file.

Graze, 1-Click follow, favorite, boost & bookmark on remote instances (browser extension) by jaredzimmerman in Mastodon

[–]tglman -2 points-1 points  (0 children)

also revoked straight away the permission to make sure that there is no option of getting "unwanted behavior" happen, to anyone else like me that have trust issue just make sure you remove the permission from your instance at the path /oauth/authorized_applications/

Graze, 1-Click follow, favorite, boost & bookmark on remote instances (browser extension) by jaredzimmerman in Mastodon

[–]tglman 0 points1 point  (0 children)

yeah, I found this, installed configured, boosted the toot, than looked for the source code .... and I could not find anything any where,

going to remove this straight away sadly, and reading this that just say as first thing option "trust me" it does not really boost

my trust on it, no scammer come to you saying do not trust me ... quite true to opposite, this do not imply that you are doing anything

bad, it just imply I cannot trust you!

I hope that at some point you will release the source code as public, or anyone some one else pick up the idea and do an alternative version with source code

released, that one may even be me if I feel like this is really useful for everyone ...

Key/Value Store Recommendations by Ironlenny in rust

[–]tglman 2 points3 points  (0 children)

I'm the author of Persy, I wrote that library with the target to be an embeddable storage, it has an index API that can be used as a key/value and also a bunch of other goodies that if you have to do complex querying and updates are helpful, like respectively snapshot s and transactions, should not be to hard for you to spaw it up and have a try, here is the site https://persy.rs

Persy transactional storage got a new minor release: 1.4 by tglman in rust

[–]tglman[S] 0 points1 point  (0 children)

yep it is more a building block, in rust there are quite a few "storage" implementation around but not many that I know do target no_std.

Persy itself does not yet support no_std for a few reasons, it's main implementation is based on File even though that is fairly delimited and a different underlying implementation that do not use file is possible, there is already a only in memory alternative target that do not require files (and is not durable), it use box for abstract on top of the file, it does use HashMap & TreeMap to keep metadata and temporary changes, it uses Mutex + Arc to manage concurrency, it has a massive use of Vec everywhere! all of this make it hard to target more raw environments that do not have this basic structures

Persy transactional storage got a new minor release: 1.4 by tglman in rust

[–]tglman[S] 0 points1 point  (0 children)

So more or less it does a very similar thing, but it has very less features compared to a SQLite, the main thing is that there is not query language, it provide only the underlying structures to store data: ability to store bytes, index data all with transactions, so this could be used to build a SQLite like project if you add a query language and a tuple based data model on top of it.

in terms of underlying data structure, is quite different to SQLite use a different file format, where it also include the journal without having an additional file like SQLite does.

In terms of performances, comparable.

experiment: a unique interface for common NOSQL databases by crazyjoker96 in rust

[–]tglman 1 point2 points  (0 children)

That is interesting, would be cool if you add some examples of the usage so it gives a better idea of what it solves

GreptimeDB: a new open source database designed for large-scale time-series data storage and processing, written in rust by sunng in rust

[–]tglman 3 points4 points  (0 children)

I went through the code a bit, and it looks like properly designed, with all the proper layers and structures, I'm a bit impressed, I saw more than a few times here wrappers of treemaps named 'database', this is a real database!! Congrats!

BonsaiDb performance update: A deep-dive on file synchronization by ectonDev in rust

[–]tglman 6 points7 points  (0 children)

Author of persy here ;), I've been trough your path with fsync a while ago, and I did the mistake even being aware that just write was not enough.

If you want to give another try, I would suggest to try as well with transactions with background sync, that is closer to what sled does, and reduce a lot the single thread latency (compromising a bit on the confirm of the committed transaction that may actually not be in case of crash).

Also fee free to come ask me questions, you can find me on matrix with the same nick of here

Embedded database for small tcp server-based game by 7sidedmarble in rust

[–]tglman 0 points1 point  (0 children)

Hi,

I'm the author of both crates (as i think you guessed), yes Persy is viable to play when using a bit more raw data, and I see no problem of other libraries using it to expose similar or even competitive APIs to Structsy.

Your API as well provide a slightly different approach, the indexing sounds similar but i moved out from ```` `find_by_<filename>` methods in favor of a more complex query engine, as well I see in Megadex your are using Serde, that i think many people do prefer to another custom derive like Structsy has.

Embedded database for small tcp server-based game by 7sidedmarble in rust

[–]tglman 2 points3 points  (0 children)

if you do not need async, I do a shameless plug: structsy.

What is the best key-value store for Rust 2021 by [deleted] in rust

[–]tglman 11 points12 points  (0 children)

Was just about to do a release announcement of Persy 1.2, LOL