Commit Graph

7202 Commits

Author SHA1 Message Date
Chris Lu
dc784bf217
merge current message queue code changes (#6201)
* listing files to convert to parquet

* write parquet files

* save logs into parquet files

* pass by value

* compact logs into parquet format

* can skip existing files

* refactor

* refactor

* fix compilation

* when no partition found

* refactor

* add untested parquet file read

* rename package

* refactor

* rename files

* remove unused

* add merged log read func

* parquet wants to know the file size

* rewind by time

* pass in stop ts

* add stop ts

* adjust log

* minor

* adjust log

* skip .parquet files when reading message logs

* skip non message files

* Update subscriber_record.go

* send messages

* skip message data with only ts

* skip non log files

* update parquet-go package

* ensure a valid record type

* add new field to a record type

* Update read_parquet_to_log.go

* fix parquet file name generation

* separating reading parquet and logs

* add key field

* add skipped logs

* use in memory cache

* refactor

* refactor

* refactor

* refactor, and change compact log

* refactor

* rename

* refactor

* fix format

* prefix v to version directory
2024-11-04 12:08:25 -08:00
wyang
a7973ed7d1
fix deadlock hang when broadcast to clients (#6184)
fix deadlock when broadcast to clients

when master thransfer leader, the old master will disconnect with all
filers and volumeServers, if the cluster is a big , the broadcast
messages may be more big than the max of the channel len 100, then if the
KeepConnect was not listen on the channel in disconnect, it will
deadlock. and the whole cluster will not serve!
2024-11-03 23:20:48 -08:00
Konstantin Lebedev
5bddf0c085
[shell] volume.balance collect volume servers by dc rack node (#6191)
* chore: balance by rack

* fix: rm check lock

* fix: selected racks

* fix: selected nodes

* fix: containts

* fix: one collectVolumeServersByDcRackNode

* fix: revert lock and add lock

* fix: panic test

* revert noLock
2024-11-03 11:08:45 -08:00
han
65fb8fad99
Update filer_multipart.go (#6188)
fix the #6177 bug
2024-11-01 00:38:35 -07:00
Bruce
0060a2cf9c
Fix 6181/6182 (#6183)
* set larger buf size for LogBuffer

* jump to next day when no more entry found

* Update weed/filer/filer_notify_read.go

---------

Co-authored-by: Chris Lu <chrislusf@users.noreply.github.com>
2024-10-31 08:40:05 -07:00
wyang
c29c912bdc
fix format (#6185)
unitest weed/shell fail
2024-10-31 08:30:35 -07:00
chrislu
ad6240f066 fix parameter 2024-10-30 20:30:51 -07:00
chrislu
8802843511 pass in bytes buffer to avoid possible race condition
related to https://github.com/seaweedfs/seaweedfs/issues/6180
2024-10-30 09:31:22 -07:00
chrislu
3feb66d0a1 adding more debug message
related to https://github.com/seaweedfs/seaweedfs/issues/6180
2024-10-30 09:16:40 -07:00
chrislu
228946369c 3.79 2024-10-28 19:44:39 -07:00
chrislu
9873b033d1 backward compatible vif loading 2024-10-28 19:44:30 -07:00
chrislu
9105c6bdd1 fix format 2024-10-28 11:29:08 -07:00
chrislu
ebbb35d533 3.78 2024-10-27 17:44:22 -07:00
chrislu
089d4316ef ensure 2 volume space since actual need 1.4x volume size empty space 2024-10-24 22:44:53 -07:00
chrislu
6e388e29c9 correcting free volume count, factor it during ec encoding to ensure enough disk space available
fix https://github.com/seaweedfs/seaweedfs/issues/6163
2024-10-24 22:42:38 -07:00
chrislu
8d6189bcc5 adjust output format 2024-10-24 21:41:39 -07:00
chrislu
2f3d820f52 rename proto field
This should not have any impact.
2024-10-24 21:36:56 -07:00
chrislu
ae5bd0667a rename proto field from DestroyTime to expire_at_sec
For TTL volume converted into EC volume, this change may leave the volumes staying.
2024-10-24 21:35:11 -07:00
chrislu
1c2b10303a remove X-Forwarded-For
fix https://github.com/seaweedfs/seaweedfs/issues/6136
2024-10-23 17:52:45 -07:00
chrislu
73921ce4f6 adjust help message 2024-10-22 08:51:02 -07:00
Guang Jiong Lou
9369a88c5c
stop renaming worm files (#6154)
* stop renaming worm file

Signed-off-by: lou <alex1988@outlook.com>

* update after review

Signed-off-by: lou <alex1988@outlook.com>

* Update weed/server/filer_server_handlers_write.go

---------

Signed-off-by: lou <alex1988@outlook.com>
Co-authored-by: Chris Lu <chrislusf@users.noreply.github.com>
2024-10-22 08:46:18 -07:00
chrislu
d38456dc06 do not delete collection metrics when unmount a volume
fix https://github.com/seaweedfs/seaweedfs/issues/6139
2024-10-22 00:44:52 -07:00
chrislu
6c7824c813 consistent sorted tags elastic,gocdk,rclone,sqlite,tikv,ydb 2024-10-21 22:53:29 -07:00
chrislu
0df4a4298b adjust comment 2024-10-21 22:36:25 -07:00
Guang Jiong Lou
54b91ba2b2
fix permission check in put request (#6142) 2024-10-18 07:00:45 -07:00
dsd
1e13b6879c
fix(volume): to avoid duplicate write a same needle (#6138)
fix WriteNeedleBlob to avoid duplicate write a same needle

Co-authored-by: 邓书东 <shudong_deng@hhnb2024010108.intsig.com>
Co-authored-by: Chris Lu <chrislusf@users.noreply.github.com>
2024-10-18 01:20:50 -07:00
chrislu
f11567816e Revert "fix: volume data integrity check (#6118)"
This reverts commit e12b9ab746.
2024-10-17 18:52:30 -07:00
wusong
e12b9ab746
fix: volume data integrity check (#6118)
Co-authored-by: wang wusong <wangwusong@virtaitech.com>
2024-10-14 12:17:41 -07:00
steve.wei
cfbe45c765
feat: add in-flight metric for s3/file/volume-server (#6120) 2024-10-14 12:10:05 -07:00
chrislu
804e765397 remove unused 2024-10-13 23:12:10 -07:00
chrislu
6845e25318 set proxied request content length 2024-10-10 13:55:32 -07:00
chrislu
35fd1e1c9a optimize memory usage for large number of volumes
1. unwrap the map to avoid extra map object creation
2. fix ec shard counting in UpdateEcShards
2024-10-10 10:00:30 -07:00
chrislu
b28b1a3402 3.77 2024-10-10 01:28:06 -07:00
chrislu
07df5c53de avoid nil
I1010 03:10:25.220345 mount_std.go:281 This is SeaweedFS version 30GB 3.76 82ed61c655 linux amd64
^[OR^[OR2024/10/10 03:12:56 Unimplemented opcode POLL
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x3983b41]
goroutine 112 [running]:
github.com/seaweedfs/seaweedfs/weed/mount/meta_cache.SubscribeMetaEvents.func2.mergeProceesors.1(0xc000513540)
/github/workspace/weed/mount/meta_cache/meta_cache_subscribe.go:30 +0x41
github.com/seaweedfs/seaweedfs/weed/pb.WithFilerClientFollowMetadata.makeSubscribeMetadataFunc.func1({0x514a560, 0xc0009b06d0})
/github/workspace/weed/pb/filer_pb_tail.go:87 +0x293
github.com/seaweedfs/seaweedfs/weed/mount.(*WFS).WithFilerClient.func1.1(0xc000d9e008)
/github/workspace/weed/mount/wfs_filer_client.go:27 +0x68
github.com/seaweedfs/seaweedfs/weed/pb.WithGrpcClient(0xa9?, 0x9d1f90fb?, 0xc00098fbe0, {0xc000e1c078, 0x15}, 0x0?, {0xc000a76bd0?, 0x1?, 0x1?
})
/github/workspace/weed/pb/grpc_client_server.go:155 +0x33a
github.com/seaweedfs/seaweedfs/weed/mount.(*WFS).WithFilerClient.func1()
/github/workspace/weed/mount/wfs_filer_client.go:25 +0x14c
github.com/seaweedfs/seaweedfs/weed/util.Retry({0x489a10c, 0xa}, 0xc00098fcf8)
/github/workspace/weed/util/retry.go:16 +0xa7
github.com/seaweedfs/seaweedfs/weed/mount.(*WFS).WithFilerClient(0x0?, 0x30?, 0xc00056a568?)
/github/workspace/weed/mount/wfs_filer_client.go:18 +0x65
github.com/seaweedfs/seaweedfs/weed/pb.WithFilerClientFollowMetadata({0x50f5898, 0xc000e2c180}, 0xc00101e000, 0xc000d22030)
/github/workspace/weed/pb/filer_pb_tail.go:51 +0x87
github.com/seaweedfs/seaweedfs/weed/mount/meta_cache.SubscribeMetaEvents.func2()
/github/workspace/weed/mount/meta_cache/meta_cache_subscribe.go:115 +0xcb
github.com/seaweedfs/seaweedfs/weed/util.RetryUntil({0x48b8b35, 0x11}, 0xc00098fef0, 0x4af0048)
/github/workspace/weed/util/retry.go:64 +0x4e
github.com/seaweedfs/seaweedfs/weed/mount/meta_cache.SubscribeMetaEvents(0xc000d1d980, 0x9d1f90fb, {0x50f5898, 0xc000e2c180}, {0x7ffdf6f98dca,
0x4}, 0x17fcf8b7c7ecf8cf, {0xc0000ac208, 0x1, 0x1})
/github/workspace/weed/mount/meta_cache/meta_cache_subscribe.go:113 +0x39b
created by github.com/seaweedfs/seaweedfs/weed/mount.(*WFS).StartBackgroundTasks in goroutine 1
/github/workspace/weed/mount/weedfs.go:150 +0x146
2024-10-09 22:46:00 -07:00
chrislu
82ed61c655 3.76 2024-10-06 19:37:03 -07:00
chrislu
c0e36231ad use only one metadata follow process 2024-10-06 12:55:19 -07:00
Konstantin Lebedev
44b275879b
[s3] add {Get,Put,Delete}BucketTagging and PublicAccessBlock Handlers (#6088)
* add {Get,Put,Delete}BucketTagging Handlers

* s3 add skip bucket PublicAccessBlock handlers

---------

Co-authored-by: Chris Lu <chrislusf@users.noreply.github.com>
2024-10-04 10:59:14 -07:00
chrislu
a3a8f6217e fix 2024-10-03 09:03:17 -07:00
chrislu
117c3aebda 3.75 2024-10-03 08:33:35 -07:00
Konstantin Lebedev
a3556acd98
[s3] add skip bucket encryption handlers (#6091)
s3 add skip bucket encryption handlers
2024-10-03 08:10:43 -07:00
Er2
5644bc8f01
s3api: Fix signature v4 with reverse proxy at sub-path (#6092) 2024-10-03 08:08:19 -07:00
chrislu
ff47956530 add helper functions 2024-10-03 00:13:46 -07:00
chrislu
11e53dd8ef skip error if conf file is not created 2024-10-01 22:46:48 -07:00
chrislu
f747767aa1 support load balancer in front of s3 2024-10-01 12:57:45 -07:00
chrislu
7dd480acad handle missing leading zero padding in replica 2024-10-01 10:16:21 -07:00
chrislu
e3fa87bcc1 3.74 2024-09-30 11:29:01 -07:00
chrislu
cdd7fa81ab fix help message 2024-09-29 21:53:07 -07:00
chrislu
20929f2a57 adjust resource heavy for volume.fix.replication 2024-09-29 11:32:18 -07:00
chrislu
6564ceda91 skip resource heavy commands from running on master nodes 2024-09-29 10:51:17 -07:00
chrislu
ec30a504ba refactor 2024-09-29 10:38:22 -07:00
chrislu
9cd263b2ce refactor 2024-09-29 10:35:53 -07:00
chrislu
701abbb9df add IsResourceHeavy() to command interface 2024-09-28 20:23:01 -07:00
coffeecloudgit
dad3a26fb6
Update volume_grpc_erasure_coding.go , fix no space left bug (#6077) 2024-09-27 12:04:27 -07:00
Konstantin Lebedev
bae93e611d
[filer] avoid 500 if table doesn't exist (#6075) 2024-09-27 07:15:54 -07:00
coffeecloudgit
6cbce110d5
Update volume_grpc_erasure_coding.go (#6073) 2024-09-27 07:02:30 -07:00
Neo
aa61824442
master:fix empty target in Build() (#6069) 2024-09-27 00:45:18 -07:00
Max Denushev
f1e700ce2f
Fix/copy before delete replication (#6064)
* fix(shell): volume.fix.replication misplaced volumes unsatisfying replication factor

* fix(shell): simplify replication check

* fix(shell): add test for satisfyReplicaCurrentLocation
2024-09-26 08:34:13 -07:00
steve.wei
ae8c6d95a6
fix: Prevent potential metadata change events from being lost. (#6066) 2024-09-26 08:31:57 -07:00
LHHDZ
4dc33cc143
fix unclaimed spaces calculation when volumePreallocate is enabled (#6063)
the calculation of `unclaimedSpaces` only needs to subtract `unusedSpace` when `preallocate` is not enabled.

Signed-off-by: LHHDZ <shichanglin5@qq.com>
2024-09-24 23:04:18 -07:00
Max Denushev
d056c0ddf2
fix(volume): don't persist RO state in specific cases (#6058)
* fix(volume): don't persist RO state in specific cases

* fix(volume): writable always persist
2024-09-24 16:15:54 -07:00
zemul
028ebb1d0d
Feat:merge small chunk (#6049)
* fix:mount deadlock

* feat: merge small chunk

* adjust MergeChunkMinCount

* fix

---------

Co-authored-by: zemul <zhouzemiao@ihuman.com>
2024-09-23 08:51:03 -07:00
chrislu
4ec6eab004 fix max volume count auto setting
related to https://github.com/seaweedfs/seaweedfs/issues/6041#issuecomment-2360448182
2024-09-19 09:13:08 -07:00
dsd
a3572999bb
Vol check disk bug (#6044)
* fix volume.check.disk

* ensure multiple replica sync

* add comment

---------

Co-authored-by: 邓书东 <shudong_deng@hhnb2024010108.intsig.com>
2024-09-19 08:32:22 -07:00
Konstantin Lebedev
6d4f5c94ac
[volume] remove truncate idx file if size not healthy (#6043) 2024-09-19 01:04:08 -07:00
chrislu
50e22864cf refactor 2024-09-17 23:10:41 -07:00
chrislu
99ae99e3b9 fix nil filer conf
fix https://github.com/seaweedfs/seaweedfs/issues/6034
2024-09-17 11:07:29 -07:00
Konstantin Lebedev
2b13d2c083
[filer] fix return 204 for DELETE on entry not found (#6023)
fix return 204 for DELETE on entry not found
2024-09-16 23:11:03 -07:00
Guang Jiong Lou
6c986e9d70
improve worm support (#5983)
* improve worm support

Signed-off-by: lou <alex1988@outlook.com>

* worm mode in filer

Signed-off-by: lou <alex1988@outlook.com>

* update after review

Signed-off-by: lou <alex1988@outlook.com>

* update after review

Signed-off-by: lou <alex1988@outlook.com>

* move to fs configure

Signed-off-by: lou <alex1988@outlook.com>

* remove flag

Signed-off-by: lou <alex1988@outlook.com>

* update after review

Signed-off-by: lou <alex1988@outlook.com>

* support worm hardlink

Signed-off-by: lou <alex1988@outlook.com>

* update after review

Signed-off-by: lou <alex1988@outlook.com>

* typo

Signed-off-by: lou <alex1988@outlook.com>

* sync filer conf

Signed-off-by: lou <alex1988@outlook.com>

---------

Signed-off-by: lou <alex1988@outlook.com>
2024-09-16 21:02:21 -07:00
Guang Jiong Lou
367e7638d7
fix invalid file read (#6024) 2024-09-16 08:45:50 -07:00
Eugeniy E. Mikhailov
0da9e40abb
Feature: compress before encryption (#6013) 2024-09-15 08:47:53 -07:00
Bruce
5428229347
fix file read crash (#6021) 2024-09-14 08:33:35 -07:00
zouyixiong
881c9a009e
[master] master missing start LoopPushingMetric routine fixed. (#6018) 2024-09-13 20:01:34 -07:00
Aleksey Kosov
7340c62c47
changing FindEntry error handling in cassandra store (#6015) 2024-09-13 06:53:04 -07:00
chrislu
a9c9e1bcb3 refactor 2024-09-12 22:45:30 -07:00
chrislu
6063a889ed 3.73 2024-09-12 13:11:55 -07:00
Eugeniy E. Mikhailov
dab0bb8097
Feature limit caching to prescribed number of bytes per file (#6009)
* feature: we can check if a fileId is already in the cache

We using this to protect cache from adding the same needle to
the cache over and over.

* fuse mount: Do not start dowloader if needle is already in the cache

* added maxFilePartSizeInCache property to ChunkCache

If file very large only first maxFilePartSizeInCache bytes
are going to be put to the cache (subject to the needle size
constrains).

* feature: for large files put in cache no more than prescribed number of bytes

Before this patch only the first needle of a large file was intended for
caching. This patch uses maximum prescribed amount of bytes to be put in
cache. This allows to bypass default 2MB maximum for a file part stored
in the cache.

* added dummy mock methods to satisfy interfaces of ChunkCache
2024-09-11 21:09:20 -07:00
dsd
151f2ff7a9
prevent dead loop for followers of master node (#6007)
* prevent dead loop for followers of master node

* fix comments

---------

Co-authored-by: levi <344887649@foxmail.com>
2024-09-11 10:24:52 -07:00
dsd
3b840c20e3
change math/rand => math/rand/v2 in volume_layout.go where is a perfo… (#6006) 2024-09-11 07:39:40 -07:00
Eugeniy E. Mikhailov
c04edeed68
bug fix in the data received from cache processing (#6002)
The patch addresses #3745.

The cache should return the exact amount of data requested by the buffer.
By construction of the cache it is always all requested data range
or we have error happening.

The old use of minsize miscalculate the requested data size,
if non zero offset is requested.
2024-09-10 13:30:18 -07:00
chrislu
d660d5c7d4 increasing default cache size 2024-09-10 10:30:19 -07:00
chrislu
f23015ac5b weed mount caching 2024-09-10 10:30:05 -07:00
chrislu
93decd1114 remove unused 2024-09-10 10:29:25 -07:00
chrislu
69fcdd0840 adjust logging 2024-09-10 10:28:49 -07:00
Konstantin Lebedev
34bbaa2cdd
[master] process grow request with must grow (#5999)
process grow request with must grow
2024-09-09 23:45:02 -07:00
Konstantin Lebedev
15965f7c54
[shell] fix volume grow in shell (#5992)
* fix volume grow in shell

* revert add Async

* check available volume space

* create a VolumeGrowRequest and remove unnecessary fields
2024-09-09 11:42:56 -07:00
chrislu
43d9f68219 more consistent server header for s3 apis 2024-09-09 09:07:58 -07:00
zouyixiong
d8e18a8eb7
bug fixed to filer store elastic deleteEntry (#5988) 2024-09-09 02:15:25 -07:00
chrislu
ff3d46637d better logging for volume growth 2024-09-07 12:38:34 -07:00
chrislu
accba3070a refactor 2024-09-07 11:54:22 -07:00
Eugeniy E. Mikhailov
d6b0e0ff1c
Remove "Content-Length" header if http.Error is issued (#5981) 2024-09-05 17:31:28 -07:00
Eugeniy E. Mikhailov
bc01f09e37
Do CRC check if the buffer contains the full needle data before it is sent (#5980) 2024-09-05 17:14:55 -07:00
Bruce
f9e141a412
persist readonly state to volume info (#5977) 2024-09-05 07:58:24 -07:00
Bruce
310d41998d
Skip volume data integrity check for volume which has remote file (#5976) 2024-09-04 21:25:04 -07:00
Konstantin Lebedev
16984ef07a
[s3] reducing the number of metrics for 403 (#5961)
reducing the number of metrics
2024-09-04 11:06:54 -07:00
Konstantin Lebedev
67a252ee8a
[master] refactor func ShouldGrowVolumes (#5884) 2024-09-04 08:16:44 -07:00
chrislu
eb02946c97 support write once read many
fix https://github.com/seaweedfs/seaweedfs/issues/5954
2024-09-04 02:25:07 -07:00
chrislu
18afdb15b6 Revert "weed mount, weed dav add option to force cache"
This reverts commit 7367b976b0.
2024-09-04 01:38:29 -07:00
chrislu
7367b976b0 weed mount, weed dav add option to force cache 2024-09-04 01:19:14 -07:00
chrislu
66ac82bb8f default cacheDirWrite to cacheDir 2024-09-04 00:05:58 -07:00
chrislu
8d5a6d7e74 fix for spreading ec shards 2024-09-03 22:30:11 -07:00