Building high performance applications with .Net has just gotten easier.
Persistore provides cutting edge technology which enables managed code to
perform both high performance interprocess
communication and data persistence, often the slowest part of any design.
Persistore enables you to build multiprocess applications that can communicate
using shared memory and create huge fast in-memory data repositories. Morantex
have integrated high speed native Windows features with a set of advanced
managed .Net components to bring you the ultimate in cutting edge .Net performance.
What Persistore Offers
By leveraging our high performance shared memory management kernel API, Persistore makes it straightforward
for your manahed code to persist objects,
variables, collections or arrays with outstanding performance. Persistence is available in several modes offering
speed/flexibility tradeoffs. Rich indexing features allow you to access and
update data rapidly, even with large volumes. Our advanced technology is able to
read/write managed items at very high speed, far in excess of what is possible
using ordinary reflection or serialization.
Express Data Access
Morantex have developed leading edge technology that we call EDA enabling managed code to access
and update persisted data in real-time. This enables your code to directly
modify your data in-place. Developers can now easily write critical code that performs updates in the
hundreds of thousands per second range on just a single core.
Because Persistore leverages shared/mapped memory we make it easy for you to
enjoy all the benefits that this provides. One of the most important of these is
high speed IPC. Persistore provides a concept termed the Mapped Procedure Call
- MPC that combines fast windows thread interrupt capabilities with shared
memory message passing. This feature is avilable in two forms intra-process or
inter-process, both of which offer outstanding performance. Applications can
also share arbitrary structures using the shared variable support. These features offers
a fast, flexible and straightforwad way to take full advantage of Windows shared
Persistore implements its own structured hierarchical storage system, designed
from the ground up for persisting, accessing and updating managed data in
secondary in-memory storage; We call this a Datapool. A Datapool is a
relocatable mapped memory block, multiple processes may load it into their
address space with a single method call and 32-bit and 64-bit applications can
do so simultaneously. A Datapool support directories which like folders
on a disk volume, facilitate hierarchical organisatiom of information. The Datapool is designed to store structs, classes,
streams, indices, arrays, variables, collections and more all from managed code
and all with outstanding performance.
When your application persists data, Persistore automatically persists all
associated type information too. This enables other applications, tools and
utilities to subsequently access your data without any need to explicitly locate
or load the
persisted type's defining assembly DLLs. This feature means that a datapool is
fully self describing and forms the basis for our networked LINQ support. Types
are persisted by persisting the defining assemblies using the SharedStream
Persistore provides high performance for applications, services and so on, that
are executing on the same machine, this is the basis of real-time shared memory
systems. However networked client applications can also access your persisted
data by leveraging our Memory Accelerated Query Support - MAQS. This technology
leverages the type persistence features and combines it with proprietary high
speed serialization and our Persistent Query technology to enable remote
client applications to execute user-written LINQ queries and retreive the result
sequence over the network.
Persistore provides a unique and powerful feature that allows users to create
and run custom LINQ queries using a special IDE called the MAQS Query
Workbench. This tool provides a syntax highlighting editor and additional
services for writing and testing LINQ queries against persisted data in a
datapool. This feature allows both user defined and anonymous types to be
created by queries. The result type is itself persisted into the datapool as is
the compiled query assembly. Our network server support then allows remote
clients to invoke these persistent queries by name and obtain the results, query
parameters are fully supported.
Find out more
To learn more about these and the many other features of Persistore and discover
how it can help your organization acheive new levels of performance, click on
the Introduction For Developers PDF to the right of this page or simply
contact our enquires department (See the "Contacts" page of this website).