v0.10.0
版本发布时间: 2022-12-16 23:47:35
pocketbase/pocketbase最新发布版本:v0.23.5(2024-12-08 20:25:38)
This release comes with major performance and memory consumption improvements. We now internally maintain 2 separate DB pools to increase the read and write concurrent throughput and reduce the memory allocation due to large number of open connections. Based on some tests on 2vCPU 2GB Hetzner VPS, the time needed for creating concurrently 10000 records (each with ~300KB body) was reduced from ~120s to ~14s (this includes the network latency). Additionally the writes no longer should exhaust the available read connections meaning that you should be able to query your data even on constant write load.
If after the upgrade you are still getting OOM errors, you may want to set the environment variable GOMEMLIMIT=500MiB
before starting the executable to reduce the amount of unreleased memory kept by the GC (it is a soft limit).
Changes
-
Added
/api/health
endpoint (thanks @MarvinJWendt). -
Added support for SMTP
LOGIN
auth for Microsoft/Outlook and other providers that don't support thePLAIN
auth method (#1217). -
Reduced memory consumption (you can expect ~20% less allocated memory).
-
Added support for split (concurrent and nonconcurrent) DB connections pool increasing even further the concurrent throughput without blocking reads on heavy write load.
-
Improved record references delete performance.
-
Removed the unnecessary parenthesis in the generated filter SQL query, reducing the "parse stack overflow" errors.
-
Fixed
~
expressions backslash literal escaping (#1231). -
Refactored the
core.app.Bootstrap()
to be called before starting the cobra commands (#1267). -
! Changed
pocketbase.NewWithConfig(config Config)
topocketbase.NewWithConfig(config *Config)
and added 4 new config settings:DataMaxOpenConns int // default to core.DefaultDataMaxOpenConns DataMaxIdleConns int // default to core.DefaultDataMaxIdleConns LogsMaxOpenConns int // default to core.DefaultLogsMaxOpenConns LogsMaxIdleConns int // default to core.DefaultLogsMaxIdleConns
-
Added new helper method
core.App.IsBootstrapped()
to check the current app bootstrap state. -
! Changed
core.NewBaseApp(dir, encryptionEnv, isDebug)
toNewBaseApp(config *BaseAppConfig)
. -
! Removed
rest.UploadedFile
struct (see belowfilesystem.File
). -
Added generic file resource struct that allows loading and uploading file content from different sources (at the moment multipart/form-data requests and from the local filesystem).
filesystem.File{} filesystem.NewFileFromPath(path) filesystem.NewFileFromMultipart(multipartHeader) filesystem/System.UploadFile(file)
-
Refactored
forms.RecordUpsert
to allow more easily loading and removing files programmatically.forms.RecordUpsert.AddFiles(key, filesystem.File...) // add new filesystem.File to the form for upload forms.RecordUpsert.RemoveFiles(key, filenames...) // marks the filenames for deletion
-
Trigger the
password
validators if any of the others password change fields is set.
1、 checksums.txt 706B
2、 pocketbase_0.10.0_darwin_amd64.zip 14.36MB
3、 pocketbase_0.10.0_darwin_arm64.zip 13.97MB
4、 pocketbase_0.10.0_linux_amd64.zip 13.87MB
5、 pocketbase_0.10.0_linux_arm64.zip 12.92MB
6、 pocketbase_0.10.0_linux_armv7.zip 13.29MB
7、 pocketbase_0.10.0_windows_amd64.zip 14.02MB
8、 pocketbase_0.10.0_windows_arm64.zip 13.05MB