Hello, Are there any possibilities to use DO without RDBMS (SQL server etc) at all? Could we use XML as a back-end storage system? Thank you in advance. This thread was imported from our support forum. The original discussion may contain more detailed answer. Original topic by maslukov. |
We will not support XML as storage format - here I'll try explain why: We need to serialize not simply a table data, but indexes - data structures allowing to navigate from object to object and get sequences of them with specific property values quite fast. In fact, such operations must require just 1 file seek in our case. 1 - because we precisely know the offset of data we're looking for. This information is stored in top pages of this index, which are normally 100% cached in RAM. But XML files aren't good from this point: normally you don't reference XML elements in files by their byte offsets, you use identifiers instead. But finding an element with specified identifier in XML file requires t = O(fileSize) instead of t = O(1) for positioning to precisely known offset. So of we'd implement this, performance of such a solution would be simply incomparable. There are some other reasons to avoid XML, e.g.:
So XML isn't attractive as storage format at all here. Now some good news:
P.S. We must update our Wiki on this week, and one of topics we're going to cover is how DO deals with indexes. |