Cache Database: Introduction to a New Generation Database Amrita Bhatnagar Department of Computer Science and Engineering, Birla Institute of Technology, A 7, Sector 1, Noida 201301 UP amritapsaxena@gmail.com Abstract -- This paper explores a new generation database i.e. cache database. Cache is a new generation of ultra-highperformance database technology. It combines an object database, high-performance SQL, and powerful multidimensional data access all of which can simultaneously access the same data. Data is only described once in a single integrated data dictionary and is instantly available using all access methods. Cache provides levels of performance, scalability, rapid programming, and ease of use unattainable by relational technology. The objective of this paper is to discuss features & benefits of cache database. Keywords: Unified data architecture, Multidimensional data engine, Traditional bit map indexing. I. INTRODUCTION TO CACHE EARLY in the process of designing a new application, developers must decide upon their approach towards data modeling. For most, this comes down to a choice between the traditional modeling of data as relational tables and the newer approach of modeling as objects. Faced with the need to handle complex data, many developers believe that modeling with objects is a more effective approach. When first introduced in the late 1960s, object technology was revolutionary. By the late 1980s it was becoming mainstream, for good reasons. Not only did it simplify interface development, it provided a more flexible and capable way to deal with data that fundamentally changed the way applications are built. Instead of representing data in rigid tables the way relational databases do, object technology describes data in terms of classes. An object is an instance of a class in the same way that a specific oak tree is an instance of the class of oak trees. Object technology contributed the concept of inheritance, allowing classes to be arranged hierarchically. The class of oak trees could inherit data structures and behaviors from the more general class of trees. Object technology maps well to the way we see the world, and OO languages proved to be more versatile in most areas of programming. They brought programming languages closer to natural language and dominated thinking in most areas of software development. OO was referred to as the new paradigm and its influence stretched far and wide. Cache is a new generation of ultra-high-performance database technology. It combines an object database, high-performance SQL, and powerful multidimensional data access all of which can simultaneously access the same data. Data is only described once in a single integrated data dictionary and is instantly available using all access methods. Cache provides levels of performance, scalability, rapid programming, and ease of use unattainable by relational technology.intersystem develop this software. But Cache is much more than a pure database technology. Cache includes an application server with advanced object programming capabilities, the ability to easily integrate with a wide variety of technologies, and an extremely highperformance runtime environment with unique data caching technology. Cache, data can be simultaneously accessed as objects, relational tables, and multidimensional arrays. II. OF CACHE Caché Data Server Features: When it comes to transaction processing, performance is critical. Caché s data server technology lets you scale applications up to serve tens of thousands of users without sacrificing speed. Multidimensional Data Engine All data is stored in sparse multidimensional arrays that eliminate the processing overhead related to the joins common to relational databases. Multidimensional Data Engine High performance. Massive scalability. Realistic modeling of complex data. Efficient data storage consumes less disk space, and requires less hardware. 28
CACHE DATABASE Object Data Access Data can be modeled as objects. Caché supports encapsulation, multiple inheritance, polymorphism, embedded objects, references, collections, relationships, BLOBs. SQL Data Access Allows relational access to Caché database. Supports both ODBC and JDBC. MULTIDIMENSIONAL DATA ACCESS Provides direct control of the multidimensional structures in the Caché database. Unified Data Architecture Object classes and relational tables are automatically generated from a single data definition. Transactional Bit-Map Indexing Caché s bit-map indexes can be updated extremely quickly, making them suitable for use with live data. Performance Monitoring API Connects to popular monitoring tools like BMC s Patrol and Fortel s Sightline. Object Data Access Rapid application development. Intuitive modeling of complex data. SQL Data Access Boosts performance of legacy relational applications. Provides SQL connectivity to standard query, reporting and analysis tools. High performance. Enables connectivity to legacy systems. Unified Data Architecture Rapid development. Eliminates impedance mismatch between objects and tables. Transactional Bit-Map Indexing Fast response to complex queries. Quick updating enables real-time data analysis while maintaining high-performance transaction processing. Performance Monitoring API Aids in application optimization. Provides a method of demonstrably meeting performance specification Cache Application Server Features When it comes to rapid development and connectivity, Caché s application server features give developers all the flexibility and power they need. Easy Class Projections With just a few clicks, Caché classes can be projected as Java, COM, or C++ classes. Easy projection as EJBs is also supported. Easy Class Projections Rapid development. Connectivity to other technologies and tools. ENTERPRISE JAVA BEANS Caché implements Bean-Managed Persistence without the needs to manually map between Java classes and relational tables. CACHÉ SCRIPTING LANGUAGES Two interoperable languages (Caché ObjectScript and Caché Basic) for method coding and business logic scripting. Both support simultaneous object, SQL, multidimensional data access. ENTERPRISE JAVA BEANS Enables sharing of functionality within a Java framework. Rapid-development of bean-managed persistent EJBs. Better scalability and database performance for EJB applications. CACHÉ SCRIPTING LANGUAGES Rapid application development. Flexible data modeling. Compatibility with object and Web technologies. 29
Allows Caché to access data from relational databases. COM Gateway Allows Caché applications to use COM objects. High performance link to the popular GUI development tool, Visual Basic. Reduces application-server to database-server network traffic by creating shared data caches on the middle tier of distributed architectures. Connectivity to data stored in relational databases. COM Gateway Enhanced flexibility for Caché applications. Better integration with Microsoft products. Enables rapid GUI development. Dramatically increases the scalability and performance of thin-client systems. Cache Web Features When it comes to enabling the creation of sophisticated highperformance Web applications, Caché is in a class by itself. Caché Web technology brings all the capabilities of Caché to the demanding environment of the Internet, where rapid development and adaptability are as important as database speed and scalability. Automatic XML Mapping Caché can automatically generate XML documents and their corresponding DTD s or XML schemas from Caché classes. Web Services Wizard Allows any Caché method to be published as a Web Service. Caché automatically generates the WSDL descriptor and, when the service is invoked, responds with SOAP-formatted XML. Caché Server Pages Caché Server Pages reside and execute on the Caché data server, taking advantage of speedy intra-process communications. Connection to the Web server is made using fast standard APIs. Caché Application Tags Caché Application Tags execute functions on the Caché data server and/or the browser. They can be incorporated into Caché Server Pages using any text editor or off-theshelf Web page creation tool. Caché Application Tags are extensible, so they can be custom-built to fit the needs of any Web application. Automatic XML Mapping Rapid development of XML-compatible applications. XML enables application to application data sharing. Web Services Wizard Allows sharing of functionality over a network. Enables the integration of legacy applications. Caché Server Pages High-speed Web access, compatible with all major Web servers. Boosts performance and scalability by offloading business logic processing to the powerful Caché data server. Centralized application logic enables fast and easy application changes. Caché Application Tags Fast Web application development. Components are reusable, and developers can work with familiar tools. Promotes cooperative Web design i.e.: Web page designers craft the screens through which users will navigate; application programmers code the tags that give the pages functionality. 30
CACHE DATABASE Hyper-Events Hyper-events allow events occurring on a browser (mouse clicks, mouse movements, field value changes, timeouts, etc.) to invoke server-side operations and to update the current page without repainting it. Caché Web Form Wizard Automatically generates ready-to-run HTML forms from Caché Object classes. Hyper-Events Browser events can trigger database responses without waiting for a page to be submitted. Web applications are much more interactive and responsive. Caché Web Form Wizard Rapid Web development. Applications are instantly Webenabled. 20X Faster SQL IN CACHE Customers who switch to Caché from relational databases report that their average performance is up to 20 time faster, running on the same hardware, with no changes to the application. What is it about Caché that lets applications run so fast? Multidimensional Data Engine: Caché stores data in the form of multidimensional arrays instead of in a series flat tables. Data stored in a multidimensional structure is, by definition, already cross-referenced by as many parameters as the programmer chooses. It is possible to access or update data in a multidimensional database without performing the complicated and time consuming joins required by relational database systems. Processing overhead is greatly reduced, so applications run much faster. Intersystem makes the multidimensional data engine even more efficient by employing the concept of sparse arrays. Null cells within the Caché database do not take up any disk space. Less time is required to search for data or load it into local memory, because there are no empty data cells. Transactional Bit-Map Indexing : In a bit-map index, a property of a class (column of a table) is described by an array of bits: for every possible value there is a string of bits representing each object in the class (row in the table). The bit is 1 if the object has that property value, 0 if it does not. The advantage of bit map indexes is that complex queries can be processed by performing Boolean operations (AND, OR) on the indexes creating a temporary index that says exactly which instances (rows) fit the query conditions, without searching through the entire database. Although bit-map indexes are known to significantly improve complex query response, they traditionally have been slow to build, and thus too cumbersome to use in anything other than data warehousing applications. However, Cache s new bit-map indexing capability is nimble enough to use even with rapidly changing transactional data. Enterprise Cache Protocol: InterSystems Enterprise Cache Protocol (ECP) can increase application performance in distributed systems. It is optimized for the thin-client architectures that are most commonly used today. When information is requested across the network, the reply data package includes not only the desired piece of data, but also the entire database block where that data was stored. The natural data relationships inherent to objects and Caché s multidimensional data model make it likely that this extra data is related in some way to the original request. The extra data is cached on the application server, where it is available to satisfy subsequent requests from the client, or in fact from any client connected to the application server. ECP automatically takes care of maintaining database locks, propagating changes back to the data server, etc. The performance and scalability benefits of ECP are dramatic. Clients enjoy faster responses because they frequently use locally cached data. And network traffic is greatly reduced, so any given network can support many more application servers and clients. ADVANTAGES OF CACHE DATABASE Performance Scalability Rapid Development Cost effectiveness flexibility faster SQL response compatibility with existing tools simplified maintenance APPLICATION OF CACHE DATABASE Health care Applications Web Applications Financial Applications Telecommunication Government 31
III. REFERENCES [1] Andreas Dieckow Using Intersystem cache for securely storing credit card data http:/www.intersystems.com/cache/ whitepapers/securely_storing_credit_card.html. [2 ] Mark Ramsay Real world Bench mark: cache vs oracle in a data warehousing Application http://www.intersystems.com/cache/whitepapers/ warehouse.html. [3 ] 20x Faster.How does cache do that http://www.intersystems.com/cache /whitepaper/ tmdmdcp.html. [4] Technology guide:cache,vers2012.1.1/2012. [5] Mark Massias Performance comparison of Intersystem cache and oracle in data mart application http/ :www.intersystem.com/cache/whitepapers/ datamart_wp.html.. Amrita Bhatnagar obtained B.E. in Computer Science from SRMSCET Bareilly, 2002. She worked as assistant professor in various Engineering colleges in the Department of Computer Sciences. She is having 10 years of rich experience of teaching in Computer Science subjects. Concurrently, she is doing MTech from the BITS Mesra Ranchi University (Noida Extension Center) in Computer Science. She has abiding passion for teaching and has taught a number of courses namely Computer Networks, computer organization, microprocessors, digital logic design and C Programming Concepts. She published 5 papers. 32