- Feb 07, 2020
-
-
Marc Vef authored
Restructuring code w.r.t. configurations and definitions: - #defines have been mostly removed from configurations - a dedicated config file has been added for configurations with constexpr - past configure file is now only a cmake wrapper - wrapping global functions into namespaces Removed all adafs and ifs occurrences. Now called gkfs
-
- Sep 09, 2019
-
-
Alberto Miranda authored
-
- Sep 06, 2019
-
-
Alberto Miranda authored
-
- Jul 04, 2019
-
-
Tommaso Tocci authored
-
- Jun 28, 2019
-
-
Tommaso Tocci authored
- Use regular expression to parse lines - More consistent error handling - More comprehensive error messages
-
- Apr 24, 2019
-
-
Tommaso Tocci authored
-
- Apr 10, 2019
-
-
Tommaso Tocci authored
-
- Apr 03, 2019
-
-
Tommaso Tocci authored
We now use getaddrinfo syscall instead of parsing /etc/hosts in order to resolve hostnames
-
Tommaso Tocci authored
For some comunication layers an out of band communication is required for putting in place the specific protocol handshake. In those case a shared lookup file could be used to distribute deamon's endpoints information to all the clients. This file need to resides on a shared filesystem and can be specified using the new CLI parameter `--lookup-file`.
-
- Mar 06, 2019
-
-
Tommaso Tocci authored
The access RPC have been removed. The POSIX access functionality now is implemented through the stat RPC. This makes code easier to maintain and modify. There would be a little performance degradation on the POSIX access function because we are now retrieving also the metadata associated to the file. This change makes a lot easier to add symlink support
-
- Mar 05, 2019
-
-
Tommaso Tocci authored
-
Tommaso Tocci authored
-
- Jan 31, 2019
-
-
Tommaso Tocci authored
- improved statfs system call - intercepted statvfs library call Both of the above function now report the aggregated real size of all the data-nodes. You can test this with `df "/tmp/gekkofs_mountpoint"` command
-
- Nov 26, 2018
-
-
Tommaso Tocci authored
-
Tommaso Tocci authored
-
- Nov 07, 2018
-
-
Tommaso Tocci authored
the functionality wasn't used at all and it will be implemented later with a different approach
-
- Nov 03, 2018
-
-
Tommaso Tocci authored
-
- Oct 31, 2018
-
-
Tommaso Tocci authored
Some of the variables of stat struct are not initialized, thus they will remains will unpredictable junks data from memory. This random values could induct strange behaviours on user applications. Even if we don't support some of the fields in the struct stat, it is necessary to set them to some default value.
-
Tommaso Tocci authored
According to the glibc [1] the stat64 function family would be called only on 32-bit machine. To be sure we still intercept the function, but we now throw a NOTSUP error. In this way we can drop the adafs_stat64 function and implement just the logic to populate the `struct stat`. [1]: https://github.molgen.mpg.de/git-mirror/glibc/blob/20003c49884422da7ffbc459cdeee768a6fee07b/sysdeps/unix/sysv/linux/generic/xstat.c#L46
-
Tommaso Tocci authored
Implemented all the logic to handle truncate operation. Test: added truncate test
-
Tommaso Tocci authored
Mercury now support shared memory autorouting. A single margo instance can be initialized and it will handle both shared memory communication and remote ones. If the endpoint of the RPC is local mercury will automatically use shared memory. Since there is only one margo instance all the duplicated code for rpc/ipc have been unified and simplified considerably. ------ The way in which client contact the server has changed. - Server initializes its own margo instance and generate the endpoint communication string using `HG_Addr_self`. - This endpoint description string is written on the pid file - When the client library loads it will fetch the server endpoint description from the pid file and will use that to contact the server.
-
- Oct 29, 2018
-
-
Tommaso Tocci authored
ensure rpc_addresses object have been initialized before we use it for the first time
-
Tommaso Tocci authored
-
- May 17, 2018
-
-
Tommaso Tocci authored
-
- May 10, 2018
-
-
Tommaso Tocci authored
Support for the following calls has been added: - opendir - readdir - closedir The readdir call use the new RPC get_dirents that ask to all the nodes (broadcast) about all the existing first-level entries of a specific directory.
-
Tommaso Tocci authored
-
- May 08, 2018
-
-
Tommaso Tocci authored
-
Tommaso Tocci authored
-
Tommaso Tocci authored
-
Tommaso Tocci authored
-
Tommaso Tocci authored
The new PreloadContext class is used as singleton to store the general context information of the interception library. The plan is to move global accessed variables into this sigleton. At the moment just the logger object has been moved into it.
-
- Apr 05, 2018
-
-
Marc Vef authored
Previously, host rpc addresses have been looked up lazily when a request was done. This is not necessary as all hosts are looked up anyways while the file system is running. Now, all RPC addresses are looked up when the environment is initialized. After that, the rpc_address map is only accessed read-only and does not require a mutex anymore.
-
- Apr 02, 2018
-
-
Marc Vef authored
Previously, clients would look for the daemon by name which was not robust. If the daemon was started with valgrind for example, clients would not find the daemon. Similar to other applications a daemon now creates a pid file with information about its pid and its started mountdir. Proper errorhandling on server and client side was added. Multiple daemons per node are explicitly not allowed for now!
-
- Mar 19, 2018
- Mar 15, 2018
-
-
Marc Vef authored
The LRU map caused multiple issues with memory mappings and caused severe errors and hanging situations. It has been replaced with a std::map. An Argobots mutex was added for rpc address lookups as many threads might insert and lookup this map in parallel. This caused bulk_transfer seqfauls as well as other file system crashes. Cleanup of file system logging.
-
Marc Vef authored
-
- Mar 09, 2018
-
-
Marc Vef authored
Previously, an ES was created for each destination in each read or write. Creating and freeing these ES is costly. Also, these ESs had separate pools, which is bad practice. Multiple ESs work on a single pool. The ABT_sched decides which ULT or Tasklet is run by which ES at any time. This change does also reduce CPU load as library IO RPC calls used CPU time while waiting for the response.
-
- Mar 07, 2018
-
-
Marc Vef authored
-
- Mar 02, 2018
-
-
Marc Vef authored
-