- Apr 08, 2018
-
-
Marc Vef authored
This is an optimization for mdtest which shows very slow performance in removing files, getting worse with an increasing number of nodes.
-
- Apr 06, 2018
-
-
Tommaso Tocci authored
Postpone the creation of the OpenFile object until we are sure that the file actually exists and we have enough access rigths for it.
-
Tommaso Tocci authored
Problem: In the case the path for which the check access is performed doesn't exists the server will set `out.err` with the correct error number (ENOENT). On client side the value of out.err is used as return value but the errno variable is not set.
-
- Apr 05, 2018
-
-
Marc Vef authored
Assert is put after a more detailed error message is written to the log.
-
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 03, 2018
-
-
Tommaso Tocci authored
Since POSIX.1-2001 the S_IFMT (0170000) bitmask of the file mode must contain the file type. At the moment we correctly support - [S_IFREG] regular file - [S_IFDIR] directory
-
- 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 25, 2018
-
-
Marc Vef authored
-
- Mar 23, 2018
-
-
Marc Vef authored
-
- Mar 22, 2018
-
-
Tommaso Tocci authored
-
Tommaso Tocci authored
target was the index of the cycle and target[target] was the actual identifier of the target. In some part of the code target was considered as the identifier directly. Now the index of the cycle is i and target is the actual identifier of the target.
-
Tommaso Tocci authored
-
Tommaso Tocci authored
The calculus (on clients) about the last chunk involved into a write/read operation was bugged. A new blocks_calc_util library has been introduced in order to make easier to perform this kind of calculus.
-
- 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
-
Marc Vef authored
-
Marc Vef authored
Before data was pulled first then written or read first and then pushed back
-
Marc Vef authored
Only use 1 segment now but with multiple transfers
-
- Mar 12, 2018
-
-
Tommaso Tocci authored
Use cmake in order to properly check and use both the Boost library and the pthread one.
-
- Mar 09, 2018
-
-
Marc Vef authored
-
Marc Vef authored
We need to be explicit about I/O as it cannot be simply repeated. A response from the daemon will come eventually, either success or failure.
-
Marc Vef authored
-
Marc Vef authored
-
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.
-
Marc Vef authored
-
- Mar 07, 2018
-
-
Marc Vef authored
-
Marc Vef authored
-
Marc Vef authored
- Previously the directory hierarchy was not clear regarding to which file belong to which part of the project (client or daemon). Further, we will have other clients in the future (such as Fuse). - CMake files now differentiate between include dirs for all targets and target specific ones. - Removed duplicate -pg flag. - Not listing header files when adding executables or libraries is considered bad practice. Note that include_directories() is adding include paths to the code while adding all files used for executables and libraries provide the context which files belong to each binary. When only include_directories() is set, CMake assumes that all files belong to a binary (which is not necessarily true). As a result, some IDEs may break as the do not support this assumption. In general we should almost always favor explicitness over implicitness.
-
- Mar 06, 2018
-
-
Tommaso Tocci authored
-
Tommaso Tocci authored
-
Tommaso Tocci authored
-
Tommaso Tocci authored
The preload specific cmake files inherits the global flag declarations, thus it is not necessary to specify again all the flags. Moreover the only addition made by this declaration is the `-fPIC` flag. According to the official CMake docs [1], is set automatically for library target as SHARED. Thus we don't need to set it explicitely. [1]: https://cmake.org/cmake/help/v3.6/prop_tgt/POSITION_INDEPENDENT_CODE.html
-
Tommaso Tocci authored
Subprojects specific CMakeLists.txt inherits directives from the main cmake file. Thus it is not necessary to replicate global level directives
-