|
|
|
|
|
|
|
|
|
|
|
|
We control the code. Since this is a BSD licensed open source system, we have the code and can control when updates happen as opposed to working on OpenBase's release schedule for their shared system. This reason alone is enough since it significantly improves our ability to control the quality of the system. |
|
|
No more installation conflicts. Since we control the server, install location, and ports, there is no chance of installation conflicts with other products such as LightSpeed, Chronos and PhoneValet. Often, people would need to install previous versions of anyone of these packages, including Daylite. The result was that one or more of these apps would stop working. |
|
|
Reduced network interference. The way we communicate with offline and personal databases in the new system shields it from network changes on laptops or client desktops. A laptop can easily change networks as the user moves from one location to another. This networking change would typically cause OpenBase some trouble and it would sometimes render offline and personal databases inaccessible. |
|
|
Non-blocking backups. Previously, when a backup was being performed, users were locked out of Daylite—annoying especially with large databases. This is no longer the case and users will see no interruption of service while backups are being performed. |
|
|
Improved startup times. With the new system, databases are available within 1.5 seconds, no matter how large the database. Previously, for example, a 1.1GB database could take anywhere from 27 seconds to over 13 minutes to start. |
|
|
Improved memory footprint. As databases grow, the amount of real memory they take should stay constant and predictable. For example, a 1.1GB database takes approximately 17 MB of real memory for one connection. A 4.5 GB database takes the same 17 MB of real memory for one connection. Previously, the 1.1GB database would take 173 MB of real memory and a 4.5 GB database would take 420 MB of real memory respectively. The new system allocates and deallocates memory on a per connection basis (approximately 10 MB). This memory system is significantly better for laptops and mobile use cases. |
|
|
Multi-core savvy. Postgres is “multi-process” and not “multi-threaded”. This scheme really helps on multi-core systems such as all recent and probably all future Macs. Potentially 8 connected users would each have one connection on one of 8 cores and each connection can max out the core they reside on. This will improve responsiveness and better utilize current and future hardware. |
|
|
Sophisticated query planner. Applications like Daylite generate SQL on the fly to query the database. This generated SQL may not be as efficient as hand tuned SQL. Postgres includes a query planner that takes the machine generated SQL and reformats it for better performance. As a result, some query speeds are significantly improved. |
|
|
Apple uses and contributes to Postgres. Apple includes a version of Postgres in Remote Desktop and Final Cut Server, so the likelihood that an OS update would break the core database engine, leaving us stranded for a few weeks or months, is significantly reduced. Other big names that use Postgres include Sun, Yahoo! (albeit heavily modified), Skype, Fujitsu and more. |