Comments (5)
Thank you for the hint! The only issue I see is concurrent requests and backups. If you use standard SQL technology, both is not an issue. How would you handle read/write requests from concurrent processes with an embedded store? Probably locking and only run a single instance? For example when the Web frontend is running and the user wants to index new photos on the command-line.
from photoprism.
Yes, depending on which key/value store, large online-backup runs could lock the table for writes - but it generally isn't a problem. Don't let the "key/value" store throw you. Boltdb / LevelDB are vary powerful and both take different approaches to table locking / concurrent use.
LevelDB is a LSM tree so better for loads >10,000 writes/sec, while Bolt uses a B+tree so is optimized for reads. Either of them could easily handle millions of images.
https://github.com/boltdb/bolt#comparison-with-other-databases
http://blevesearch.com/bleve-bench/ can index about 1MB of text/attributes a second and search about 120 queries a second (both only using a single-core)
from photoprism.
Nice, we'll give it a try :) Although I can imagine some users/admins would like to access their data in MySQL, e.g. from a CMS.
from photoprism.
We've recently switched to TiDB as our default database, see #60. Is this enough to implement our search or do we need something else like Bleve? While Bleve looks nice, it seems to be based on the unmaintained BoltDB.
- Does Bleve also properly support LevelDB?
- How to keep indices of TiDB and Bleve in sync without much effort?
- Does TiDB have more features for search than MySQL?
- What would be the specific disadvantage of just using TiDB for now?
All of this needs to be investigated. Help is most welcome! 👍
from photoprism.
Implemented full-text search with SQL only, even without support for FULLTEXT
. So this is not needed anymore.
from photoprism.
Related Issues (20)
- Setup: Improve docker-compose.yml inline docs for INIT and MARIADB_PASSWORD HOT 6
- Frontend: Upgrade MapLibre GL JS from v3.6 to v4.0
- MariaDB: Show info when waiting for the database to become available HOT 11
- Albums: Fix links to albums in the settings tab of the edit dialog HOT 11
- Indexed Image Names Differ From Original File Names
- Index: Create a new photo or find an existing one if the photo UID has been restored from a sidecar YAML file HOT 1
- Library: Live photo / video preview loading delay (1-2 seconds)
- Video: Allow streaming of all HEVC videos under Windows, e.g. by transcoding to AVC HOT 4
- WebDAV: Adding TrueNAS as a service for syncing files does not work HOT 2
- Idea: As a User, I would like to see the current upload speed of the file being uploaded in the iOS/Android app
- Support for Cryptomator FS under Windows HOT 1
- Setup: Provide ARMv7 installation packages HOT 1
- Develop: Upgrade base image to Ubuntu 24.04 LTS (Noble Numbat)
- task "convert" takes a very long time to sort through the already encoded files HOT 1
- Picture Handling: Use Archive to conveniently manage second priority pictures
- Docker Photoprism error after server reboot
- Stacks: Stack files by dc:identifier HOT 1
- UX : Add Favorites section to main navigation for users with role viewer
- Metadata: Support reading GPS information from xmp HOT 2
- Frontend: Direct Link to images in frontend HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from photoprism.