chrislu
4ee0a6f47b
filer store: reduce one possible listing operation
2022-02-19 00:43:42 -08:00
chrislu
b3594278c9
optimize a bit
2022-02-18 23:36:10 -08:00
chrislu
df51e0c042
mongodb: remove ErrNoDocuments checking since it is only for creating single record, not for querying
2022-02-15 16:18:36 -08:00
chrislu
98cce6a150
mongodb: ensure closing cursor
2022-02-15 16:15:44 -08:00
banjiaojuhao
b5ec346700
FilerStore: add redis_lua
2022-02-15 20:54:57 +08:00
Eng Zer Jun
b92df1654c
test: use T.TempDir
to create temporary test directory
...
The directory created by `T.TempDir` is automatically removed when the
test and all its subtests complete.
Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2022-02-14 10:38:13 +08:00
chrislu
85c1615b43
filer read empty file may cause OOM in some cases
...
fix https://github.com/chrislusf/seaweedfs/issues/2641
2022-02-07 23:08:54 -08:00
chrislu
9405eaefdb
filer.sync: fix replicating partially updated file
...
Run two servers with volumes and fillers:
server -dir=Server1alpha -master.port=11000 -filer -filer.port=11001 -volume.port=11002
server -dir=Server1sigma -master.port=11006 -filer -filer.port=11007 -volume.port=11008
Run Active-Passive filler.sync:
filer.sync -a localhost:11007 -b localhost:11001 -isActivePassive
Upload file to 11007 port:
curl -F file=@/Desktop/9.xml "http://localhost:11007/testFacebook/ "
If we request a file on two servers now, everything will be correct, even if we add data to the file and upload it again:
curl "http://localhost:11007/testFacebook/9.xml "
EQUALS
curl "http://localhost:11001/testFacebook/9.xml "
However, if we change the already existing data in the file (for example, we change the first line in the file, reducing its length), then this file on the second server will not be valid and will not be equivalent to the first file
Снимок экрана 2022-02-07 в 14 21 11
This problem occurs on line 202 in the filer_sink.go file. In particular, this is due to incorrect mapping of chunk names in the DoMinusChunks function. The names of deletedChunks do not match the chunks of existingEntry.Chunks, since the first chunks come from another server and have a different addressing (name) compared to the addressing on the server where the file is being overwritten.
Deleted chunks are not actually deleted on the server to which the file is replicated.
2022-02-07 03:46:28 -08:00
chrislu
4a311c7f5e
dedup local metadata subscribers
...
fix https://github.com/chrislusf/seaweedfs/discussions/2542
2022-01-23 16:14:22 -08:00
chrislu
606667f205
able to configure the quota for a bucket
2022-01-21 01:42:20 -08:00
guol-fnst
da9540e666
add gocql timeout setting
2022-01-18 15:21:13 +08:00
banjiaojuhao
45e9c83421
padding zero for sparse file
2022-01-13 22:21:22 +08:00
chrislu
1453263b63
remove dead code
2022-01-13 02:02:04 -08:00
chrislu
10ecf80ca1
add a debug capability to list all metadata keys
2022-01-11 23:25:04 -08:00
chrislu
34742be029
remove duplicated metadata subscription in filer
...
https://github.com/chrislusf/seaweedfs/issues/2545
2021-12-30 01:51:52 -08:00
chrislu
9a00c17555
reader: avoid wrong pattern detection due to lock waiting
2021-12-28 16:30:33 -08:00
chenkai
47c30e3add
filer list entries use context to break job
2021-12-28 15:03:41 +08:00
chrislu
9f9ef1340c
use streaming mode for long poll grpc calls
...
streaming mode would create separate grpc connections for each call.
this is to ensure the long poll connections are properly closed.
2021-12-26 00:15:03 -08:00
banjiaojuhao
083bf3a137
filer server: add "datacenter, rack and datanode" for path specific configuration
2021-12-23 23:25:05 +08:00
chrislu
b541e39a2c
fix tests
2021-12-22 16:17:30 -08:00
chrislu
0ec7bc6710
detect non streaming mode on the first read
2021-12-22 16:05:38 -08:00
chrislu
4c1368d621
fix test
2021-12-22 16:05:08 -08:00
chrislu
0cb9036f66
mount: only cache the first chunk on stream read
2021-12-19 23:06:03 -08:00
chrislu
a152f17937
mount: improve read performance on random reads
2021-12-19 22:43:14 -08:00
Bl1tz23
83bffca7e6
fix MongodbStore.ListDirectoryEntries panic on find failure
2021-12-03 13:58:37 +03:00
Chris Lu
689f5513a9
redis3 supports sentinel
2021-11-29 01:09:51 -08:00
Chris Lu
2f72c24498
skip the rest logic
2021-11-29 00:32:21 -08:00
Chris Lu
96c66ca2aa
read deleted chunks when replicating data
2021-11-28 23:33:03 -08:00
limd
ec03f22cc3
Merge remote-tracking branch 'origin/master'
2021-11-25 16:07:14 +08:00
limd
220797bd71
support redis sentinel
2021-11-25 15:57:03 +08:00
Chris Lu
7bf891c00a
randomize same-dc servers and other-dc servers
2021-11-12 11:30:11 -08:00
Chris Lu
4729a57cc0
use constants
2021-11-08 17:47:56 -08:00
Chris Lu
e0fc2898e9
auto updated filer peer list
2021-11-06 14:23:35 -07:00
Chris Lu
5ea86ef1da
Revert "master: rename grpc function KeepConnected() to SubscribeVolumeLocationUpdates()"
...
This reverts commit af71ae11aa
.
2021-11-05 17:52:15 -07:00
Chris Lu
7348d2ae63
randomize traffic if replicated
2021-11-05 00:03:13 -07:00
Chris Lu
af71ae11aa
master: rename grpc function KeepConnected() to SubscribeVolumeLocationUpdates()
2021-11-03 01:09:48 -07:00
Chris Lu
0c8dea9de8
go fmt
2021-11-02 23:39:16 -07:00
Chris Lu
1b90d60765
filer: paginate large directories to delete file chunks
2021-11-02 01:04:50 -07:00
Chris Lu
24858507cc
rename API to avoid confusion
2021-10-30 19:27:25 -07:00
Chris Lu
f5824f369c
avoid reporting error when it is a user request error
2021-10-29 14:14:29 -07:00
Chris Lu
2e76834e4d
filer store: redis2 fix wrong pagination
2021-10-27 23:46:25 -07:00
Chris Lu
900e888695
filer: avoid possible prefixed pagination loop on unsupported filer stores
2021-10-27 23:45:48 -07:00
Chris Lu
8e2c9713a3
turn on new faster algorithm to translate into visible chunks
2021-10-16 23:35:20 -07:00
Chris Lu
e7d1f183cc
ensure file id is populated
2021-10-16 23:34:27 -07:00
Chris Lu
fc1694b321
add tests
2021-10-16 23:34:12 -07:00
Chris Lu
b9a2efd69b
temporarily reverting
2021-10-16 16:29:10 -07:00
Chris Lu
8a124ef9fc
Revert "remove deprecated code"
...
This reverts commit de7688c539
.
2021-10-16 16:09:33 -07:00
Chris Lu
93624635b4
Revert "go fmt"
...
This reverts commit 6c704eb2ba
.
2021-10-16 16:09:30 -07:00
Chris Lu
6c704eb2ba
go fmt
2021-10-16 16:06:18 -07:00
Chris Lu
de7688c539
remove deprecated code
2021-10-16 16:06:12 -07:00
Chris Lu
7336990639
faster file read for large files
2021-10-16 16:03:16 -07:00
Chris Lu
8e3075d051
ensure file entry chunks have populated the file id
2021-10-16 01:05:48 -07:00
Eng Zer Jun
a23bcbb7ec
refactor: move from io/ioutil to io and os package
...
The io/ioutil package has been deprecated as of Go 1.16, see
https://golang.org/doc/go1.16#ioutil . This commit replaces the existing
io/ioutil functions with their new definitions in io and os packages.
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2021-10-14 12:27:58 +08:00
Konstantin Lebedev
9d6ffa0ea1
GetBucketLifecycleConfigurationHandler
2021-10-14 01:35:33 +05:00
Konstantin Lebedev
be4b3ed509
AclHandlers
2021-10-11 15:03:56 +05:00
Chris Lu
f4676824a7
fix test code compilation
2021-10-10 22:14:13 -07:00
Chris Lu
8205166009
disable testing with redis server
...
--- FAIL: TestNameList (0.00s)
panic: exec: "redis-server": executable file not found in $PATH [recovered]
panic: exec: "redis-server": executable file not found in $PATH
goroutine 37 [running]:
testing.tRunner.func1.2({0xde2f80, 0xc0003da160})
/opt/hostedtoolcache/go/1.17.1/x64/src/testing/testing.go:1209 +0x24e
testing.tRunner.func1()
/opt/hostedtoolcache/go/1.17.1/x64/src/testing/testing.go:1212 +0x218
panic({0xde2f80, 0xc0003da160})
/opt/hostedtoolcache/go/1.17.1/x64/src/runtime/panic.go:1038 +0x215
github.com/chrislusf/seaweedfs/weed/filer/redis3.TestNameList(0x407c59)
/home/runner/work/seaweedfs/seaweedfs/weed/filer/redis3/kv_directory_children_test.go:45 +0x376
testing.tRunner(0xc0003e2680, 0xf57f48)
/opt/hostedtoolcache/go/1.17.1/x64/src/testing/testing.go:1259 +0x102
created by testing.(*T).Run
/opt/hostedtoolcache/go/1.17.1/x64/src/testing/testing.go:1306 +0x35a
2021-10-10 21:57:55 -07:00
Chris Lu
3e2acf677c
removing tikv to resolve "go mod tidy" problem
...
tikv is causing "go mod tidy" problem. Need to resolve this before adding tikv back.
go mod tidy
go: finding module for package github.com/coreos/etcd/clientv3/balancer/picker
go: finding module for package cloud.google.com/go/kms/apiv1
go: finding module for package github.com/coreos/etcd/clientv3/balancer/resolver/endpoint
go: finding module for package google.golang.org/grpc/naming
go: finding module for package github.com/coreos/etcd/clientv3/credentials
go: finding module for package github.com/coreos/etcd/clientv3/balancer
go: finding module for package github.com/d4l3k/messagediff
go: found github.com/coreos/etcd/clientv3/balancer in github.com/coreos/etcd v3.3.26+incompatible
go: found github.com/coreos/etcd/clientv3/balancer/picker in github.com/coreos/etcd v3.3.26+incompatible
go: found github.com/coreos/etcd/clientv3/balancer/resolver/endpoint in github.com/coreos/etcd v3.3.26+incompatible
go: found github.com/coreos/etcd/clientv3/credentials in github.com/coreos/etcd v3.3.26+incompatible
go: found cloud.google.com/go/kms/apiv1 in cloud.google.com/go/kms v1.0.0
go: found github.com/d4l3k/messagediff in github.com/d4l3k/messagediff v1.2.1
go: finding module for package google.golang.org/grpc/naming
github.com/chrislusf/seaweedfs/weed/filer/tikv imports
github.com/tikv/client-go/v2/tikv imports
go.etcd.io/etcd/clientv3 tested by
go.etcd.io/etcd/clientv3.test imports
github.com/coreos/etcd/integration imports
github.com/coreos/etcd/proxy/grpcproxy imports
google.golang.org/grpc/naming: module google.golang.org/grpc@latest found (v1.41.0), but does not contain package google.golang.org/grpc/naming
2021-10-10 19:27:02 -07:00
Chris Lu
17e08a16f4
fix redis3 deletion
2021-10-09 04:54:48 -07:00
Chris Lu
e4830bd93d
go fmt
2021-10-07 21:13:31 -07:00
Chris Lu
0a856241fe
avoid int bigger than math.MaxInt32
...
fix https://github.com/chrislusf/seaweedfs/issues/2363
2021-10-07 21:12:57 -07:00
Chris Lu
f3d8232e14
reduce one redis lookup on hot path
2021-10-06 22:01:19 -07:00
Chris Lu
2336a397dc
use pipeline to save some time
2021-10-06 20:40:18 -07:00
Chris Lu
371fead8a5
redis3 using redis native sorted set
2021-10-06 18:18:24 -07:00
Chris Lu
8668d49c9d
test with real redis
...
cpu: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
BenchmarkNameList-12 1789 760599 ns/op
BenchmarkRedis-12 17539 64122 ns/op
PASS
2021-10-06 01:25:37 -07:00
Chris Lu
6b31f3c97a
add benchmark test
2021-10-06 00:37:57 -07:00
Chris Lu
893f0587b1
redis3 adds distributed locking
2021-10-06 00:03:54 -07:00
Chris Lu
947add39e6
clean up *SkipListElementReference loaded from Redis
2021-10-04 02:31:38 -07:00
Chris Lu
2b9aab3442
use 1000 per batch
2021-10-04 01:03:40 -07:00
Chris Lu
366f522a2d
add redis3
2021-10-04 01:01:31 -07:00
Chris Lu
b6694279d7
Merge branch 'master' into bptree
2021-10-01 16:55:44 -07:00
chrislusf
3ffbaaa071
use github.com/linxGnu/grocksdb
2021-10-01 03:16:03 +00:00
Chris Lu
040443e2d1
fix possible error case
2021-09-27 23:59:45 -07:00
Chris Lu
9887610b54
log tsNs should be processing time
2021-09-26 11:54:13 -07:00
Chris Lu
2baed2e1e9
avoid possible metadata subscription data loss
...
Previous implementation append filer logs into one file. So one file is not always sorted, which can lead to miss reading some entries, especially when different filers have different write throughput.
2021-09-25 01:18:44 -07:00
Chris Lu
198fa58e3c
Merge branch 'master' into bptree
2021-09-18 14:06:16 -07:00
Chris Lu
49d971e602
filer: redis store needs to clean up batch deleted sub folders
2021-09-18 14:05:16 -07:00
Chris Lu
8f2e4be074
wip
2021-09-18 14:04:30 -07:00
Chris Lu
96514f0f00
fix tests
2021-09-13 02:19:48 -07:00
Chris Lu
e5fc35ed0c
change server address from string to a type
2021-09-12 22:47:52 -07:00
joshuafc
5654d0d60d
CompactionTableSizeMultiplier of leveldb use default value. #2325
...
To improve performance of leveldb find key in condition of large directory(millions of files) which use uuid as filename.
2021-09-09 10:42:34 +08:00
Chris Lu
574485ec69
better IP v6 support
2021-09-07 19:29:42 -07:00
zhoub
6a7ed1bd0e
add bloom filter to leveldb_store to improve fuse performance.
2021-09-07 21:09:10 +08:00
Chris Lu
6923af7280
refactoring
2021-09-06 16:20:49 -07:00
Chris Lu
28f45f8fa6
re-org
2021-09-05 14:38:31 -07:00
Chris Lu
df29281536
rename
2021-09-04 05:11:06 -07:00
Chris Lu
c3db389e42
refactor
2021-09-04 05:09:38 -07:00
Chris Lu
e9ce099453
rename
2021-09-04 05:03:51 -07:00
Chris Lu
8707ef00a6
refactor
2021-09-04 05:02:20 -07:00
Chris Lu
8ec357b3d3
go mod
2021-09-03 23:25:33 -07:00
Chris Lu
7ce97b59d8
go fmt
2021-09-01 02:45:42 -07:00
yulai.li
b17b81529e
Add build tags for TiKV filerstore
2021-08-30 15:59:25 +08:00
Rain Li
e5f9ff983d
Merge branch 'master' into filerstore-tikv
2021-08-30 15:52:54 +08:00
Chris Lu
dc481c081c
remove unused function
2021-08-27 22:18:54 -07:00
Chris Lu
9242f3aaeb
fix build
2021-08-26 17:33:57 -07:00
Chris Lu
05a648bb96
refactor: separating out remote.proto
2021-08-26 15:18:34 -07:00
yulai.li
c1dc5ab4ac
Add deleterange_concurrency to filer configuration file
2021-08-26 18:25:08 +08:00
yulai.li
318757ef8c
Change DeleteFolderChildren to DeleteRange api
2021-08-26 17:49:56 +08:00
yulai.li
546efeba8f
Fix build bug
2021-08-26 16:20:35 +08:00
yulai.li
2088f28424
init post
2021-08-26 15:20:18 +08:00
Chris Lu
9bcf94b2b1
ensure multi-threaded correctness
2021-08-25 17:28:50 -07:00
Chris Lu
40dc283b2d
fix locating data chunks
2021-08-15 23:07:58 -07:00
Chris Lu
72eb6d5b9d
ensure no writes to remote storage if content is not changed
2021-08-15 20:23:41 -07:00
Chris Lu
5d5a21ba2d
adjust log format
2021-08-15 19:46:45 -07:00
Chris Lu
49b5e47bd1
retry forever with filer.remote.sync, and some refactoring
2021-08-15 12:38:26 -07:00
Chris Lu
8f7d2d317f
readerAt need to use the right offset
...
fix https://github.com/chrislusf/seaweedfs/issues/2259
2021-08-15 11:55:58 -07:00
Chris Lu
9462f5129a
shell: add "remote.meta.sync"
2021-08-15 01:53:46 -07:00
Chris Lu
0c66b173a4
fix
2021-08-13 11:31:43 -07:00
Chris Lu
e02a317d3d
adjust retry logic in case some data is partially written
2021-08-13 11:30:38 -07:00
Chris Lu
2d519c6cb6
adjust the retry logic
2021-08-13 11:13:30 -07:00
Chris Lu
b961fcd338
filer: stream read from volume server, reduce memory usage
2021-08-13 11:00:11 -07:00
Chris Lu
5a0f92423e
use grpc and jwt
2021-08-12 21:40:33 -07:00
Chris Lu
bfac55e6c0
avoid integer overflow
...
fix https://github.com/chrislusf/seaweedfs/issues/2254
2021-08-11 22:22:49 -07:00
Chris Lu
9d85569c55
ensure using local quorum consistency
2021-08-10 05:10:57 -07:00
Chris Lu
713c035a6e
shell: remote.cache remote.uncache
2021-08-09 14:35:18 -07:00
Chris Lu
c5f38c365d
go fmt
2021-08-08 22:30:36 -07:00
Chris Lu
c0b12da4ef
shell: add filer.remote.unmount
2021-08-08 22:26:37 -07:00
Chris Lu
13e45e1605
filer.remote.sync can work now
2021-08-08 01:21:42 -07:00
Chris Lu
46b0cb8c86
Merge branch 'master' into add_remote_storage
2021-08-07 15:41:27 -07:00
Chris Lu
de730b079d
ChunkStreamReader implenents io.ReaderAt
2021-08-07 15:41:07 -07:00
Chris Lu
59732a0529
refactoring
2021-08-07 15:35:27 -07:00
Chris Lu
ecb234f75a
refactor
2021-08-07 14:46:23 -07:00
Chris Lu
679f800caa
Merge branch 'master' into add_remote_storage
2021-08-06 20:27:12 -07:00
byunghwa.yun
f3dc909b21
Change default permissions
2021-08-06 12:24:35 +09:00
Chris Lu
6b743dbbf9
refactor client subscribe metadata
2021-08-04 16:25:46 -07:00
Chris Lu
f6a9ad8001
fix tests
2021-08-04 00:31:06 -07:00
Chris Lu
81b255df8b
Merge branch 'master' into add_remote_storage
2021-08-01 15:44:21 -07:00
Chris Lu
89933c46d2
s3: skip hidden directories in /buckets folder
2021-08-01 12:28:08 -07:00
Chris Lu
767edd3c08
rename
2021-07-31 23:52:09 -07:00
Chris Lu
9df7d16791
read <- remote_storage
2021-07-31 22:39:38 -07:00
Chris Lu
899963ac20
remote storage location changed to struct
2021-07-29 02:08:55 -07:00
Chris Lu
c090d6bb25
add ReadRemote(), add read remote setup when filer starts
2021-07-28 22:43:12 -07:00
Chris Lu
1752eeb538
remote.mount saves the mapping
2021-07-27 03:26:35 -07:00
Chris Lu
4b94b03d90
directory to remote storage mapping
2021-07-27 01:16:28 -07:00
Chris Lu
99b599aa8a
remote.mount
2021-07-26 22:53:44 -07:00
byunghwa.yun
2b28a818f1
Fix mysql sql for batch delete
2021-07-25 11:06:14 +09:00
Chris Lu
bdb632fa62
Merge pull request #2211 from qieqieplus/filer-bloom-filter
...
add bloom filter for filer leveldb/rocksdb
2021-07-22 23:35:54 -07:00
qieqieplus
2b46df13f8
add bloom filter for filer leveldb/rocksdb
2021-07-23 14:05:59 -06:00
Chris Lu
182288f860
filer: fix mysql, postgres batch delete error
2021-07-22 08:23:20 -07:00
Chris Lu
7359193e97
go fmt
2021-07-21 14:38:12 -07:00
Chris Lu
70effac0d3
configure and store remote configurations
2021-07-21 02:24:34 -07:00
Chris Lu
a125c8fbe2
Merge pull request #2204 from nivekuil/tokenpolicy
...
cassandra: use LocalQuorum for all queries
2021-07-20 15:37:31 -07:00
nivekuil
b9a67d46c5
cassandra: use LocalQuorum for all queries
...
This changes this filer store from eventual to strong consistency at the cost
of read performance.
2021-07-20 14:47:39 -07:00
Chris Lu
54c8bc8673
Merge branch 'remote_overlay'
2021-07-19 23:18:35 -07:00
Chris Lu
7ab389e7ec
optimization: improve random range query for large files
2021-07-19 23:07:22 -07:00
Chris Lu
93c37cfded
Update filechunk_manifest.go
2021-07-19 18:41:41 -07:00
Chris Lu
450222dd64
add remote to filer.Entry and filer_pb entry, add RemoteConf
2021-07-19 02:47:27 -07:00
nivekuil
2faf96f002
cassandra: Use LocalOne instead of One consistency
2021-07-16 04:29:46 -07:00
Chris Lu
3d624d1e16
rename
2021-07-09 03:19:21 -07:00
Chris Lu
ecce300964
s3 config read via grpc
2021-07-09 02:48:03 -07:00