sdslabs/gasper

Implement re-scheduling of databases

alphadose opened this issue · 5 comments

One possible way is to use network mounted volumes using https://github.com/chrislusf/seaweedfs or https://godoc.org/github.com/control-center/serviced/dfs/nfs

In this manner, databases would survive node failure

@supra08 are we going to use one of the above file system?

Yeah last time I checked when this issue was created, seaweedfs looked quite promising. Probably the mentee will put in some more research before heading into this issue.

yeah , Docs too is better for seaweedfs.

I am working on SeaweedFS. Just let me know if I can help anything here.

Hey @chrislusf ! Thanks for showing interest in our project!
I have set up functionality in the code base to deploy docker containers to run the SeaweedFS service and also written docker images that then mount the working directory onto seaweedFS before starting the database. However, MongoDB's container gives this error when I try to run it :
This is SeaweedFS version 30GB 2.08 9b10d1a linux amd64 mount point owner uid=100 gid=0 mode=drwxr-xr-x I1123 14:12:08 6 leveldb_store.go:40] filer store dir: /tmp/8190/meta I1123 14:12:08 6 file_util.go:23] Folder /tmp/8190/meta Permission: -rwxr-xr-x I1123 14:12:08 6 mount_std.go:207] mounted 127.0.0.1:8888/mongodb to /data/db 2020-11-23T14:12:13.308+0000 I CONTROL [initandlisten] MongoDB starting : pid=23 port=27017 dbpath=/data/db 64-bit host=docker-desktop 2020-11-23T14:12:13.308+0000 I CONTROL [initandlisten] db version v3.4.4 2020-11-23T14:12:13.308+0000 I CONTROL [initandlisten] git version: 888390515874a9debd1b6c5d36559ca86b44babd 2020-11-23T14:12:13.308+0000 I CONTROL [initandlisten] OpenSSL version: LibreSSL 2.5.5 2020-11-23T14:12:13.308+0000 I CONTROL [initandlisten] allocator: system 2020-11-23T14:12:13.308+0000 I CONTROL [initandlisten] modules: none 2020-11-23T14:12:13.308+0000 I CONTROL [initandlisten] build environment: 2020-11-23T14:12:13.308+0000 I CONTROL [initandlisten] distarch: x86_64 2020-11-23T14:12:13.308+0000 I CONTROL [initandlisten] target_arch: x86_64 2020-11-23T14:12:13.308+0000 I CONTROL [initandlisten] options: {} 2020-11-23T14:12:13.316+0000 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=480M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0), 2020-11-23T14:12:14.614+0000 E STORAGE [initandlisten] WiredTiger error (0) [1606140734:614429][23:0x7fd987756dc0], file:WiredTiger.wt, WT_CURSOR.next: WiredTiger.turtle: encountered an illegal file format or internal value 2020-11-23T14:12:14.614+0000 E STORAGE [initandlisten] WiredTiger error (-31804) [1606140734:614485][23:0x7fd987756dc0], file:WiredTiger.wt, WT_CURSOR.next: the process must exit and restart: WT_PANIC: WiredTiger library panic 2020-11-23T14:12:14.614+0000 I - [initandlisten] Fatal Assertion 28558 at src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp 361 2020-11-23T14:12:14.614+0000 I - [initandlisten] ***aborting after fassert() failure 2020-11-23T14:12:14.614+0000 F - [initandlisten] Got signal: 6 (Aborted).
You can find the code for the same on this branch : https://github.com/sdslabs/gasper/tree/network-mounted-volumes-dockerized . Also the docker files that I have written can be found here : https://github.com/sdslabs/gasper-dockerfiles/tree/network-mounted-volumes .
It would be great if you could tell me where I'm going wrong.