On 2020-07-08 at 14:54 +0200, Daniel Jagszent wrote: > > Is it correct that s3ql will always download the whole block into > > the > > local cache upon a read that intersects with this block? > yes > > If true, then how scalable is s3ql with respect to number of blocks > > in > > the filesystem? That is, how far can I realistically reduce the > > block > > size if my dataset is, say, 10-20 TB? > > > > Basically, I'm trying to optimize for random reads. > How many files/inodes does your dataset have? What is the average > file size?
This specific filesystem is used to store a borg repository. All files are ~500 MiB in size. Consequently, I expect ~20-40k of these files. I have not (yet) profiled the file access patterns exactly, but I know that all new writes are strictly sequential and files are never rewritten, but accessing a borg repository causes many small random reads with no discernible pattern. (it's kinda ironic that I use a copy-on-write chunking globally deduplicating filesystem to store a copy-on-write chunking globally deduplicating content archiving repository, but this is the only S3 filesystem that works satisfactorily...) > > You should take your connection speed into account, also. If you are > on > a 1GB/s internet connection downloading 10MiB blocks (the default max > block size) is probably fine. If you only have a 1MB/s connection > your > max block size should be smaller. > But keep in mind: not only the raw download speed is relevant but > also > the setup cost for each download request. The object storage backend > needs to authenticate your request, look up your object and you maybe > have a DNS/TLS/TCP slow start overhead. And you might also need to > pay > for each request. > > S3QL uses a SQLite database to keep track of all things. A smaller > block > size means more blocks for S3QL to keep track of => a bigger > database. > That SQLite database can get big. A compressed version of the > database > gets stored on the object storage as a backup. Currently there is a > limitation, that this backup can only be 5GiB (the maximum object > size > of almost all object storage providers). If you have many blocks and > many inodes you can reach this limit (search this list, one or two > folks > have had this problem) and can get in real trouble. > > I probably would not choose a max block size below 10MiB. I have > some > S3QL file systems with few big files (Bareos "tape" backups) for > these > file systems I have increased the max block size to 300MiB but these > files only get accessed sequentially and the VMs running these file > systems are on 1GB/s+ internet connections. > Has anybody tried to improve s3ql's caching mechanism to allow partial download of blocks? -- Ivan Shapovalov / intelfx / -- You received this message because you are subscribed to the Google Groups "s3ql" group. To unsubscribe from this group and stop receiving emails from it, send an email to s3ql+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/s3ql/97ffacaf50e1f86f4cccc7a02b5ae705eb82e9f6.camel%40intelfx.name.