Figaro Product Editions
Figaro currently comes in three different feature sets, with a fourth coming soon.
Figaro Data Store (DS)
Figaro Data Store, or DS, covers the basics of data storage. The API is simple and uses direct key or cursor-based access under the hood; this minimizes overhead
when adding, removing, and updating XML data. Frequently accessed data is cached in memory. DS is very fast; it avoids storing data to disk until it
is necessary. It performs no locking or other concurrency control, and it does not provide the ACID features of transactional systems. DS is simple and
efficient data storage for non-concurrent applications that favor raw
throughput over guaranteed data integrity.
Choose Figaro DS when:
- There is only one reader or writer, or multiple read-only processes.
- Transactional data protection (ACID) is not required.
Figaro Concurrent Data Store (CDS)
Figaro Concurrent Data Store, or CDS, adds locking and concurrency management services to DS. With the CDS features enabled, Figaro CDS uses locks to manage
multiple readers, and a single writer orchestrating their concurrent access to data within the databases. Figaro CDS is simple and efficient data storage for
concurrent systems. ACID transactions are not supported.
Choose Figaro CDS when:
- There are many concurrent readers and writers to the database.
- Reads are much more common than writes.
- Transactional data protection is not required.
Figaro Transactional Data Store (TDS)
Figaro Transactional Data Store, or TDS, adds full ACID transaction support to Figaro CDS. Changes to databases or their contents are atomic, consistent,
isolated, and durable when using TDS. Transactions can be short lived or long running, lasting days if necessary. Transactions can improve system throughput
in concurrent applications by grouping actions into a single commit to disk. Applications that use secondary indices to manage relationships
require transactions to keep those relationships consistent. The Figaro TDS transactional system in the Berkeley DB database engine offers a great deal of
flexibility to accommodate your desired performance and durability requirements. For example, Figaro TDS supports the ability to trade off durability for
speed, or to allow readers to see uncommitted data to reduce locking overhead. Figaro TDS utilizes log files to contain information about transactional data
that can be used to recover from application or systems failure.
Choose Figaro TDS when:
- There is a balance of concurrent readers and writers.
- Data integrity is critical.
- Recovery of committed data is a requirement.
- Database corruption is unacceptable.
Figaro High Availability (HA) (Coming Soon)
Figaro High Availability, or HA, adds support for replicated systems to Figaro TDS. There are the two basic reasons to build a replicated highly available
system: scale and reliability. Scale your transactional application beyond the processing constraints of a single system. Deliver a highly reliable system
where failure of one node does not cause system wide failure.
Replicated databases come in a number of different configurations. The HA layer of the Berkeley DB
database engine can be configured for any of the replicated designs that involve a single writer as a master and multiple replicas allowing for read-only access
to data.
Figaro HA will support the entire range of configurations from a simple hot standby with failover setup to a geographically diverse set of tiered
replica clusters. Figaro HA will make no assumptions about how the nodes communicate with one another; it will support hardware-specific communications as
easily as TCP/IP based networks. Third-party communications product support may become an option through the Windows Communication Foundation (WCF) layer.
Figaro HA will support any topology regardless of the number of replicated nodes within it. Upon notification of a failure of the master node, an election algorithm
will identify a new master so that processing can continue uninterrupted. Figaro HA can even be used as a completely disk-less in memory reliable distributed
storage system.
Choose Figaro HA when:
- Single-system throughput isn't enough to meet your data requirements.
- System uptime of %99.999 or better is a requirement.
- The system must be able to survive node failure.
- There is a need for consistent online backup of system data.
- Your architecture calls for a hot-failover strategy.
- Your hardware device has multiple redundant systems and must be able to fail from one to the other gracefully.
Figaro High Availability is expected to release in Fall 2009. Custom support for this feature is currently available, but subject to limited availability.
Pleasecontact us if you require immediate High Availability support.