Language Selection

English French German Italian Portuguese Spanish

Linux Filesystems

Filed under
Linux
Reiser
Movies
  • My assessment of “btrfs”

    In short: Novelist Stephen Elliott (James Franco) find himself drawn to the high-profile Hans Reiser (Christian Slater) murder trial - a case that brings him closer to his own troubled past with father (Ed Harris). Amber Heard, Wilmer Valderrama and Cynthia Nixon also star. (Watch the trailer)

  • The Adderall Diaries

    While Romanowsky gamely tries to negotiate the same structural tricks as the book, which employed the Reiser case as a base camp from which the author could depart and return, in the film it feels more like a subplot despite the cinematic tricks -- the cross-cutting and slo-mo flashbacks -- that the director uses to try to connect the stories. At times it feels flat, other times risible, and only occasionally do the stories resonate in any kind of harmony.

  • My assessment of “btrfs”

    Short version — I will continue to use “ext4” in future installs.

    Note that this a personal view, not a recommendation. My own choice depends on how I use computers and my practices for backup, recovery, etc. Your practices are likely different. Much of this post will be about my considerations in deciding against “btrfs” for my own use.

[via Susan]

More in Tux Machines

Red Hat: Kubernetes, 'Cloud', and GlusterFS 4.1.0 Release

  • Kubernetes StatefulSet In Action
    Recently, I stumbled upon a StackOverflow question around StatefulSets which made me wonder how well understood they are at large. So I decided to put together a simple stateful app that can be used to experiment with a StatefulSet. In this blog post we will have a closer look at this app and see it in action. If you’re not familiar with StatefulSets, now is a good time for a refresher, consulting the official docs concerning their usage and guarantees they provide.
  • The road to cloud-native applications
    As many organizations do not have the luxury of completely rebuilding their technology foundation or immediately adopting new practices and mindsets, they can embrace gradual yet fundamental shifts in culture, processes, and technology to help support greater velocity and agility. With software increasingly key to how users engage with businesses and how businesses can innovate to stay competitive, organizations should adapt to the new demands of the Digital Economy, such as speeding up application development and delivery. The cloud-native approach describes a way of modernizing existing applications and building new applications based on cloud principles, using services and adopting processes optimized for the agility and automation of cloud computing.
  • GlusterFS 4.1 Released With Performance Monitoring Improvements
    GlusterFS. the network-attached storage file-system focused on cloud computing and more that is developed by Red Hat, is up to version 4.1 as its newest release.
  • Announcing GlusterFS release 4.1.0 (Long Term Maintenance)
    The Gluster community is pleased to announce the release of 4.1, our latest long term supported release.
  • Release notes for Gluster 4.1.0
    This is a major release that includes a range of features enhancing management, performance, monitoring, and providing newer functionality like thin arbiters, cloud archival, time consistency. It also contains several bug fixes.

Games: XENONAUTS 2, Make Sail and More

Programming: Zapcc C++, PHP and Python

  • Some Compiler Performance Benchmarks With The Zapcc Caching Compiler
    Here are some quick benchmarks I ran this week of the newly open-sourced Zapcc C++ caching compiler based upon LLVM/Clang and compared to the upstream Clang performance, GCC, and Ccache with the speed on the original compilation of the benchmark code and then again on a subsequent compilation.
  • PHP 7.3.0 alpha 1 Released
    PHP team is glad to announce the release of the first PHP 7.3.0 version, PHP 7.3.0 Alpha 1. This starts the PHP 7.3 release cycle, the rough outline of which is specified in the PHP Wiki.
  • PHP 7.3 Alpha 2 Released With Many Bug Fixes
    Just shy of two weeks since PHP 7.3 went into alpha, the second alpha release of this upcoming annual feature release to the PHP programming language is now available. PHP 7.3 has been working on several new functions, WebP support within the image create from string function, improved PHP garbage collection, and a variety of other features and improvements. While PHP 7.3 is still open for new features, PHP 7.3 Alpha 2 comes with just bug fixes. Bug fixes for alpha two range from core fixes to various bugs in its ZIP, EXIF, Date, and CLI code, among other areas. The fixes are outlined here.
  • Python virtual environments
    In a short session at the 2018 Python Language Summit, Steve Dower brought up the shortcomings of Python virtual environments, which are meant to create isolated installations of the language and its modules. He said his presentation was "co-written with Twitter" and, indeed, most of his slides were of tweets. At the end, he also slipped in an announcement of his plans for hosting a core development sprint in September.
  • A Python static typing update
    One of the larger features added to Python over the last few releases is support for static typing in the language. Static type-checking and tools to support it show up frequently as topics at the Python Language Summit (PLS) and this year was no exception. Mypy developers Jukka Lehtosalo and Ivan Levkivskyi gave an update on static typing at PLS 2018. Lehtosalo started things off by talking about stub files, which contain type information for libraries and other modules. If you are going to type-check code that uses outside modules, from the standard library or a third-party library, the tool needs to understand the types used in the public interfaces of the library. The type-checking that can be done is limited if there are no stubs for the libraries used.
  • Linux distributions and Python 2
    Python 2.7 will reach its end of life in less than two years—at least for the core development team. Linux distributions need to figure out how to handle the transition given that many of their users are still using that version of the language—and may still be well beyond the end-of-life date. Petr Viktorin and Matthias Klose led a session at the 2018 Python Language Summit to discuss distributions' approaches to deprecating Python 2. Viktorin works for Red Hat and focused on the Fedora distribution. He wants to help figure out how to help the Python downstreams so that Python 2 can be fully discontinued. There are two different ways to do that; either make sure that everyone switches to Python 3 or simply deprecate Python 2 and "wash our hands" of the problem. He would prefer the first alternative. He will be working on this transition for Red Hat as part of his day job and would like to do it in the community as well; that will minimize the need to maintain Python 2 going forward.

Kernel Coverage at LWN (Outside Paywall Now)

  • XArray and the mainline
    The XArray data structure was the topic of the final filesystem track session at the 2018 Linux Storage, Filesystem, and Memory-Management Summit (LSFMM). XArray is a new API for the kernel's radix-tree data structure; the session was led by Matthew Wilcox, who created XArray. When asked by Dave Chinner if the session was intended to be a live review of the patches, Wilcox admitted with a grin that it might be "the only way to get a review on this damn patch set". In fact, the session was about the status of the patch set and its progress toward the mainline. Andrew Morton has taken the first eight cleanup patches, Wilcox said, which is great because there was a lot of churn there. The next set has a lot of churn as well, mostly due to renaming. The 15 patches after that actually implement XArray and apply it to the page cache. Those could be buggy, but they pass the radix-tree tests so, if they are, more tests are needed, he said.
  • Filesystem test suites
    While the 2018 Linux Storage, Filesystem, and Memory-Management Summit (LSFMM) filesystem track session was advertised as being a filesystem test suite "bakeoff", it actually focused on how to make the existing test suites more accessible. Kent Overstreet said that he has learned over the years that various filesystem developers have their own scripts for testing using QEMU and other tools. He and Ted Ts'o put the session together to try to share some of that information (and code) more widely. Most of the scripts and other code has not been polished or turned into a project, Overstreet continued. Bringing new people up to speed on the tests and how they are run takes time, but developers want to know how to run the tests before they send code to the maintainer.
  • Messiness in removing directories
    In the filesystem track at the 2018 Linux Storage, Filesystem, and Memory-Management Summit (LSFMM), Al Viro discussed some problems he has recently spotted in the implementation of rmdir(). He covered some of the history of that implementation and how things got to where they are now. He also described areas that needed to be checked because the problem may be present in different places in multiple filesystems. The fundamental problem is a race condition where operations can end up being performed on directories that have already been removed, which can lead to some rather "unpleasant" outcomes, Viro said. One warning, however: it was a difficult session to follow, with lots of gory details from deep inside the VFS, so it is quite possible that I have some (many?) of the details wrong here. Since LSFMM there has been no real discussion of the problem and its solution on the mailing lists that I have found.
  • Handling I/O errors in the kernel
    The kernel's handling of I/O errors was the topic of a discussion led by Matthew Wilcox at the 2018 Linux Storage, Filesystem, and Memory-Management Summit (LSFMM) in a combined storage and filesystem track session. At the start, he asked: "how is our error handling and what do we plan to do about it?" That led to a discussion between the developers present on the kinds of errors that can occur and on ways to handle them. Jeff Layton said that one basic problem occurs when there is an error during writeback; an application can read the block where the error occurred and get the old data without any kind of error. If the error was transient, data is lost. And if it is a permanent error, different filesystems handle it differently, which he thinks is a problem. Dave Chinner said that in order to have consistent behavior across filesystems, there needs to be a definition of what that behavior should be. There is a need to distinguish between transient and permanent failures and to create a taxonomy of how to deal with each type.
  • 4.18 Merge window, part 1
    As of this writing, 7,515 non-merge changesets have been pulled into the mainline repository for the 4.18 merge window. Things are clearly off to a strong start. The changes pulled this time around include more than the usual number of interesting new features; read on for the details.
  • Year-2038 work in 4.18
    We now have less than 20 years to wait until the time_t value used on 32-bit systems will overflow and create time-related mayhem across the planet. The grand plan for solving this problem was posted over three years ago now; progress since then has seemed slow. But quite a bit of work has happened deep inside the kernel and, in 4.18, some of the first work that will be visible to user space has been merged. The year-2038 problem is not yet solved, but things are moving in that direction. If 32-bit systems are to be able to handle times after January 2038, they will need to switch to a 64-bit version of the time_t type; the kernel will obviously need to support applications using that new type. Doing so in a way that doesn't break existing applications is going to require some careful work, though. In particular, the kernel must be able to successfully run a system where applications have been rebuilt to use a 64-bit time_t, but ancient binaries stuck on 32-bit time_t still exist; both applications should continue to work (though the old code may fail to handle times correctly). The first step is to recognize that most architectures already have support for applications running in both 64-bit and 32-bit modes in the form of the compatibility code used to run 32-bit applications on 64-bit systems. At some point, all systems will be 64-bit systems when it comes to time handling, so it makes sense to use the compatibility calls for older applications even on 32-bit systems. To that end, with 4.18, work has been done to allow both 32-bit and 64-bit versions of the time-related system calls to be built on all architectures. The CONFIG_64BIT_TIME configuration symbol controls the building of the 64-bit versions on 32-bit systems, while CONFIG_COMPAT_32BIT_TIME controls the 32-bit versions.