3

I need to append some bytes to an existing object stored in Openstack Swift, say like a log file object and constantly append new logs to it. Is this possible?

Moreover, can I change (overwrite) some bytes (specify with offset and length) to an existing object?

fengye87
  • 2,433
  • 4
  • 24
  • 41

2 Answers2

2

I believe ZeroVM (zerovm.org) would be perfect for doing this.

Disclaimer: I work for Rackspace, who owns ZeroVM. Opinions are mine and mine alone.

Erbureth
  • 3,378
  • 22
  • 39
Don Schenck
  • 161
  • 1
  • 6
  • It seems to me that it's a solution to another different problem, or am I just getting the wrong impression coz I haven't digged enough. Could you detail further? – fengye87 Mar 24 '14 at 03:03
  • I don't believe there's a way to append data to an object in Swift. ZeroVM allows you to write code that runs inside of your object storage, directly manipulating the data in the object, "living right next to the ZeroVM module", so-to-speak. Reportedly very fast. Just an idea. Disclaimer: I work for Rackspace, who owns ZeroVM. Opinions are mine and mine alone. – Don Schenck Mar 24 '14 at 13:58
  • Okay, this is a new and interesting idea to me. Thanks for sharing with me! I'll think this option through. – fengye87 Mar 25 '14 at 04:13
0

tl;dr: There's no append support currently in Swift.

There's a blueprint for Swift append support: https://blueprints.launchpad.net/swift/+spec/object-append. It doesn't look very active.

user2195538 is correct. Using ZeroVM + Swift (using the ZeroCloud middleware for Swift) you could get a performance boost on large-ish objects by sending deltas to a ZeroVM app and process them in place. Of course you still have to read/update/write the file, but you can do it in place. You don't need to pipe the entire file over the network, which could/would be costly for large files.

Disclaimer: I also work for Rackspace, and I work on ZeroVM for my day job.

larsbutler
  • 525
  • 3
  • 11