GB2444083A - Distributed Data Allocation System - Google Patents

Distributed Data Allocation System Download PDF

Info

Publication number
GB2444083A
GB2444083A GB0617526A GB0617526A GB2444083A GB 2444083 A GB2444083 A GB 2444083A GB 0617526 A GB0617526 A GB 0617526A GB 0617526 A GB0617526 A GB 0617526A GB 2444083 A GB2444083 A GB 2444083A
Authority
GB
United Kingdom
Prior art keywords
store
storage locations
operating devices
storage
unused
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB0617526A
Other versions
GB2444083B (en
GB0617526D0 (en
Inventor
Simon Darryl Rogers
Robin Alexander Cawley
George William Catlow
Charles Murray Tolman
James Westland Cain
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Quantel Ltd
Original Assignee
Quantel Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Quantel Ltd filed Critical Quantel Ltd
Priority to GB0617526A priority Critical patent/GB2444083B/en
Publication of GB0617526D0 publication Critical patent/GB0617526D0/en
Priority to PCT/GB2007/003306 priority patent/WO2008029099A1/en
Publication of GB2444083A publication Critical patent/GB2444083A/en
Application granted granted Critical
Publication of GB2444083B publication Critical patent/GB2444083B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

The invention is related to allocating storage space for data shared between a plurality of data processing devices. Each of the devices provides an indication of storage locations unused by that device and receives corresponding indications from each of the other devices. This is used to determine free locations not used by any of said devices, and allocates said free locations. A further embodiment of the invention relates to storing video data on a frame-by-frame basis - each data unit comprises a frame of video information.

Description

1 2444083 Distributed Data Al location System This invention provides a
system for the distribution of data from plural client locations into a shared electronic storage facility, from which facility stored data may be retrieved and used at any of the client locations. The invention also provides a method of operating such a system.
Major electronic storage facilities, such as large disk stores used in association with video editing suites, demand powerful management of the distribution to and storage of data therein to ensure that efficient use is made of their extensive but expensive storage capacity.
Quantel currently uses a system, called "Frame Magic", to manage the allocation of disk space. This system requires a defined unit of minimum size, such that a composite data allocation, such as a video clip, can be divided into such units, each of which is stored at a respective and unique address in the store, which address is thereafter, for convenience, used as the identity of the unit. It will be appreciated that a clip comprises an assemblage of such units, and that parts of clips may be edited together, making new ci ips.
The act of editing clips together can, and often does, create clips that share at least some of the units.
Frame Magic uses a reference counting mechanism to manage the lifetime of shared units; each unit having associated therewith a reference count, indicating the number of clips currently including that unit.
Frame Magic keeps a central map of disk space in the system, with contiguous disk addresses that have the same reference count maintained as a single run length coded entry. Frame Magic also keeps a map of free storage space, comprising those addresses of the central map that have reference counts of zero; in this respect it will be appreciated that some addresses may have reference counts of zero because they have never previously been allocated for data storage, whilst others may have been previously allocated for the storage of data that is no longer used.
When some disk space is requested by an editing suite, for a newly received and/or edited clip, for example, Frame Magic makes an allocation of storage addresses sufficient to accommodate all new units contained in the clip by selecting an appropriate number of storage addresses from the free space map, and updates the reference counts in the disk space map to reflect their usage.
It will be appreciated that, whereas the creation of a new clip using any given unit already stored will cause the reference count for that particular stored unit to increase, the deletion of a clip incorporating any given stored unit will decrement the reference count for that particular stored unit. When the reference count for a stored unit decrements to zero, this indicates that no clips incorporating that unit are currently in use, so the storage location associated with that unit is de-allocated", by returning its address back to the free space map.
Difficulties arise in adapting systems such as Frame Magic to s accommodate shared usage of the storage facility by plural client devices (e.g. plural editing suites), and it is an object of the invention to address such difficulties.
According to one aspect of the invention, therefore, there is provided a data allocation system for allocating storage space in a store shared by a plurality of operating devices; the store having associated therewith distribution means for selectively distributing data units to respective storage locations of the store in dependence upon a determination of availability of said storage locations; wherein each said operating device includes a respective evaluating means for identifying storage locations of said store currently unused by that operating device and disclosure means for providing a listing of storage locations so identified, interrogation means for interrogating the disclosure means of all of the other operating devices in the system to obtain said listings therefrom, and combining means for logically combining the listings obtained from the other operating devices with the unused storage locations identified by its own evaluating means to determine a full listing of storage space in the shared store that is currently unused by any of said operating devices; said full listing constituting said determination and enabling said distribution means to distribute data units originating from any of said operating devices to respective unused storage locations of said store.
In one preferred embodiment of the invention, the operating devices are video editing suites and the data units represent video information. The video information may comprise edited material and/or otherwise processed or unprocessed material.
It is preferred, though not essential, that the storage of video information is implemented on a frame-by-frame basis, with each said data unit comprising a frame of video information.
In preferred embodiments of the invention, the degree of use of data units held in the store is indicated by respective reference counts associated with the various storage locations; the reference count for a given storage location being increased each time a data unit stored at that location is accessed by an operating device and decremented each time a data unit stored at that location is discarded by an operating device.
In such preferred embodiments, a storage location having a reference count of zero associated therewith is indicated as being available for data unit distribution thereto. A zero count in respect of any storage location indicates either that no data unit has previously been distributed to that storage location or that any data units so distributed have been discarded by all of the operating devices sharing the store.
Moreover, in some preferred embodiments of the invention, no distribution of data units to the store is considered complete until the reference counts associated with the subject storage locations are registered as non-zero.
It is preferred that each operating device maintains a copy of the last known information identifying storage locations unused by each of the other operating devices. By this means it is ensured that non-availability of current information from any one operating device does not delay the distribution of data units originating from any of the other operating devices to respective unused storage locations of said store.
The store may comprise a unitary store, for example a single disk or other electronic store of any convenient kind. Alternatively, an array of disks and/or other electronic stores can be used if capacity or convenience so dictates.
According to the invention from another aspect there is provided a method of allocating storage space in a store shared by a plurality of operating devices; the method comprising the steps of: selectively distributing data units to respective storage locations of the store in dependence upon a determination of availability of said storage locations; identifying storage locations of said store currently unused by each operating device individually and providing information listing said unused storage locations, interrogating all of the other operating devices to obtain listing information therefrom, and logically combining the listing information obtained from all operating devices to determine a listing of storage locations in the shared store currently unused by any operating device, thereby providing said determination, and utilising said determination to distribute data units originating from any of said operating devices to respective unused storage locations of said store.
In order that the invention may be clearly understood and readily carried into effect, one embodiment thereof will now be described, by way of example only, with reference to the accompanying drawings, of which: Figure 1 shows, in schematic and block-diagrammatic form, a system in accordance with one embodiment of the invention; Figure 2 shows a flow diagram explanatory of the operation of the is system shown in and described with reference to Figure 1, and an operational methodology therefor; and Figure 3 shows a sequence diagram illustrative of the operation of the embodiment of the invention described with reference to Figures 1 and 2.
The embodiment of the invention shown in Figure 1 provides a distributed system providing storage allocation management which allows plural client devices 20, 30, 40 and 50 to share a common storage facility 10, in this case a disk, or an array of disks, such that each client device honours storage allocations of the other devices, even in the face of device failure.
The system does not require a central authority (such as a central server), as it uses peer-to-peer communication to control allocations of storage space.
Each client device such as 20 is in communication not only with the common storage facility 10 (as indicated by the connections 12, 13, 14 and 15 each of which, in practice, is constituted by a digital data bus), but also with its peers via an interconnecting bus 23, 34, which links all of the client devices 20, 30, 40 and 50 together for digital communication.
Thus, whenever one client device such as 20 requires an allocation of storage capacity, a request is generated which seeks from each peer client device 30, 40 and 50 a list of all the storage addresses on the disk 10, or in the disk array, which that peer is not currently using. That is, a list of all storage addresses which do not contain data units currently employed in clips maintained or in process on that client device. The client device 20 requesting the allocation of storage space on the shared disk 10 (or in the shared disk array) then logically "ANDS" together its free spaces and the free spaces listed by at I of its peer devices 30, 40 and 50, producing a true free space list; i.e. a list of all disk addresses which are either empty (i.e. have not previously been allocated) or which contain data units that are no longer in use by any of the client devices (and can thus be safely over-written).
This procedure takes advantage of some of the properties of reference counting, since all storage addresses included in the true free space list have, by definition, reference counts of zero.
s A client device (say 20) requesting an allocation of storage addresses may take the free space list of any of its peer devices 30, 40 or 50 and logically "NOT" it to infer all the space that the other device is currently using. However the requesting client device has no interest in the actual reference counts of the space in use by its peer. The free space list of the other device is never mutated by the device requesting an allocation of storage addresses, so no integer counts are required to pass between machines.
As usual with Frame Magic, each client device such as 20 keeps its own reference count based upon the clips in its own database.
When all clips containing a given unit are finished with, the reference count drops to zero, and the address of that unit is returned to the free space list on that device. However such freed-up disk addresses are not available for re-allocation until they are included in the free space lists of all peer devices.
A main benefit of the distributed system described herein is that it takes advantage of the reference counting mechanism of Frame Magic without requiring any exposure, as between peers, of the highly volatile reference counts themselves. The structure exploits the fact that editing clips is performed relatively frequently, whereas allocation of new space is performed relatively infrequently, i.e. only as and when finished clips are accepted.
Further, allocation implies a movement of some media which is orders of magnitude more costly than the allocation itself.
Another benefit of the distributed system is that disk storage addresses, once allocated, are not left "orphaned" by client devices reserving them and then losing their reference to them (a situation known as "leaking"). Each client is asked what storage addresses it is actually using in a dynamic on-going exchange of to communication with its peers.
Each client device maintains a copy of the last known free space list for each of its peers, so that non-availability of a peer will not delay an allocation of storage addresses. An allocation is not treated as complete until the operational control system driving the central disk (or disk array) confirms the allocation by way of its reference counts. As each peer restarts, it re-creates its own free space list out of the storage addresses that have been confirmed in a database. Therefore any allocations it may have requested, but which have not been confirmed, are automatically marked as free.
A central database would not have this property, and would require some sort of client reconcile process to recover such leaked space.
Figure 2 shows a flow diagram representative of the operation of the system just described.
Following a formal request for storage initiated at 101 by one of the client devices 20, 30, 40 or 50 the system checks at 102 whether the allocation system has been temporarily locked in response to a precedent request issued by one of the other client devices. If the system is locked, the formal request is resubmitted after a delay imposed in a loop 103 and the process re-starts.
If the system is not currently locked, a locking signal is broadcast at 104, to prevent clashes with subsequent requests issued by any of the other client devices, and the inter-client communication bus 23, 34, 45 is interrogated at step 105 to secure from each peer device a list of all storage locations in the common store 10 which, as far as that peer device is concerned, are free. A check is made at step 106 as to whether all peer devices have responded and, if any of the peer devices fails to provide a list at this point, its last-known list of free spaces is derived from the system at step 107.
In any event, all free-space lists are merged at step 108 in accordance with an AND function, to generate the aforementioned true free space list, on the basis of which a self-allocation of the requisite number of free spaces in the common store 10 is made at step 109; this allocation being confirmed at 110 when the data are actually deposited into the storage addresses requested.
If the deposition is confirmed, the reference counts for the relevant storage addresses in the common store 10 are up-dated at 111 following which step an unlocking signal is broadcast at 112 to release the system for further allocations.
In the event that the allocation is not confirmed at step 110, the system is unlocked without any change to the reference counts via the connection 113.
Figure 3 shows a sequence diagram illustrating the implementation of a specific algorithm for an atlocation of video data to a store in accordance with the system and method described hereinbefore.

Claims (14)

  1. Claims: 1. A data allocation system for allocating storage space in a
    store shared by a plurality of operating devices; the store having associated therewith distribution means for selectively distributing data units to respective storage locations of the store in dependence upon a determination of availability of said storage locations; wherein each said operating device includes a respective evaluating means for identifying storage locations of said store currently unused by that operating device and disclosure means for providing a listing of storage locations so identified, interrogation means for interrogating the disclosure means of all of the other operating devices in the system to obtain said listings therefrom, and combining means for logically combining the listings obtained from the other operating devices with the unused storage locations identified by its own evaluating means to determine a full listing of storage space in the shared store that is currently unused by any of said operating devices; said full listing constituting said determination and enabling said distribution means to distribute data units originating from any of said operating devices to respective unused storage locations of said store.
  2. 2. A system according to claim 1, wherein each of said operating devices comprises a video editing suite and the data units represent video information.
  3. 3. A system according to claim 2, wherein the video information comprises edited material and/or otherwise processed or unprocessed material.
  4. 4. A system according to claim 2 or claim 3, further including means for storing said video information on a frame-by-frame basis, with each said data unit comprising a frame of video information.
  5. 5. A system according to any preceding claim, further comprising means for indicating the degree of use of data units held in the store by respective reference counts associated with the various storage locations.
  6. 6. A system according to claim 5, wherein the means for indicating is configured such that the reference count for a given storage location is increased each time a data unit stored at that location is accessed by an operating device and decremented each time a data unit stored at that location is discarded by an operating device.
  7. 7. A system according to claim 5 or claim 6, wherein a storage location having a reference count of zero associated therewith is indicated as being available for data unit distribution thereto.
  8. 8. A system according to claim 7, comprising further means for confirming a distribution of data units to the store as complete once the reference counts associated with the subject storage locations are registered as non-zero.
  9. 9. A system according to any preceding claim, wherein each operating device comprises a memory adapted to maintain a copy of the last known information identifying storage locations unused by each of the other operating devices, whereby non-availability of current information from any one operating device does not delay the distribution of data units originating from any of the other operating devices to respective unused storage locations of said store.
  10. 10. A system according to any preceding claim, wherein said store comprises a unitary store in the form of a single disk or other electronic store.
  11. II. A system according to any of claims 1 to 9, wherein said store comprises an array of disks and/or other electronic stores.
  12. 12. A distributed data allocation system substantially as herein described with reference to and/or as shown in the accompanying drawings.
  13. 13. A method of allocating storage space in a store shared by a plurality of operating devices; the method comprising the steps of: selectively distributing data units to respective storage locations of the store in dependence upon a determination of availability of said storage locations; identifying storage locations of said store currently unused by each operating device individually and providing information listing said unused storage locations, interrogating all of the other operating devices to obtain listing information therefrom, and logically combining the listing information obtained from all operating devices to determine a listing of storage locations in the shared store currently unused by any operating device, thereby providing said determination, and utilising said determination to distribute data units originating from any of said operating devices to respective unused storage locations of said store.
  14. 14. A method, substantially as herein described with reference to and/or as shown in the accompanying drawings, of allocating storage space in a store shared by a plurality of operating devices.
GB0617526A 2006-09-05 2006-09-05 Distributed data allocation system Expired - Fee Related GB2444083B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
GB0617526A GB2444083B (en) 2006-09-05 2006-09-05 Distributed data allocation system
PCT/GB2007/003306 WO2008029099A1 (en) 2006-09-05 2007-09-03 Distributed data allocation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0617526A GB2444083B (en) 2006-09-05 2006-09-05 Distributed data allocation system

Publications (3)

Publication Number Publication Date
GB0617526D0 GB0617526D0 (en) 2006-10-18
GB2444083A true GB2444083A (en) 2008-05-28
GB2444083B GB2444083B (en) 2011-06-29

Family

ID=37232445

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0617526A Expired - Fee Related GB2444083B (en) 2006-09-05 2006-09-05 Distributed data allocation system

Country Status (2)

Country Link
GB (1) GB2444083B (en)
WO (1) WO2008029099A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0909912D0 (en) 2009-06-09 2009-07-22 Univ Dundee Compounds
US9668100B2 (en) 2015-04-03 2017-05-30 International Business Machines Corporation Locating misplaced mobile computing devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912629A (en) * 1986-06-26 1990-03-27 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Real-time garbage collection for list processing using restructured cells for increased reference counter size
US20040101271A1 (en) * 2002-11-21 2004-05-27 International Business Machines Corporation Personal video recording with storage space distributed among remote personal video recorders
US20040199507A1 (en) * 2003-04-04 2004-10-07 Roger Tawa Indexing media files in a distributed, multi-user system for managing and editing digital media

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2273220B (en) * 1992-12-07 1997-01-08 Quantel Ltd A video processing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912629A (en) * 1986-06-26 1990-03-27 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Real-time garbage collection for list processing using restructured cells for increased reference counter size
US20040101271A1 (en) * 2002-11-21 2004-05-27 International Business Machines Corporation Personal video recording with storage space distributed among remote personal video recorders
US20040199507A1 (en) * 2003-04-04 2004-10-07 Roger Tawa Indexing media files in a distributed, multi-user system for managing and editing digital media

Also Published As

Publication number Publication date
GB2444083B (en) 2011-06-29
WO2008029099A1 (en) 2008-03-13
GB0617526D0 (en) 2006-10-18

Similar Documents

Publication Publication Date Title
CN109597567B (en) Data processing method and device
JP4049525B2 (en) Distributed processing system
JP4197303B2 (en) Computer resource management method, execution apparatus, and processing program
US20090210464A1 (en) Storage management system and method thereof
US20050080810A1 (en) Data management apparatus
CN113806066A (en) Big data resource scheduling method, system and storage medium
CN109359081A (en) The method of lock tube reason, lock server and client in a kind of cluster
CN109525658A (en) A kind of production method, server, equipment, storage medium and operation system
EP2710477B1 (en) Distributed caching and cache analysis
CN112153167B (en) Internet interconnection protocol management method, device, electronic equipment and storage medium
CN103975324B (en) Access rights management system and method
CN109308269B (en) Memory management method and device
US20100138627A1 (en) Efficient alert mechanism for overutilization of storage resources
CN109543365B (en) Authorization method and device
CN103559319A (en) Cache synchronization method and equipment for distributed cluster file system
US20160234129A1 (en) Communication system, queue management server, and communication method
CN110765094B (en) File creation method, device, system and storage medium
CN111190537B (en) Method and system for managing sequential storage disk in additional writing scene
CN111399761B (en) Storage resource allocation method, device and equipment, and storage medium
CN110798507B (en) Method and system for DHCP address allocation memory
CN110245129B (en) Distributed global data deduplication method and device
CN109669621A (en) A kind of file management method, file management system, electronic equipment and storage medium
GB2444083A (en) Distributed Data Allocation System
CN111800494B (en) Equipment online method, system and device and electronic equipment
CN110012050A (en) Message Processing, storage method, apparatus and system

Legal Events

Date Code Title Description
732E Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)

Free format text: REGISTERED BETWEEN 20200319 AND 20200325

PCNP Patent ceased through non-payment of renewal fee

Effective date: 20210905