Jump to content

Block (data storage): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
short description, link
Tags: Mobile edit Mobile app edit iOS app edit
Reverting edit(s) by DAODAO HAN (talk) to rev. 1219198976 by Kpgjhpjm: Using Wikipedia for advertising and/or promotion is not permitted. (RW 16.1)
 
(10 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{short description|Sequence of bits or bytes of a maximum predetermined size}}
{{Short description|Sequence of bits or bytes of a maximum predetermined size}}
{{About|the computer input/output technique|the process scheduling concept|Blocking (computing)}}
{{About|the computer input/output technique|the process scheduling concept|Blocking (computing)}}
{{Distinguish|Page (computer memory)|Bank (computer memory)}}
{{Distinguish|Page (computer memory)|Bank (computer memory)}}
Line 5: Line 5:
{{Use dmy dates|date=March 2020|cs1-dates=y}}
{{Use dmy dates|date=March 2020|cs1-dates=y}}


In [[computing]] (specifically [[data transmission]] and [[computer storage|data storage]]), a '''block''',<ref name="Buchholz_1962"/> sometimes called a '''physical record''', is a sequence of [[byte]]s or [[bit]]s, usually containing some whole number of [[record (computer science)|record]]s, having a maximum length; a ''block size''.<ref name="CNET14"/> Data thus [[Data structure|structured]] are said to be ''blocked''. The process of putting data into blocks is called ''blocking'', while ''deblocking'' is the process of extracting data from blocks. Blocked data is normally stored in a [[data buffer]], and read or written a whole block at a time. Blocking reduces the [[overhead (computing)|overhead]] and speeds up the handling of the [[data stream]].<ref name="Chang"/> For some devices, such as magnetic tape and [[Count Key Data|CKD disk device]]s, blocking reduces the amount of external storage required for the data. Blocking is almost universally employed when storing data to [[9 track tape|9-track]] [[magnetic tape]], NAND [[flash memory]], and rotating media such as [[floppy disk]]s, [[hard disk]]s, and [[optical disc]]s.
In [[computing]] (specifically [[data transmission]] and [[computer storage|data storage]]), a '''block''',<ref name="Buchholz_1962"/> sometimes called a '''physical record''', is a sequence of [[byte]]s or [[bit]]s, usually containing some whole number of [[record (computer science)|record]]s, having a maximum length; a ''block size''.<ref name="CNET14"/> Data thus [[Data structure|structured]] are said to be ''blocked''. The process of putting data into blocks is called ''blocking'', while ''deblocking'' is the process of extracting data from blocks. Blocked data is normally stored in a [[data buffer]], and read or written a whole block at a time. Blocking reduces the [[overhead (computing)|overhead]] and speeds up the handling of the [[data stream]].<ref name="Chang"/> For some devices, such as magnetic tape and [[Count Key Data|CKD disk device]]s, blocking reduces the amount of external storage required for the data. Blocking is almost universally employed when storing data to [[9-track tape|9-track]] [[magnetic tape]], NAND [[flash memory]], and rotating media such as [[floppy disk]]s, [[hard disk]]s, and [[optical disc]]s.


Most [[file system]]s are based on a [[block device]], which is a level of [[abstraction (computer science)|abstraction]] for the hardware responsible for storing and retrieving specified blocks of data, though the block size in file systems may be a multiple of the physical block size. This leads to space inefficiency due to [[internal fragmentation]], since file lengths are often not integer multiples of block size, and thus the last block of a file may remain partially empty. This will create [[slack space]]. Some newer file systems, such as [[Btrfs]] and [[FreeBSD]] [[Unix File System|UFS2]], attempt to solve this through techniques called [[block suballocation|block suballocation and tail merging]]. Other file systems such as [[ZFS]] support variable block sizes.<ref name="ZFS1"/><ref name="ZFS2"/>
Most [[file system]]s are based on a [[block device]], which is a level of [[abstraction (computer science)|abstraction]] for the hardware responsible for storing and retrieving specified blocks of data, though the block size in file systems may be a multiple of the physical block size. This leads to space inefficiency due to [[internal fragmentation]], since file lengths are often not integer multiples of block size, and thus the last block of a file may remain partially empty. This will create [[slack space]]. Some newer file systems, such as [[Btrfs]] and [[FreeBSD]] [[Unix File System|UFS2]], attempt to solve this through techniques called [[block suballocation|block suballocation and tail merging]]. Other file systems such as [[ZFS]] support variable block sizes.<ref name="ZFS1"/><ref name="ZFS2"/>

Latest revision as of 03:02, 17 April 2024

In computing (specifically data transmission and data storage), a block,[1] sometimes called a physical record, is a sequence of bytes or bits, usually containing some whole number of records, having a maximum length; a block size.[2] Data thus structured are said to be blocked. The process of putting data into blocks is called blocking, while deblocking is the process of extracting data from blocks. Blocked data is normally stored in a data buffer, and read or written a whole block at a time. Blocking reduces the overhead and speeds up the handling of the data stream.[3] For some devices, such as magnetic tape and CKD disk devices, blocking reduces the amount of external storage required for the data. Blocking is almost universally employed when storing data to 9-track magnetic tape, NAND flash memory, and rotating media such as floppy disks, hard disks, and optical discs.

Most file systems are based on a block device, which is a level of abstraction for the hardware responsible for storing and retrieving specified blocks of data, though the block size in file systems may be a multiple of the physical block size. This leads to space inefficiency due to internal fragmentation, since file lengths are often not integer multiples of block size, and thus the last block of a file may remain partially empty. This will create slack space. Some newer file systems, such as Btrfs and FreeBSD UFS2, attempt to solve this through techniques called block suballocation and tail merging. Other file systems such as ZFS support variable block sizes.[4][5]

Block storage is normally abstracted by a file system or database management system (DBMS) for use by applications and end users. The physical or logical volumes accessed via block I/O may be devices internal to a server, directly attached via SCSI or Fibre Channel, or distant devices accessed via a storage area network (SAN) using a protocol such as iSCSI, or AoE. DBMSes often use their own block I/O for improved performance and recoverability as compared to layering the DBMS on top of a file system.

References

[edit]
  1. ^ Blaauw, Gerrit Anne; Brooks, Jr., Frederick Phillips; Buchholz, Werner (1962), "4: Natural Data Units" (PDF), in Buchholz, Werner (ed.), Planning a Computer System – Project Stretch, McGraw-Hill Book Company, Inc. / The Maple Press Company, York, PA., pp. 39–40, LCCN 61-10466, archived (PDF) from the original on 2017-04-03, retrieved 2017-04-03, […] Terms used here to describe the structure imposed by the machine design, in addition to bit, are listed below.
    Byte denotes a group of bits used to encode a character, or the number of bits transmitted in parallel to and from input-output units. A term other than character is used here because a given character may be represented in different applications by more than one code, and different codes may use different numbers of bits (i.e., different byte sizes). In input-output transmission the grouping of bits may be completely arbitrary and have no relation to actual characters. (The term is coined from bite, but respelled to avoid accidental mutation to bit.)
    A word consists of the number of data bits transmitted in parallel from or to memory in one memory cycle. Word size is thus defined as a structural property of the memory. (The term catena was coined for this purpose by the designers of the Bull GAMMA 60 [fr] computer.)
    Block refers to the number of words transmitted to or from an input-output unit in response to a single input-output instruction. Block size is a structural property of an input-output unit; it may have been fixed by the design or left to be varied by the program. […]
  2. ^ "Available hard drive space, block sizes, and size terminology". CNET. 2009-05-05. Retrieved 2014-04-29.
  3. ^ Chang, S. K. "Physical Structures". Captain SK. Retrieved 2014-04-29.
  4. ^ Balik, Rachel (2013-03-29). "Bruning Questions: ZFS Record Size". Joyent. Retrieved 2013-03-29.
  5. ^ Bourbonnais, Roch (2006-06-07). "Tuning ZFS recordsize". Oracle.