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

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