Sponsored Content
Operating Systems Solaris Concept of ZFS transaction semantics Post 302561103 by h@foorsa.biz on Monday 3rd of October 2011 06:59:00 AM
Old 10-03-2011
Transactional Semantics

ZFS is a transactional file system, which means that the file system state is always consistent on disk. Traditional file systems overwrite data in place, which means that if the machine loses power, for example, between the time a data block is allocated and when it is linked into a directory, the file system will be left in an inconsistent state. Historically, this problem was solved through the use of the fsck command. This command was responsible for going through and verifying file system state, making an attempt to repair any inconsistencies in the process. This problem caused great pain to administrators and was never guaranteed to fix all possible problems. More recently, file systems have introduced the concept of journaling. The journaling process records action in a separate journal, which can then be replayed safely if a system crash occurs. This process introduces unnecessary overhead, because the data needs to be written twice, and often results in a new set of problems, such as when the journal can't be replayed properly.

With a transactional file system, data is managed using copy on write semantics. Data is never overwritten, and any sequence of operations is either entirely committed or entirely ignored. This mechanism means that the file system can never be corrupted through accidental loss of power or a system crash. So, no need for a fsck equivalent exists. While the most recently written pieces of data might be lost, the file system itself will always be consistent. In addition, synchronous data (written using the O_DSYNC flag) is always guaranteed to be written before returning, so it is never lost.

In short words ,ZFS Transactional Semantics is intend to keep your data intact , safe and consistent state.
 

6 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

average transaction time

Hi all, I have large daily log file(s) that hold the times for requests and responses on different system requests. What I want to do is work out average transaction times for the day (one log = one day). The problem I'm having is figuring out how to skip rows, i've sorted the output by uniq... (2 Replies)
Discussion started by: nhatch
2 Replies

2. UNIX and Linux Applications

Got Errors while sending a transaction through ESB

We are getting below error when processing a transaction through ESB. I work for SOA admin and checked the JCA connection is working fine also code also working fine in other envs. An unhandled exception has been thrown in the ESB system. The exception reported is:... (1 Reply)
Discussion started by: KuldeepSinghTCS
1 Replies

3. Shell Programming and Scripting

Append transaction header lines to same transaction's detail lines

Hi guys, I was wondering if someone can give me a hand in helping me append transaction header line in a file at the end of the transaction detail lines. Basically, I have a file that looks like this: FHEAD File1 THEAD TRANS1-blah TDETL HI1 TDETL HI2 TDETL HI3 TTAIL TRANS1-blah THEAD... (3 Replies)
Discussion started by: rookie12
3 Replies

4. Shell Programming and Scripting

Process only files which have completed in transaction

Hi , I have a situation where I have to Process files ( move , edit or rename ) in a folder ..... This folder is a FTP folder and Files keep coming in when they are available ... So I should perform my actions on those which which completed transaction .. . Is there a way to identify a... (3 Replies)
Discussion started by: chillblue
3 Replies

5. Programming

Difference between BEGIN TRANSACTION & START TRANSACTION?

What's the difference between BEGIN TRANSACTION vs START TRANSACTION? Also goes for COMMIT TRANSACTION vs COMMIT? (0 Replies)
Discussion started by: dan139
0 Replies

6. AIX

Transaction based resources

How do I determine the resources needed based on volume of transactions. By resources I mean, the cores, memory etc. Is there a way to arrive at that value? (1 Reply)
Discussion started by: ggayathri
1 Replies
FSCK_HFS(8)                                                 BSD System Manager's Manual                                                FSCK_HFS(8)

NAME
fsck.hfs -- HFS file system consistency check SYNOPSIS
fsck.hfs -q [-df] special ... fsck.hfs -p [-df] special ... fsck.hfs [-n | -y | -r] [-dfgl] [-m mode] [-c size] special ... DESCRIPTION
The fsck.hfs utility verifies and repairs standard HFS and HFS+ file systems. The first form of fsck.hfs quickly checks the specified file systems to determine whether they were cleanly unmounted. The second form of fsck.hfs preens the specified file systems. It is normally started by fsck(8) during systen boot, when a HFS file system is detected. When preening file systems, fsck.hfs will fix common inconsistencies for file systems that were not unmounted cleanly. If more serious problems are found, fsck.hfs does not try to fix them, indicates that it was not successful, and exits. The third form of fsck.hfs checks the specified file systems and tries to repair all detected inconsistencies. If no options are specified fsck.hfs will always check and attempt to fix the specified file systems. The options are as follows: -c size Specify the size of the cache used by fsck.hfs internally. Bigger size can result in better performance but can result in deadlock when used with -l option. Size can be specified as a decimal, octal, or hexadecimal number. If the number ends with a ``k'', ``m'', or ``g'', the number is multiplied by 1024 (1K), 1048576 (1M), or 1073741824 (1G), respectively. -d Display debugging information. This option may provide useful information when fsck.hfs cannot repair a damaged file system. -f When used with the -p option, force fsck.hfs to check `clean' file systems, otherwise it means force fsck.hfs to check and repair journaled HFS+ file systems. -g Causes fsck.hfs to generate its output strings in GUI format. This option is used when another application with a graphical user interface (like Mac OS X Disk Utility) is invoking the fsck.hfs tool. -l Lock down the file system and perform a test-only check. This makes it possible to check a file system that is currently mounted, although no repairs can be made. -m mode Mode is an octal number that will be used to set the permissions for the lost+found directory when it is created. The lost+found directory is only created when a volume is repaired and orphaned files or directories are detected. fsck.hfs places orphaned files and directories into the lost+found directory (located at the root of the volume). The default mode is 01777. -p Preen the specified file systems. -q Causes fsck.hfs to quickly check whether the volume was unmounted cleanly. If the volume was unmounted cleanly, then the exit status is 0. If the volume was not unmounted cleanly, then the exit status will be non-zero. In either case, a message is printed to standard output describing whether the volume was clean or dirty. -y Always attempt to repair any damage that is found. -n Never attempt to repair any damage that is found. -r Rebuild the catalog file on the specified file system. This option currently will only work if there is enough contiguous space on the specified file system for a new catalog file and if there is no damage to the leaf nodes in the existing catalog file. SEE ALSO
fsck(8) BUGS
fsck.hfs is not able to fix some inconsistencies that it detects. HISTORY
The fsck.hfs command appeared in Mac OS X Server 1.0 . Mac OS X November 21, 2002 Mac OS X
All times are GMT -4. The time now is 09:09 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy