﻿<?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>Ayende Rahien commented on Designing a document database: Views</title><description>Ryan,
  
I am actually looking for someone to sponsor the development of this :-)
</description><link>http://ayende.com/3904/designing-a-document-database-views#comment17</link><guid>http://ayende.com/3904/designing-a-document-database-views#comment17</guid><pubDate>Fri, 13 Mar 2009 17:20:04 GMT</pubDate></item><item><title>Ayende Rahien commented on Designing a document database: Views</title><description>configurator,
  
But that syntax is just ugly
</description><link>http://ayende.com/3904/designing-a-document-database-views#comment16</link><guid>http://ayende.com/3904/designing-a-document-database-views#comment16</guid><pubDate>Fri, 13 Mar 2009 17:18:44 GMT</pubDate></item><item><title>huey commented on Designing a document database: Views</title><description>This is an interesting series, and now I finally grasp what its all about :)
  
  
I have been reading about azure storage tables and one of the ideas is partitions -- queries over a single partition are fast, queries over multiple partitions are slow.  The problem is that a partition that optimizes a query over one property might suck for a query over a different property.
  
  
A solution would be to replicate the the data (or reference to) with different partitions optimized per property you want to query on.  I have no idea if this is optimal (hoping some good good use practices for azure storage are shown at MIX).  The problem is if you want to add a property or new query or even insert new data these multiple partitions can be out of sync easily.
  
  
Seeing this post about views finally makes it all click.  This is very interesting stuff with regards to scaling.
</description><link>http://ayende.com/3904/designing-a-document-database-views#comment15</link><guid>http://ayende.com/3904/designing-a-document-database-views#comment15</guid><pubDate>Fri, 13 Mar 2009 13:43:13 GMT</pubDate></item><item><title>Ryan Roberts commented on Designing a document database: Views</title><description>This is a fascinating series of articles Oren, thankyou.
  
  
I have a similar requirement to document database views coming up in my current work. We need view support for a system built on top of db4o to support various reporting scenarios and things like incremental search in a performant way. Lucene is my toy of choice for things like this, and we are allready using it for complex queries. It will be great to see how you tackle your query language / criteria for this.
  
  
And tuples can't come soon enough for me.
</description><link>http://ayende.com/3904/designing-a-document-database-views#comment14</link><guid>http://ayende.com/3904/designing-a-document-database-views#comment14</guid><pubDate>Fri, 13 Mar 2009 11:39:33 GMT</pubDate></item><item><title>Haxen commented on Designing a document database: Views</title><description>First, I like this series of posts!
  
  
This that you are trying to accomplish reminds me a lot of Lotus Notes which doesn't bring back good memories. ;-)
</description><link>http://ayende.com/3904/designing-a-document-database-views#comment13</link><guid>http://ayende.com/3904/designing-a-document-database-views#comment13</guid><pubDate>Fri, 13 Mar 2009 09:28:17 GMT</pubDate></item><item><title>configurator commented on Designing a document database: Views</title><description>Another option is to use some sort of duck typing for your docs
  
  
For that query, all docs must support a certain interface (with Type, Title and Version as properties). I.e. it is possible to create an interface for your DDB where it is queried as such:
  
  
DDB.GetDocumentsAs
&lt;tinterface();
  
  
The interface as a type parameter causes a duck class to be generated by the DDB, mapping the given properties into their matching indexer.
&gt;</description><link>http://ayende.com/3904/designing-a-document-database-views#comment12</link><guid>http://ayende.com/3904/designing-a-document-database-views#comment12</guid><pubDate>Fri, 13 Mar 2009 02:23:37 GMT</pubDate></item><item><title>configurator commented on Designing a document database: Views</title><description>Ayende, for C# 3 wouldn't a Dictionaryish syntax be best
  
  
doc["Type"], doc["Title"], doc["Version"]
  
  
The disadvantage with this syntax is that it is not strongly typed - but neither is the dynamic syntax.
</description><link>http://ayende.com/3904/designing-a-document-database-views#comment11</link><guid>http://ayende.com/3904/designing-a-document-database-views#comment11</guid><pubDate>Fri, 13 Mar 2009 01:50:44 GMT</pubDate></item><item><title>Ayende Rahien commented on Designing a document database: Views</title><description>Configurator, 
  
Exactly!
  
</description><link>http://ayende.com/3904/designing-a-document-database-views#comment10</link><guid>http://ayende.com/3904/designing-a-document-database-views#comment10</guid><pubDate>Fri, 13 Mar 2009 01:45:39 GMT</pubDate></item><item><title>Ayende Rahien commented on Designing a document database: Views</title><description>Rafal,
  
when it is built, probably
  
views aren't a good idea on top of RDBMS. the view generation tend to take a lot of time in many scenarios. Remember that the data itself is schema less, so a lot of the RDBBMS advantages are just not there.
  
  
Ben,
  
Wait for it...
  
I think that I have better solution than the javascript in couch.
  
  
Yug,
  
You don't see where updating the views happens because I haven't discussed it yet, wait for it...
</description><link>http://ayende.com/3904/designing-a-document-database-views#comment9</link><guid>http://ayende.com/3904/designing-a-document-database-views#comment9</guid><pubDate>Fri, 13 Mar 2009 01:36:37 GMT</pubDate></item><item><title>Ayende Rahien commented on Designing a document database: Views</title><description>Mike,
  
strong type sucks
</description><link>http://ayende.com/3904/designing-a-document-database-views#comment8</link><guid>http://ayende.com/3904/designing-a-document-database-views#comment8</guid><pubDate>Fri, 13 Mar 2009 01:28:50 GMT</pubDate></item><item><title>configurator commented on Designing a document database: Views</title><description>meisinger: Perhaps dynamic is necessary, because the documents are untyped and you are accessing their properties (Type, Title, Version)?
</description><link>http://ayende.com/3904/designing-a-document-database-views#comment7</link><guid>http://ayende.com/3904/designing-a-document-database-views#comment7</guid><pubDate>Fri, 13 Mar 2009 00:07:50 GMT</pubDate></item><item><title>josh commented on Designing a document database: Views</title><description>@Rafal, i think you'd have to be concerned about changes to a document's title in the doc db if that view was stored in an RDBMS. 
</description><link>http://ayende.com/3904/designing-a-document-database-views#comment6</link><guid>http://ayende.com/3904/designing-a-document-database-views#comment6</guid><pubDate>Thu, 12 Mar 2009 21:37:39 GMT</pubDate></item><item><title>yug commented on Designing a document database: Views</title><description>Fascinating series... Thank you for sharing. It's not clear to me (from this post) where the updating of the view indexes are happening? 
  
</description><link>http://ayende.com/3904/designing-a-document-database-views#comment5</link><guid>http://ayende.com/3904/designing-a-document-database-views#comment5</guid><pubDate>Thu, 12 Mar 2009 21:00:20 GMT</pubDate></item><item><title>Ben Smith commented on Designing a document database: Views</title><description>Have you considered using a map/reduce style for defining views as per CouchDB (
[http://couchdb.apache.org/](http://couchdb.apache.org/))? The view quering language used there is JavaScript and documents are stored as JSON as you're suggesting
</description><link>http://ayende.com/3904/designing-a-document-database-views#comment4</link><guid>http://ayende.com/3904/designing-a-document-database-views#comment4</guid><pubDate>Thu, 12 Mar 2009 20:35:47 GMT</pubDate></item><item><title>meisinger commented on Designing a document database: Views</title><description>great series...
  
  
one question, however, why would you have to wait until C# 4.0?
  
what are they doing to the CLR or to the code base that would allow for this to happen?
  
  
i guess the bigger question really would be... why would you have to wait for anything to be able to execute that kind of code?
  
  
wouldn't the view be "updated" anytime that a document was persisted? and if so wouldn't the information needed to update the view already be in the context that you are working in?
  
  
or is the issue that the document db doesn't know how to update the view
  
  
i am starting to loose my mind 
  
LOL
</description><link>http://ayende.com/3904/designing-a-document-database-views#comment3</link><guid>http://ayende.com/3904/designing-a-document-database-views#comment3</guid><pubDate>Thu, 12 Mar 2009 20:19:10 GMT</pubDate></item><item><title>Rafal commented on Designing a document database: Views</title><description>And BTW, aren't views a good candidate to be based on RDBMS? It would save you implementation of joins, sorting, query capabilities... performance shouldn't be a problem since they could be optimized for querying.
</description><link>http://ayende.com/3904/designing-a-document-database-views#comment2</link><guid>http://ayende.com/3904/designing-a-document-database-views#comment2</guid><pubDate>Thu, 12 Mar 2009 20:09:10 GMT</pubDate></item><item><title>Rafal commented on Designing a document database: Views</title><description>Ok, now I see I want it. Are you going to release it open-sourcely?
  
  
</description><link>http://ayende.com/3904/designing-a-document-database-views#comment1</link><guid>http://ayende.com/3904/designing-a-document-database-views#comment1</guid><pubDate>Thu, 12 Mar 2009 20:04:56 GMT</pubDate></item></channel></rss>