home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / object / 4235 < prev    next >
Encoding:
Text File  |  1992-11-15  |  20.2 KB  |  432 lines

  1. Newsgroups: comp.object
  2. Path: sparky!uunet!paladin.american.edu!darwin.sura.net!wupost!emory!sol.ctr.columbia.edu!eff!world!sss
  3. From: sss@world.std.com (Sergiu S Simmel)
  4. Subject: Object Persistence Infrastructure -- Join the Kala Forum
  5. Message-ID: <SSS.92Nov15210227@world.std.com>
  6. Sender: sss@world.std.com (Sergiu S Simmel)
  7. Organization: Penobscot Development Corporation, Arlington MA
  8. Date: Mon, 16 Nov 1992 02:02:27 GMT
  9. Lines: 421
  10.  
  11.  
  12.  
  13.  
  14.  
  15. ---------------------------------------------------------------------
  16.  
  17.                  PENOBSCOT DEVELOPMENT CORPORATION
  18.  
  19.                               announces
  20.  
  21.                 A NEW FORUM FOR INFORMATION EXCHANGE
  22.  
  23.                                   on 
  24.                                   
  25.                   THE KALA(tm) TECHNOLOGY AND PRODUCT
  26.  
  27. ---------------------------------------------------------------------
  28.                        = third announcement =
  29.  
  30.  
  31. Welcome to Kala -- The Persistent Data Server. Now, you can ...
  32.  
  33.         o keep yourself up-to-date with Kala's new developments, 
  34.         o share your experience in using Kala with others, 
  35.         o hear what others have to say about it, 
  36.         o ask us questions and benefit from the answers we provide to
  37.           others, 
  38.         o participate in discussions on Kala-related technical topics,
  39.           such as data/object persistence, visibility management,
  40.           databases and file systems, etc.,
  41.         o learn more about the Kala technology, including as yet 
  42.           undocumented details,
  43.         o give us important technical and business feedback on our
  44.           products,
  45.  
  46.         o and more ...
  47.  
  48.     [for a sample posting, see attachment to this announcement]
  49.  
  50.  
  51. ... by subscribing to our new Kala Forum. This forum, organized as a 
  52. mailing list, will be moderated, so we will try to keep its focus and 
  53. orientation straight, and the junk mail out.
  54.  
  55. If you'd like to see a past issue, you can access them via anonymous
  56. FTP from world.std.com. The entire Kala Forum archive is located in
  57. the pub/kala/KalaForum directory. All files are ASCII text.
  58.  
  59. To subscribe (and subsequently for any other requests regarding your
  60. subscription, such as change of address, unsubscription, etc.), direct
  61. your request to:
  62.  
  63.                 --------------------------
  64.                 kala-request@world.std.com
  65.                 --------------------------
  66.         
  67. To contribute to the on-going discussions address your messages to:
  68.  
  69.                     ------------------
  70.                     kala@world.std.com
  71.                     ------------------
  72.  
  73. Since we value most advertizing by word-of-mouth and personal
  74. reference, please forward this message to whomever you believe could
  75. also benefit from subscribing.
  76.  
  77. We are looking forward to your subscription request and your
  78. participation in 
  79.  
  80.  
  81.                    ###   ==============  ###
  82.                    ###   The Kala Forum  ###
  83.                    ###   ==============  ###
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  _     _     ____   _         ____ tm ____________________________________
  92.  \\   /     |    \   \       |    \       \\\\ 
  93.   \\ /__     \ __ \   \       \ __ \       \\\\ 
  94.    \\    \    \    \   \       \    \       \\\\  
  95.     \\    \    \    \   \       \    \       \\\\  No more than you need !!!
  96.      \\'   \'   \'   \'  '----'  \'   \'      \\\\  No less than you want !!!
  97.       ........................................................................
  98.       Penobscot Development Corp. 50 Princeton Road Arlington Mass. 02174-8253
  99.        voice: +1-617-646-3951  fax: +1-617-646-5753  email: kala@world.std.com
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106. For BYTE Magazine, December 1992 Issue
  107.  
  108.                                                 Persistent Data Servers
  109.                                        --Maintain the structure of data
  110.                                        --Perform like file systems
  111.                                        --Offer database features
  112.  
  113.  
  114. =========================================================================
  115.  
  116.                             Objects of Substance
  117.  
  118. Persistent data servers provide a new way to store object-based data.
  119.  
  120.                      Sergiu S. Simmel and Ivan Godard
  121.  
  122. =========================================================================
  123.  
  124.  
  125. One knock often made against software objects is their transient
  126. nature.  Traditionally, an object is ephemeral; it is defined,
  127. manipulated, and destroyed by the program that creates it. It has no
  128. existence beyond the program's execution.  Unlike real-world objects,
  129. and unlike computer generated data that exists outside of a program in
  130. a file system or database system, software objects are usually not
  131. persistent. The only way one program can share an object it creates
  132. with another program is for the two programs to be executing at the
  133. same time. This requirement puts a crimp in any plans for developing
  134. distributed object systems.
  135.  
  136. Object-oriented database management systems provide one means of
  137. giving objects the characteristic of persistence; file systems provide
  138. another.  Neither solution, however, is ideal for all applications,
  139. situations, and implementations. That's the rationale behind a new
  140. class of storage software called Persistent Data Servers.
  141.  
  142. ---------------
  143. Hobson's Choice  
  144. -----------------------------------------------------------------------
  145. The simplest persistent data storage available to you is the file
  146. system on your disk drive. File systems have some attractive
  147. characteristics; their performance is good, they can hold any data,
  148. they're easy to use, and, of course, the price is right. Conversely,
  149. files are unreliable.  They provide no mechanism for in maintaining
  150. data consistency and only primitive data sharing facilities. Few file
  151. systems offer version control and all require that you transform data
  152. between "internal" and "external" forms all the time.
  153.  
  154. Unlike a file system, a true database management system provides
  155. mechanisms for sharing data and for ensuring the integrity of the
  156. data.  It supports transactions and version control, although the
  157. specifics of these functions may not be exactly what your application
  158. needs. Finally, a database system is scalable, and much more robust
  159. than a file when your hardware or software fails.
  160.  
  161.   The downside to a database system is that, compared to a file
  162. system, it is slower by an order of magnitude or more. Also, a
  163. database system generally confines you to dealing only with the kind
  164. of data that it can handle. In addition, a database is usually very
  165. complicated, difficult to learn and use, and expensive, both in terms
  166. of your cost of operation and in the amount of system resources they
  167. consume.
  168.  
  169.   Whether you choose a file system or a database manager, then, you
  170. have to sacrifice either economy or performance. Is there a happy
  171. medium?  Something with the speed and flexibility of files, the
  172. reliability, shareability and robustness of databases, and at a cost
  173. that won't break your wallet or the available hardware? A new breed of
  174. products, persistent data servers, aims squarely at the yawning gap
  175. between DBMSs and file systems.
  176.  
  177. --------------
  178. An Alternative
  179. -----------------------------------------------------------------------
  180. Kala is a persistent data server from Penobscot Development
  181. Corporation (Arlington, MA). It is a software subassembly, available
  182. to applications and database managers, that manages both the state and
  183. visibility of persistent data. It takes care of the how and the where
  184. (how data is stored and retrieved, and where it is stored), and also
  185. copes with the who, which and when of data management -- who can store
  186. and retrieve which data and when.
  187.  
  188.   Kala is similar to a file system in its simplicity, high
  189. performance, low semantic level (although it also supports pointers,
  190. not just bits), and low cost operation. And, it is similar to a DBMS
  191. in its robustness, support for transactions, security features, access
  192. control, configuration ability, reliability, scaleability, and so
  193. forth. But, at the same time, it is different than either of these
  194. environments.
  195.  
  196.   Kala combines the benefits of both these worlds while avoiding the
  197. drawbacks of each. This type of storage software can provide low level
  198. persistent data services. No more, no less.
  199.  
  200. --------------
  201. Managing State
  202. -----------------------------------------------------------------------
  203. Like file systems, a persistent data server offers a get/put interface
  204. to the storage subsystem and can store any kind of data. Unlike file
  205. systems or the BLOBs (Binary Large OBjects) used by some database
  206. systems, a persistent data server lets the stored data retain its
  207. internal structure, no matter how complex. Suppose your application
  208. builds a linked list in memory and saves the list to the persistent
  209. store. When you retrieve that data it will still be a linked list --
  210. topologically the same as the original even though the memory
  211. addresses of the nodes are completely different (see the figure).
  212.  
  213.   Of course, object databases can also store references, but the links
  214. used by the persistent data server are regular machine pointers, not
  215. performance-costly object-oriented pointers. Your stored data can have
  216. any representation, including packed structures and executable code.
  217. You aren't restricted to a few primitive data types or the type of
  218. structures offered by a specific access language. Kala is as happy
  219. storing C++ or COBOL data as it is Lisp, assembler, or Smalltalk.
  220.  
  221. -----------------
  222. Development Steps
  223. -----------------------------------------------------------------------
  224.   The type of persistent data storage Kala provides lets you forget
  225. the distinction between in-memory and on-disk data or object
  226. "formats." You can program using Kala as if your code never had to
  227. remember anything across executions or applications. Write your
  228. applications as a demo, with dummy data and no storage i/o. You can
  229. lay out your data or objects in memory in the way best suited for
  230. in-memory-only processing and fastest execution of your algorithms.
  231.  
  232.   Once you are satisfied with the execution of your new "demo"
  233. application, you can think about a production-level persistent store
  234. for your objects. You first decide what the "unit of transfer" is,
  235. that is, which data should go to store and come back together as a
  236. unit. The ability to choose the transfer unit improves performance
  237. because you can bring in at once all the different pieces of data your
  238. application requires. These pieces may be many different objects or
  239. parts of objects -- the application doesn't care.
  240.  
  241.   For example, if the data you're using is a linked graph structure,
  242. you can either transfer the entire graph at once or just each node as
  243. you need it. Or, you can load in the entire graph except the contents
  244. of a single large but rarely referenced field in each node. You can
  245. even bundle the graph with other data, or choose some other unit of
  246. transfer.  The transfer unit you select consists of hunks of bits and
  247. pointers possibly spread all over memory.
  248.  
  249.   Using convenient calls to the API, you tell the software where the
  250. data is and where, within that data, the machine pointers are.  The
  251. persistent data server takes care of the rest. It copies that data (no
  252. more and no less) onto the persistent store, and gives you a "claim
  253. check" in return. When you present that claim check, the server will
  254. promptly retrieve that same data and lay it out in the application
  255. memory.
  256.  
  257. -------------------
  258. Types Without Limit
  259. -----------------------------------------------------------------------
  260. Persistent data servers can handle anything that's made out of bits
  261. and pointers including objects, source code, records, images,
  262. executable code, noise, video, and so forth. This "model neutrality"
  263. makes a persistent data server an ideal interoperability point in the
  264. storage domain. It can reside "below" all other subassemblies and
  265. components that support only one or at most a few data organizations.
  266. In this respect, the role of a persistent data server in the storage
  267. domain resembles the X Window System in the display domain, or
  268. Postscript in the printing domain.
  269.  
  270.   For example, an object management system can interpret data as
  271. object slots and methods. Because a persistent data server isn't bound
  272. to any particular notion of object, it can simultaneously support
  273. several types of objects. The access to and visibility of these
  274. objects is guaranteed to remain the same for different language
  275. systems, different hardware platforms, and different object management
  276. systems.
  277.  
  278. -------------------
  279. Managing Visibility
  280. -----------------------------------------------------------------------
  281. Conventional DBMSs and file systems deal with transactions, access
  282. control, security, licensing, version control, and configuration
  283. control as separate services. This practice has led to a proliferation
  284. of transaction managers, security managers, configuration managers,
  285. etc.  The net result is unnecessarily complex, large, and
  286. overhead-burdened products.
  287.  
  288.   A persistent data servers works differently. It recognizes that all
  289. the services offered by traditional DBMSes are simply facets of the
  290. same basic problem: controlling the visibility of data.
  291.  
  292.   If you analyze the nature of a transaction commit in a
  293. conventional database, you find that it is a means making new values
  294. visible to the rest of the world by replacing the old values. Look at
  295. security grants. A security grant is simple a means of making
  296. data accessible (visible) to qualified agents until the access is
  297. revoked.  You can think of a license as a means of making a
  298. dataset available (visible) to someone on the basis of pre-paid
  299. rights. A configuration is simply the bundling of a collection of data
  300. so that the collection is always visible as a unit. Each DBMS has its
  301. own idea of how to implement the semantics of these services.
  302.  
  303.   Take transactions, for example. Many useful transaction models
  304. exist, because the needs of automated teller machines are different
  305. from those of CASE repositories, which, in turn, are different from
  306. those of Personal Information Managers. Several useful access control
  307. schemes also exist. Security is treated differently in each
  308. organization, while all information vendors have different needs for
  309. their licensing models.  Mathematically, all models are equivalent
  310. because each can be used to implement any of the others. But, in
  311. practice, trying to do so leads to unwarranted complications,
  312. overhead, and bulkiness.
  313.  
  314.   Persistent data software should be different. An application like
  315. Kala doesn't provide a single model, or a "one-size-fits-all" solution
  316. for each service. Instead, it provides a handful of primitives that
  317. you can use to build the right model for the application. Simple
  318. models typical of conventional DBMSs can be supplied prebuilt for you
  319. to use.
  320.  
  321. --------------------
  322. Managing Performance
  323. -----------------------------------------------------------------------
  324. The performance of a persistent data server for a single user is equal
  325. to the performance of a good file system when reading and writing the
  326. same data. Perhaps surprisingly, its <I>relative performance
  327. actually improves with multiple users in a client/server
  328. configuration. This phenomenon occurs partly because of the seek
  329. optimization and shared buffering of common data used by Kala, and
  330. partly because it is no longer necessary for each application to
  331. individually open and close files.
  332.  
  333.   Kala is algorithmically faster than equivalent conventional
  334. technology exactly when you need it most: at peak server loads. It
  335. uses a non-write-in-place strategy, never overwriting a prior value.
  336. This feature gives it an effective 50 percent update performance
  337. advantage in transaction contexts such as OLTP (On Line Transaction
  338. Processing) applications. Kala requires only 1 + 1/n disk accesses per
  339. update (one to write the new data to free storage, and a fraction to
  340. record the commit where the commit record is shared with other
  341. transactions). A high-performance conventional DBMS needs 2 + 1/n disk
  342. accesses for the same task (one to write the former value in case of
  343. crash, one to write the new data back over the former value, and
  344. again, a fraction for the commit). This performance gain is not at the
  345. expense of data reliability and recoverability.
  346.  
  347. -----------------------------------------------
  348. Persistent Data Servers Versus Object Databases
  349. -----------------------------------------------------------------------
  350. Any quality ODBMS can recover all transactions that have been
  351. committed, even if it were only milliseconds before the crash.
  352. Persistent data servers can do the same, while performing as fast as
  353. less reliable systems such as file systems.
  354.  
  355.   Many conventional ODBMS that have good performance as single-client
  356. applications with systematic access patterns, but degrade badly in
  357. multiple- client applications such as groupware, or when used
  358. concurrently by different applications that randomly access large
  359. pools of data. Many ODBMSes are tuned to display quick response to
  360. predictable access patterns. Thus they often achieve local
  361. (per-client) optimums at the expense of global (across clients)
  362. slow-down.
  363.  
  364.   For example, some ODBMSs improve object faulting performance by
  365. page- mapping databases using the file-mapping facilities of the OS.
  366. In this instance, the unit of transfer is the fixed size virtual
  367. memory page (or a multiple of it). These ODBMSes show no sensitivity
  368. to the actual access patterns of the application.
  369.  
  370.  If the data is a payroll database, an application may need pay
  371. records scattered throughout the database. The result in a page-based
  372. ODBMS is that it may bring a 4- or 8-KB page into memory to get an
  373. object that may be a few hundred bytes at most. The remainder --
  374. perhaps 80 or 90 percent of the total space and access time -- is
  375. wasted. The ODBMS may be performing well but the application grinds to
  376. a halt due to thrashing in the operating system's page manager.
  377.  
  378.   By contrast, Kala's user-specified units of transfer eliminate
  379. internal fragmentation. You get only what you requested -- that is, as
  380. little as one byte and as much as the size of the virtual memory, or
  381. more. In a multi-user environment, this feature also takes care of the
  382. severe security loopholes introduced by page- mapping based approaches
  383. -- another acute real-world problem.
  384.  
  385.   In conventional systems with single users, you can overcome
  386. thrashing and other performance problems by having the user manually
  387. cluster the data, relying on the programmer's ability to predict the
  388. access patterns of a single application and thus optimize the database
  389. for that application alone. However, this traditional technique breaks
  390. down badly when one application needs one selection of data from the
  391. database, and a second application, perhaps running concurrently for
  392. other users, needs different selections. The result is
  393. less-than-optimal global behavior.
  394.  
  395.   Kala doesn't employ such local optimizations. Instead, it uses
  396. actual access history to dynamically rearrange the store, so that
  397. global optimum occurs. If there is only a single user application,
  398. this type of software should be able to achieve clustering as good as
  399. the best packing performed by hand. It also should give globally
  400. optimum performance in multiple applications, without requiring the
  401. services of an expensive database administrator to tune the
  402. clustering.
  403.  
  404. --------------
  405. Moving Forward
  406. -----------------------------------------------------------------------
  407. Persistent data servers such as Kala provide a new and exciting middle
  408. ground between the performance and simplicity of file systems and the
  409. capabilities of database managers. They are particularly useful as the
  410. underpinnings of object stores because they maintain the structure of
  411. the data on the disk, making it independent of the application that
  412. created it.
  413.  
  414.   More and more, applications need access to complex data types. More
  415. and more, applications must support multiple users in a distributed
  416. environment. From flat files to objects, persistent data servers can
  417. handle them all.
  418.  
  419.  
  420. -----------------------------------------------------------------------
  421.     Ivan Godard and Sergiu S. Simmel are co-founders of Penobscot
  422.  Development Corporation of Arlington, Massachusetts. Simmel holds an
  423.     MS in Computer and Information Sciences from the University of
  424.    Minnesota.  His areas of expertise include CASE, hypermedia, and
  425.  object-oriented databases. Godard has contributed to the development
  426.  of Algol68, Ada, and Mary, the first wide-spectrum language, and has
  427. taught post-graduate courses at Carnegie-Mellon and the University of
  428.   Maine. You can reach them at +1-617-646-3951 or on the Internet as
  429.              kala@world.std.com.
  430. -----------------------------------------------------------------------
  431.  
  432.