﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>Charlie Barker commented on Designing a document database</title><description>Re:  Searching:
  
Could you compute hashes for documents as they were added to the db and return the hash value to the calling app to use later for retrieval?
  
You might also be able to use the hash to search for identical documents with different Id's.
  
Allowing calling applications to add tags to a document would be useful for searching also.
  
</description><link>http://ayende.com/3897/designing-a-document-database#comment13</link><guid>http://ayende.com/3897/designing-a-document-database#comment13</guid><pubDate>Tue, 10 Mar 2009 18:18:03 GMT</pubDate></item><item><title>Steve Campbell commented on Designing a document database</title><description>My team and I developed a "document repository" late last year.  We had different constraints, but some of the challenges for us were:
  
* delivering documents to the web when they are stored in a secure repository inside our firewall
  
* deciding sql blobs vs filesystem (we chose filesystem, even though we could have done a hybrid, i.e. SQL 2008)
  
* workflow, i.e. allowing different people to see docs at different places in a workflow
  
  
Other challenges which I doubt you will have, related to being able to deal with groups of related docs:
  
* determining duplicates (what makes a document an update vs a new doc)
  
* versioning of groups of documents vs versioning individual docs 
  
  
</description><link>http://ayende.com/3897/designing-a-document-database#comment12</link><guid>http://ayende.com/3897/designing-a-document-database#comment12</guid><pubDate>Mon, 09 Mar 2009 18:25:44 GMT</pubDate></item><item><title>Peter commented on Designing a document database</title><description>Looking forward to these posts, Ayende.  Good outline.
</description><link>http://ayende.com/3897/designing-a-document-database#comment11</link><guid>http://ayende.com/3897/designing-a-document-database#comment11</guid><pubDate>Mon, 09 Mar 2009 16:45:45 GMT</pubDate></item><item><title>Szymon commented on Designing a document database</title><description>Looking forward to your next posts on this topic. Right now I'm evaluating the same but from perspective of offline client. We are building distributed clients that need to pull some data (mostly read-only) and image attachments. I was thinking about using the System.IO.Packaging format to store this as documents on the client (like Office docs). Do you think it's related? If so please consider it in your series as well. 
</description><link>http://ayende.com/3897/designing-a-document-database#comment10</link><guid>http://ayende.com/3897/designing-a-document-database#comment10</guid><pubDate>Mon, 09 Mar 2009 16:15:06 GMT</pubDate></item><item><title>Ayende Rahien commented on Designing a document database</title><description>Marco,
  
I don't think that I am going to handle archiving. You can run a view and do it as a separate process, outside of the DB.
  
  
Working offline, that seems like a special case of replication.
  
In this case, we replicate to the master, and we have to do it in an async manner
  
</description><link>http://ayende.com/3897/designing-a-document-database#comment9</link><guid>http://ayende.com/3897/designing-a-document-database#comment9</guid><pubDate>Mon, 09 Mar 2009 14:15:35 GMT</pubDate></item><item><title>Marco Dissel commented on Designing a document database</title><description>Another one:
  
- working offline
  
. local (partial) backup and commit changes/new items to the server
  
</description><link>http://ayende.com/3897/designing-a-document-database#comment8</link><guid>http://ayende.com/3897/designing-a-document-database#comment8</guid><pubDate>Mon, 09 Mar 2009 12:16:40 GMT</pubDate></item><item><title>Marco Dissel commented on Designing a document database</title><description>-- archiving - can you explain more? 
  
Old documents that are never touched anymore can be moved to an archive database. Most DMS systems supports some kind of document lifecycle workflow / records management  (for example document with type x (some metadata field) should be saved 10 years, after that it should be destroyed)
  
(see 
[http://en.wikipedia.org/wiki/Records_management](http://en.wikipedia.org/wiki/Records_management))
  
</description><link>http://ayende.com/3897/designing-a-document-database#comment7</link><guid>http://ayende.com/3897/designing-a-document-database#comment7</guid><pubDate>Mon, 09 Mar 2009 12:11:11 GMT</pubDate></item><item><title>Ayende Rahien commented on Designing a document database</title><description>Marco,
  
meta data - I am addressing that
  
security - haven't thought about that, will need to address this
  
versioning - I am addressing that
  
searching - I am addressing that
  
archiving - can you explain more?
</description><link>http://ayende.com/3897/designing-a-document-database#comment6</link><guid>http://ayende.com/3897/designing-a-document-database#comment6</guid><pubDate>Mon, 09 Mar 2009 10:08:39 GMT</pubDate></item><item><title>Ayende Rahien commented on Designing a document database</title><description>Uriel,
  
The problem with layer the DB on top of the DHT is that you need to maintain additional data that the actual DHT doesn't let you.
  
Lists of documents to be processed, for example.
  
  
Rafal,
  
Take a look at CouchDB, that is the source of much of the design.
  
  
</description><link>http://ayende.com/3897/designing-a-document-database#comment5</link><guid>http://ayende.com/3897/designing-a-document-database#comment5</guid><pubDate>Mon, 09 Mar 2009 10:07:24 GMT</pubDate></item><item><title>Marco Dissel commented on Designing a document database</title><description>And what about:
  
- the meta-data on top of documents?
  
- security 
  
- versioning
  
- searching (full-text and on meta-data)
  
- archiving (document lifecycle)
</description><link>http://ayende.com/3897/designing-a-document-database#comment4</link><guid>http://ayende.com/3897/designing-a-document-database#comment4</guid><pubDate>Mon, 09 Mar 2009 08:57:33 GMT</pubDate></item><item><title>Rafal commented on Designing a document database</title><description>Very nice, but for a starter I'd like to see some background:
  
- what is a document
  
- how does it differ from an attachment
  
- what is a view
  
- how does document lifecycle look like
  
- what will be the intended use of the software you are designing
</description><link>http://ayende.com/3897/designing-a-document-database#comment3</link><guid>http://ayende.com/3897/designing-a-document-database#comment3</guid><pubDate>Mon, 09 Mar 2009 08:49:35 GMT</pubDate></item><item><title>Uriel Katz commented on Designing a document database</title><description>a really simple design will be to build that db on top of a persistent DHT so you get replication and scalability right away,or you could build it on top of some DFS.
  
for the views you can make some incremental background process that updated views from documents,or shift the cost of updating views to the queries i think it is called cracking databases i think.
</description><link>http://ayende.com/3897/designing-a-document-database#comment2</link><guid>http://ayende.com/3897/designing-a-document-database#comment2</guid><pubDate>Mon, 09 Mar 2009 07:11:03 GMT</pubDate></item><item><title>J commented on Designing a document database</title><description>It's called Sharepoint :)
</description><link>http://ayende.com/3897/designing-a-document-database#comment1</link><guid>http://ayende.com/3897/designing-a-document-database#comment1</guid><pubDate>Mon, 09 Mar 2009 01:53:36 GMT</pubDate></item></channel></rss>