Slashdot Mirror


Object Storage and POSIX Should Merge

storagedude writes: Object storage's low cost and ease of use have made it all the rage, but a few additional features would make it a worthier competitor to POSIX-based file systems, writes Jeff Layton at Enterprise Storage Forum. Byte-level access, easier application portability and a few commands like open, close, read, write and lseek could make object storage a force to be reckoned with.

'Having an object storage system that allows byte-range access is very appealing,' writes Layton. 'It means that rewriting applications to access object storage is now an infinitely easier task. It can also mean that the amount of data touched when reading just a few bytes of a file is greatly reduced (by several orders of magnitude). Conceptually, the idea has great appeal. Because I'm not a file system developer I can't work out the details, but the end result could be something amazing.'

66 comments

  1. Or in other words... by 14erCleaner · · Score: 4, Insightful

    "If we support POSIX, then we'll support POSIX".

    --
    Have you read my blog lately?
    1. Re:Or in other words... by Anonymous Coward · · Score: 0

      Bring me a bucket, and I'll show you a bucket!

  2. Looking at it backwards by thecombatwombat · · Score: 1

    The article seems to go into solutions that let you access S3 as a fuse module, but it's failing to consider that you can go the other way. Gluster, Ceph, and probably others let you access data both as a filesystem, and as an object store. It's a little more complex to setup and maintain than what this article seems to be envisioning, but it can offer a lot of flexibility. I suppose it's not as cheap to run these yourself as to use S3 in most cases.

    1. Re:Looking at it backwards by Lennie · · Score: 1

      And a lot of less failure tollerant, because when you start adding all kind of extra features you need lots more and more locking. And more locking makes it much more brittle.

      I think the author should just try using Fuse.

      --
      New things are always on the horizon
  3. I'm just the idea man by Anonymous Coward · · Score: 5, Funny

    Because I'm not a file system developer I can't work out the details, but the end result could be something amazing.'

    But you can put the check in my name.

    1. Re:I'm just the idea man by Anonymous Coward · · Score: 0

      The world is full of great ideas that need programmers willing to invest their time for free and 5% of the profits.

  4. Wouldn't it be great if you gave me millions! by Anonymous Coward · · Score: 0, Funny

    Wouldn't it be great if you gave me millions of dollars!

    Because I'm not a money maker I can't work out the details, but the end result could be something amazing (for me at least).

  5. POOS by Anonymous Coward · · Score: 0

    We can call it POOS, Posix Over Object Store.

    1. Re:POOS by U2xhc2hkb3QgU3Vja3M · · Score: 3, Funny

      Posix Over Objects Partitions wasn't a popular choice.

  6. Why would you want this? by godrik · · Score: 3, Interesting

    I do not understand this at the highest level. How is this an improvement over POSIX? My understanding is that object storage is essentially a dumbed-down file system where you have to read the entire object (file) at once. Or have to write the object (file) at once. Why does it improve anything? Is it just because the "address" can be a url? Just write that as a specific file system so that you can read/write to /dev/url/http/slashdot.org/ and be done with it.

    What am I missing?

    1. Re:Why would you want this? by radish · · Score: 3, Interesting

      It allows the implementation to make a lot of assumptions & simplifications, which in turn makes things like S3 possible. There's no way you could practically offer POSIX style FS access in a cloud-like environment.

      --

      ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

    2. Re:Why would you want this? by PPH · · Score: 1

      no way you could practically offer POSIX style FS access in a cloud-like environment.

      NFS?

      --
      Have gnu, will travel.
    3. Re:Why would you want this? by radish · · Score: 1

      I'd say NFS is the evidence that's it's not practically possible :)

      --

      ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

    4. Re:Why would you want this? by U2xhc2hkb3QgU3Vja3M · · Score: 0
    5. Re:Why would you want this? by Salamander · · Score: 3, Interesting

      That is very untrue. I'm on the GlusterFS team, and we've had users providing "POSIX style FS access in a cloud-like environment" for years. Amazon recently started doing the same with EFS, and there are others. It's sure not easy, I wouldn't say any of the alternatives have all of the isolation or ease of use that they should, but it's certainly possible.

      --
      Slashdot - News for Herds. Stuff that Splatters.
    6. Re:Why would you want this? by Dutch+Gun · · Score: 3, Insightful

      Think for a moment about how much network overhead it would require to:

      a) Open a specific file
      b) Seek to a specific location
      c) Read or write data down to the byte level an arbitrary number of times
      d) Close the file.

      Each one of those operations needs back and forth communication across the internet, with error-checking and encryption overhead. Now, remember that these operations need to by synchronized across multiple machines, probably in multiple data centers across the world as well.

      Compare that to atomic per-object operations, and how much more straightforward that is for network-intensive operations. In the end, it's probably much more efficient to simply send an entirely new file than trying to change a single byte inside a file.

      Besides, if you really need byte-level access to remote storage... we have that already. It's called a database.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    7. Re:Why would you want this? by Zero__Kelvin · · Score: 1

      "I do not understand this at the highest level. How is this an improvement over POSIX? "

      I'll go one further. What does this have to do with POSIX? One could add an Object Storage API to POSIX, but that wouldn't be "merging", and POSIX says nothing about the underlying filesystem/storage implementation. Why? Because, agfain, POSIX is an API and the purpose of an API is to provide a layer of abstraction that hides tyhe underlying details of the implementation.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    8. Re:Why would you want this? by Salamander · · Score: 4, Insightful

      It's because they throw out a lot of POSIX features/requirements - e.g. nested directories, rename, links, durability/consistency guarantees. In other areas, such as permissions, they have their own POSIX-incompatible alternatives. These shortcuts do make implementation easier, allowing a stronger focus on pure scalability. The theory is that the combined complexity of POSIX semantics and dealing with high scale (including issues such as performance and fault handling) is just too much, and it becomes an either/or situation. As a member of the GlusterFS team, I strongly disagree. My colleagues, including those on the Ceph team, probably do as well. The semantics of object stores like S3 have been designed to make their own developers' lives easier, and to hell with the users.

      Not all POSIX features are necessary. Some are outdated, poorly specified, or truly too cumbersome to live. On the other hand, the object-store feature set is *too* small. I've seen too many users start with an object store, then slowly reimplement much of what's missing themselves. The result is a horde of slow, buggy, incompatible implementations of functionality that should be natively provided by the underlying storage. That's a pretty lousy situation even before we start to talk about being able to share files/objects with any kind of sane semantics. You want to write a file on one machine, send a message to another machine, and be sure they'll read what you just wrote? Yeah, you can do that, but the techniques you'll have to use are the same ones that are already inside your distributed object store. Even if both their implementation and yours are done well, the duplication will be disastrous for both performance and fault handling. It would be *far* better to enhance object stores than to keep making those mistakes . . . or you could just deploy a distributed file system and use the appropriate subset of the functionality that's already built in.

      A semantically-rich object store like Ceph's RADOS can be a wonderful thing, but the dumbed-down kind is a disgrace.

      --
      Slashdot - News for Herds. Stuff that Splatters.
    9. Re:Why would you want this? by RightwingNutjob · · Score: 1

      Yeah, but that's all latency, none of it is throughput. Maybe I buy your argument if you're talking about changing a few bytes in a file of size 4K or so, but if your file is megabytes or gigabytes in size (like a bigass complex-valued double precision matrix), then I don't think you necessarily want to shuffle all of it across the wire and back.

    10. Re:Why would you want this? by radish · · Score: 1

      I never said it was impossible :) I'm glad EFS is coming along, it's certainly a welcome addition. But, the fact it's still in preview - many years after S3 become commonplace, and it costs more than 10x as much as S3 - tells me it's not easy.

      What I was trying to get across was that the reason for the popularity of the object storage model is that it benefits the storage provider - not the client.

      I apologize if I misrepresented your efforts!

      --

      ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

    11. Re:Why would you want this? by godrik · · Score: 1

      So what is the difference with this new fancy API.
      You will GET the entire file.
      Then you do whatever locally.
      And then PUT it back.

      How is this ANY different? There is no specification in POSIX that prevent you from doing that in the background while still exposing a POSIX API.

      Now if the argument is that, if you do something like "grep something s3://foo/bar; grep something_else s3://foo/bar" and that is inefficient because it requires the transfer of the file twice. First you could cache a hash to avoid redownloading the file. And then it is purely a performance issue which like all performance issue requires you to understand what is going on under the hood and act appropriately.

    12. Re:Why would you want this? by mcrbids · · Score: 1

      +1 If I had mod points you'd get one!

      There have been a *lot* of smart people in the history of Computer Science over a very *long* period of time, and the best of the best of their innovations we now call "classic solutions". Solutions like SQL, POSIX, etc.

      It has become popular to decide that such solutions are "antiquated" in the face of some new "great thing".

      Remember NoSQL? Well, yeah. There actually *is* a very small set of problems for relating data not best served by SQL. But even those cases often collapse into something best left to the tried and true "stodgy" technology of SQL and a competent admin.

      Object storage is another way of saying "REST API roolz doodz!" and while REST is a fantastic technology for integrating disparate product stacks, it's hardly a replacement for a proper, local, filesystem.

      --
      I have no problem with your religion until you decide it's reason to deprive others of the truth.
    13. Re:Why would you want this? by Dutch+Gun · · Score: 1

      I think my overall point is that I'd bet that cloud-object storage is designed around the premise of per-object atomic transactions at a very fundamental level. If you look at some of the most popular applications, like backup solutions, off-site storage, or data synchronization, this model makes a lot of sense. Essentially, the per-object model is prioritizing file transfer efficiency and design simplicity over flexibility. A POSIX interface would be making the opposite tradeoff. As such, I think it's no surprise that the current interfaces are what they are.

      I suppose it may be possible to build a POSIX-like interface on top of this atomic per-object model. You'd essentially need to create a virtual filesystem that used individual objects similar to how a disk accesses physical sectors instead of one byte at a time. By locating these services in the same datacenters on virtual machines, you'd reduce a lot of the overhead of external communication with external applications. So, each transaction would have a minimum of overhead with the external internet, and each file would potentially require many individual objects to store it's data.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    14. Re:Why would you want this? by TechyImmigrant · · Score: 1

      I'd say NFS is the evidence that's it's not practically possible :)

      And 9P is the evidence that it's entirely possible.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    15. Re:Why would you want this? by goarilla · · Score: 1

      I still don't understand exactly what this Object-storage "fad" is all about.
      Is it a a limited special purpose filesystem that hooks into a webserver instead of the normal VFS or other disk subsystems ?
      Now isn't the Range HTTP header used to effectively "fseek/read" in a file.

    16. Re:Why would you want this? by Anonymous Coward · · Score: 0

      Of course you can, and the author of this article seems to be ignorant of the "how" too.

      It's called WebDAV. It extends HTTP with the methods required to do byte-level file access, locking, etc. There are already FS clients on every major operating system for this.

    17. Re:Why would you want this? by Anonymous Coward · · Score: 0

      I think it's webscale because it doesn't use joins, or something like that.

    18. Re:Why would you want this? by Anonymous Coward · · Score: 0

      Exactly, you keep your atomic semantics (e.g. modifying one element in an array copies the whole array with one difference); the improvement is that the new object version is created on the server from a small command packet from the client, rather than having the whole object sent to the client, modified, and sent back (all while holding a lock on the object).

      But it's pretty lame using byte-pointer semantics for this. The server should know it's an array, and should understand the insert command. Otherwise the client has to read the metadata, figure out where the array is, figure out where to insert the bytes, and if it's an insert into the middle it would need to read the entire second half of the array just to create the modified data to write. This is not an efficient way to do a remote "insert" operation. And a flat file on the server's disc isn't the best way to store an array that supports insertion, either, but of course you're free to do whatever you like there.

      I'm sure *cough* someone *cough* is working on stuff like this.

    19. Re:Why would you want this? by sjames · · Score: 1

      Fundamentally, all filesystems are object based, it's just that the object is called a 'block'

    20. Re:Why would you want this? by Viol8 · · Score: 1

      Thats odd, because its been in use for 30 years. I guess all the sys admins and users over that time period never got the memo that it didn't actually work.

    21. Re:Why would you want this? by Anonymous Coward · · Score: 0

      NFS and its real-world use cases have changed somewhat in 30 years. What people expect from it today is not what people expected from it 30 years ago, once you get beyond the top-level "I expect a filesystem over the network".

      And many sysadmins and users in that time have repeatedly gotten the memo that there are issues with it, or at least issues with common implementations of it.

      You don't have to go far on google to find people who are looking for alternatives, both users and sysadmins.

    22. Re:Why would you want this? by F.Ultra · · Score: 1

      HTTP has range-headers for both PUT and GET requests so if only services like S3 would use those standard headers POSIX style FS access would be more than possible.

    23. Re:Why would you want this? by Jeremy+Allison+-+Sam · · Score: 1

      How we plan to expose cloud-based filesystems in Samba:

      http://www.sambaxp.org/archive...

    24. Re:Why would you want this? by DidgetMaster · · Score: 1

      Couldn't agree more. That is why I am building a new kind of object store from the ground up. See it in action at http://youtu.be/2uUvGMUyFhY

    25. Re:Why would you want this? by Anonymous Coward · · Score: 0

      Just write that as a specific file system so that you can read/write to /dev/url/http/slashdot.org/ and be done with it.

      What am I missing?

      It's alredy possible with GNU/HURD aka GNU

    26. Re:Why would you want this? by spitzak · · Score: 1

      The intention is to have the database update when the close() is done, not on every write().

      It is pretty obvious that the desired functionality could be done by fuse, where a get() is done on open and a put() is done on close if write was ever called.

      I think the modern day applications that only write a part of a file are nearly non-existent (and in fact partial update where another program can see your unfinished writing, is usually a bug, not a feature). So there is no need for any api other than put().

      There is a nice subset that only reads part of a file (and that part almost always includes the start of the file) however. So I can see this as being an argument for being able to access blocks of data from the remote.

  7. How about this by Tablizer · · Score: 1

    If file systems allowed arbitrary attributes per folder/file, then file systems could serve as both CMS's and light-duty CRUD storage. Most intranet CMS content is just lists of documents and links, with a few notes. They could be queried via SQL or an SQL-like language[1], along with the usual file-oriented techniques.

    In addition to the arbitrary attributes, a set of common attributes would be reserved, at least by convention:

    * title (file/folder name)
    * synopsis
    * content (file bytes)
    * type (type of content, perhaps by extension)
    * thumbnail (or icon)
    * create-date (date/time)
    * modif-date
    * orig-author (writer user name)
    * modif-author (who changed it)
    * sequence (preferred ordering [2])
    * hidden (internal or system files/rows)

    Conventions for display preferences and perhaps an HTML template(s) per folder or folder groups[3] could also be defined as part of the convention.

    And perhaps per-folder[3] settings can enforce certain attributes or constraints, such as making synopsis required, for example.

    Think about it: a flexible data tool without totally reinventing the wheel. We just soup-up existing file systems (or at least file conventions). Something is more likely to be accepted if it's similar to familiar tools--file systems and RDBMS in this case.

    [1] Comparing operations may have to be more type-explicit if using dynamic or "indicator-free" types.

    [2] Ordering by "convention" attributes (above) would typically be available, but sometimes the author wants explicit control of ordering

    [3] Folders could perhaps define a path and/or grouping so that they can "inherit" selected features from other folders, such as preferred display settings.

    1. Re:How about this by FranTaylor · · Score: 1

      If file systems allowed arbitrary attributes per folder/file

      mac os was doing this back in 1984

    2. Re:How about this by Anonymous Coward · · Score: 0

      POSIX has extended file attributes -- though they don't have the inheritance properties you want.

    3. Re:How about this by MightyMartian · · Score: 1

      You mean like extended attributes, which have been around for decades.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    4. Re:How about this by Tablizer · · Score: 1

      They seem implemented with arbitrary and inconsistent limits or usage steps per OS or file-system version. This typically makes any product that uses them married to a platform. It will probably require a "blockbuster" product to make anyone care enough to clean them up.

    5. Re:How about this by DidgetMaster · · Score: 1

      Working on it. And unlike the "storagedude", I do have the expertise to implement it. I have it about half implemented so far. I have created an object store where every object can have lots of attributes or tags attached to them. Unlike extended attributes, you can actually find things based on them quickly. For example, I can create a container and put 100 million of my data objects in it (photos, mp3s, software, documents, etc.) and find anything and/or everything in just a few seconds. If I had 10 million photos and they all had tags attached, I could find the 50,000 photos of my family vacation in Hawaii in 2010 in just a couple of seconds. Check out the video of my demo at http://youtu.be/2uUvGMUyFhY

    6. Re:How about this by goarilla · · Score: 1

      NTFS actually has first class attributes.

    7. Re:How about this by goarilla · · Score: 1

      That all works fine and dandy if you "tag" all your data properly in the first place.
      Now you have two data stores to manage: the actual filesystem and the database of metadata.

    8. Re:How about this by DidgetMaster · · Score: 1

      That might be how others have implemented an object store, but not how I am doing it. There are not two separate systems to manage in my case. I don't use a file system to store the unstructured data and store all the metadata in a database and thus have two different systems to try and keep in sync. Instead, I built a new system from the ground up (actually from the block pool or disk partition up). It stores structured data and unstructured data natively in a very unique fashion.

  8. POSIX by PPH · · Score: 1

    Byte-level access, easier application portability and a few commands like open, close, read, write and lseek could make object storage a force to be reckoned with.

    Got all of that already. Perhaps not well defined by the POSIX standard. But only because certain implimentors whined and cried that they would be cut out of the party if they had to support real O/S standards.

    But this isn't 'object storage' (unless all your objects are bytes). Object storage is an extension of higher level record access that VMS and other (mainframe) systems have had for years (decades). But now combined with object method storage. Starting to sound like RPC (server run) or write once, run anywhere. So Java vs ActiveX and maybe Javascript all over again. Just nope.

    --
    Have gnu, will travel.
  9. Jut do it by manu0601 · · Score: 0

    You had an idea. Just implement it. If it is of any value, people will pick it and you will get famous (and perhaps rich if you can leverage on that)

    1. Re:Jut do it by Desler · · Score: 1

      They can't. The quote even says so.

  10. No thanks by Anonymous Coward · · Score: 0

    "Because I'm not a file system developer I can't work out the details..."

    I don't need any help from you. And your opinions don't count for much. Thanks for the idea, even though it's essentially worthless without data to back up your assertions.

  11. Why Should Object Storage and POSIX Merge? by QuietLagoon · · Score: 2
    There I fixed the title for you.

    .
    Aside from trying to leverage the huge portability of POSIX by using its name, what exactly is the benefit if the merger would occur?

    .
    Why not standardize and implement Object Store across many different operating systems (working code would be required for each OS), and then submit Object Store to be a part of the POSIX standard?

    1. Re:Why Should Object Storage and POSIX Merge? by Anonymous Coward · · Score: 0

      what exactly is the benefit

      There's a three-page article explaining this, I'm pretty sure it was linked on Slashdot recently.

      Why standardize and implement Object Store across many different operating systems (working code would be required for each OS), and then submit Object Store to be a part of the POSIX standard?

      There, I fixed your question for you.

    2. Re:Why Should Object Storage and POSIX Merge? by QuietLagoon · · Score: 1

      ...There's a three-page article explaining this, ...

      Not really. That three page article does not explain the benefit to POSIX if the merger would occur.

      .
      For example, what is the approval process for changes to Object Store? What is the approval process for changes to POSIX? What will the resulting approval process look like after the two are merged? How will POSIX benefit from the new approval process?

      There is nothing in the article that addresses that topic. And that is but one of many unaddressed topics.

      The article is typical technical magazine article. Lots of interesting technical stuff, but nothing about process.

      There, I fixed your question for you.

      Not really. All you did was show that you've not a clue about what POSIX is and how new features are added to POSIX.

      fwiw, I'm not saying that POSIX wouldn't benefit from having something like Object Store added to it, I'm just saying that the process to do such a thing needs to be understood and followed. You might want to start by researching how to make an addition to the POSIX standard. Here's a link to that starting place: http://pubs.opengroup.org/onli...

  12. lseek? by Eravnrekaree · · Score: 1

    I always was under the impression that POSIX has something close to byte access with lseek().

    1. Re:lseek? by Trepidity · · Score: 1

      Yes, I think it's saying that object storage should get byte-range access, not that POSIX should; POSIX, as well as basically any local filesystem API, already does.

      A lot of object-storage systems do already have byte-range access, though, implemented via HTTP range requests. They're not nice seekable streams, but if the specific functionality you want is to retrieve a range of bytes from a file, that's already here.

    2. Re:lseek? by NostalgiaForInfinity · · Score: 1

      They're not nice seekable streams

      Many network file systems don't have seekable streams at the protocol level; it makes more sense to transmit range requests and keep the "stream position" and the rest of the stream abstraction on the client.

  13. Reiser? Is that you? by Anonymous Coward · · Score: 0

    Did Paul Reiser get out of jail and change his name?

    Oh, wait, this guy is trying to replace file systems with a database, not databases with a filesystem like Reiser did.

    Well, nothing new under the sun, just same old ideas being recycled and touted as something totally new.

  14. Cloud: bitcasa.com by snadrus · · Score: 1

    AWS offer Object Storage for its scalability. Cloud file services sit on-top of that & only accept "complete" uploads.

    The only happy medium I know of is www.Bitcasa.com which implements POSIX (most of it) atop S3 in the form of a virtual drive. Their Linux client is only for corporate users due to a lack of focus consumer-side, but their Windows & Mac clients offer virtual desktop.

    Ref: I work for Bitcasa

    --
    Science & open-source build trust from peer review. Learn systems you can trust.
  15. He thinks it'll be cheaper by noda132 · · Score: 1

    On cloud services, storing all your files as "objects" is much cheaper than renting a filesystem to store them on. The gist of this article is, "if S3 allowed block-level access, it would be as cheap as S3 and as flexible as a filesystem."

    The most powerful sentence in the article is "I can't work out the details." I can't imagine any cloud-services engineer reading this article and thinking, "ooh, I'd never thought of adding block-level access!" I think block-level access is the most-requested feature since S3 was born. The author hasn't described how this will work -- or how S3 works, even.

  16. What an awful article. by Anonymous Coward · · Score: 1

    "POST (dds an object using HTML forms — similar to PUT but using HTML)"

    What does that even mean? Evidently, the author meant "HTTP".

    In regards to "merging" obejct storage and POSIX, that's been done. That's what the Joyent people did with their Manta object storage: you operate on the objects using standard *nix tools. They've recently open-sourced it under a free and GPLv2-compatible license (MPLv2).

    1. Re:What an awful article. by Anonymous Coward · · Score: 0

      No, he meant HTML. If you have low-level HTTP access you use the PUT verb, but if you're in a browser context it's far easier to use the POST verb as it's supported by HTML forms. Next question?

    2. Re:What an awful article. by Anonymous Coward · · Score: 0

      Not very clear. POST is an HTTP method, but is he talking about posting HTML content through the form?

  17. Big blocks? by Anonymous Coward · · Score: 0

    Object storage is just block storage with arbitrarily large block sizes. POSIX is just an interface. Implementing the API over an object store should be simple. Leave the details of wiring memory to logical sectors to the object store implementation and forget about it. Not enough memory to cache an entire file? It's time to start rethinking "memory" anyway. Or just look at how it's already done in eg OS/400.

  18. really needed? by NostalgiaForInfinity · · Score: 1

    What really is needed is a hybrid file system that contains some of the aspects of object storage and some of the aspects of a POSIX file system. ... Add byte-level access in some fashion to object storage

    As in byte serving and the range header? https://en.wikipedia.org/wiki/...

    or object storage functions to POSIX storage.

    You could read and write entire files easily in POSIX, last I checked. You know, as in Python "open(filename).read()".

  19. Scalable b/c it's stateless by HockeyPuck · · Score: 3, Informative

    One of the great advantages that allows object storage to be scalable is that it's completely stateless. A single command has no dependency on the previous or next command. There's no modification of existing objects, no "seek then write" commands either. This allows object storage to maintain one of the key tenants of being a cloud storage, it's not to provide high availability of a given instance, but to guarantee that the "retry" or the "allocation of a new resource" always succeeds. For example, VMs can go down at anytime, but there should never be an instance whereby you cannot create a new VM to replace the one that just died. While VMs can die at anytime, the VM service (EC2, Nova) can never go down.

    With this crap like "seek", "open" then "read" that the author proposes you now have commands that are dependent on each other and thus create state. Something we want to avoid.

    1. Re: Scalable b/c it's stateless by Anonymous Coward · · Score: 0

      No, you want state. You just don't realize it. And entirely stateless system would be indistinguishable from random effects.

  20. WebDAV methods by Anonymous Coward · · Score: 0

    In addition of HTTP methods there are WebDAV methods:

            PROPFIND — used to retrieve properties, stored as XML, from a web resource. It is also overloaded to allow one to retrieve the collection structure (also known as directory hierarchy) of a remote system.
            PROPPATCH — used to change and delete multiple properties on a resource in a single atomic act
            MKCOL — used to create collections (a.k.a. a directory)
            COPY — used to copy a resource from one URI to another
            MOVE — used to move a resource from one URI to another
            LOCK — used to put a lock on a resource. WebDAV supports both shared and exclusive locks.
            UNLOCK — used to remove a lock from a resource

    And Range Requests:

    I'm developing a system that integrates HTTP/WebDAV and SQL with URI's as follow:

    http://host:port/table/row_id/column/column_part

    With WebDAV integration SQL database can be seen as a filesystem. Using SQL references has the advantage that the information can be divided in small data parts
    for easy editing and is more versatile than filesystem trees.

    An object can be written with POST method or when an object in XML, iCalendar, etc format is written using PUT method it can be
    processed in the server and it's data stored in the appropiate columns.

    And it can be used with other protocols or a FUSE filesystem.