Project

General

Profile

Activity

From 08/22/2011 to 09/20/2011

09/20/2011

11:40 PM Revision 6480 (metacat): Removed extraneous comments.
Matt Jones
11:36 PM Revision 6479 (metacat): Add boolean field for synchronization status.
Matt Jones
11:03 PM Revision 6478 (metacat): New default properties for dataone MN properties.
Matt Jones
10:56 PM Revision 6477 (metacat): A configuration section for DataONE Member Node properties.
Matt Jones
10:20 PM Revision 6476 (metacat): Fix getCapabilities to properly throw ServiceFailure when properties can not be read, rather than failing with a log message. Fix properties in the Node object to reflect their correct values. Set the sync schedule properly to default to 5 minute intervals. Improve documentation.
Matt Jones
08:52 PM Revision 6475 (metacat): Reformatted to correct indentation to make class readable.
Matt Jones
02:32 PM Revision 6474 (metacat): newer d1 jars -- contains CN.isNodeAuthorized() method
ben leinfelder
02:12 PM Revision 6473 (metacat): explicitly require java 1.6
ben leinfelder
02:11 PM Revision 6472 (metacat): collect "message" param from multipart request for MN.synchronizationFailed method
ben leinfelder
02:08 PM Revision 6471 (metacat): Reverting previous @Overrides chanrge from r6470, as that is the desired
behavior under Java 1.6 -- previous versions of Java (e.g., 1.5) will not
comile with this usage of the @Overrides an...
Matt Jones
01:36 PM Revision 6470 (metacat): Removing incorrect @Override annotations that were preventing compilation. The methods marked did not actually override a method in the superclass, so they were not compiling. I think @Overrides was being mistaken for methods that implement an interface but aren't actually in the superclass.
Matt Jones
11:55 AM Revision 6469 (metacat): use d1_common_java's date serialization utility for parsing parameters
ben leinfelder
10:48 AM Revision 6468 (metacat): catch runtime exceptions that arise from hazelcast storage errors in the system metadata map
ben leinfelder
09:12 AM Revision 6467 (metacat): Lock the system metadata entry in hzSystemMetadata when calling setReplicationPolicy().
Chris Jones
09:10 AM Revision 6466 (metacat): Lock the system metadata entry in hzSystemMetadata when calling registerSystemMetadata().
Chris Jones
07:18 AM Revision 6465 (metacat): Remove references to CNReplicationTask.
Chris Jones
07:17 AM Revision 6464 (metacat): Remove the CNReplicationTask (for now). We will be using Metacat's ForceReplicationHandler to replicate science metadata across CNs, and may explore the use of a 100% evicted hzScienceMetadata map. Either way, the distributed task design won't be needed. When a dropped CN comes back online, we'll catch it up based on last modified dates for PIDs in the hzSystemMetadata map.
Chris Jones
07:12 AM Revision 6463 (metacat): Change isNodeAuthorized() to query the hzSystemMetadata map rather than the hzPendingreplicationTasks map. The latter isn't needed for authorization since the ReplicationStatus for each Replica in SystemMetadata lists the status of the replica and can be queried.
Chris Jones
06:42 AM Revision 6462 (metacat): Add getNodesMap() to return the hzNodes map from the process cluster. Remove getPendingReplicationTasks since that structure is being removed. Add minor documentation.
Chris Jones

09/19/2011

06:29 PM Revision 6461 (metacat): Set the correct cluster name and password for the D1 Hazelcast process cluster. This will likely change for production deployments.
Chris Jones
03:39 PM Revision 6460 (metacat): only include 0.6.4 schemas for D1. Will also need to update this when we release whatever v1 ends up being.
ben leinfelder
03:26 PM Revision 6459 (metacat): lookup latest system metadata update date for use in synchronizing CN-CN when an offline nodes comes back online
ben leinfelder
12:17 PM Revision 6458 (metacat): changed the key type from Identifier to String for ObjectPathMap. (need a Comparable key).
rnahf
11:48 AM Revision 6457 (metacat): rework this to be MN->MN replication. Should be fleshed out more.
ben leinfelder
11:43 AM Revision 6456 (metacat): throw RuntimeExceptions when store() methods throw declared exceptions -- we want callers to put() to be alerted if there are errors.
ben leinfelder
10:18 AM Revision 6455 (metacat): move CNReplicationTask to the hazelcast package
ben leinfelder

09/16/2011

05:05 PM Revision 6454 (metacat): do not throw exception when checking for system metadata - boolean return is good.
use ReplicationStatus.valueOf() instead of convert() ben leinfelder
05:04 PM Revision 6453 (metacat): implicit success for setting accessPolicy - trust that the MapStore persists the updated system metadata
ben leinfelder
05:03 PM Revision 6452 (metacat): test relationship assertion using obsoletes
ben leinfelder
04:42 PM Revision 6451 (metacat): check if system metadata exists rather than just the id mapping (before creating the entry)
ben leinfelder
04:01 PM Revision 6450 (metacat): treat access rules atomically - do not group them together otherwise the intent is subverted
ben leinfelder
03:23 PM Revision 6449 (metacat): only "save" to the shared system metadata map - not directly to the table store.
ben leinfelder
03:17 PM Revision 6448 (metacat): do not send <systemMetadata> with the <docInfo> replication information - this is handled by the Hazelcast shared map
ben leinfelder
03:07 PM Revision 6447 (metacat): rely on Hazelcast to store the SystemMetadata locally for the node. Entry event listeners store the shared system metadata on their local node when alerted. TODO: remove old replication code that included system metadata xml when replicating scimeta and data
ben leinfelder
02:24 PM Revision 6446 (metacat): move bulk of the Hazelcast code into HazelcastService from CNodeService so that it is centrall located - easier to manage and configure
ben leinfelder
01:13 PM Revision 6445 (metacat): verify that the sysmeta checksum value matches the computed checksum value when calling create()
https://redmine.dataone.org/issues/1795 ben leinfelder
01:08 PM Revision 6444 (metacat): include sysmeta for uploaded BIN data that comes through the legacy Metacat servlet API
ben leinfelder
10:51 AM Revision 6443 (metacat): check for null pointers when adding system metadata/creating records during cn.create()
ben leinfelder
10:42 AM Revision 6442 (metacat): removing unneeded class (never used)
rnahf

09/15/2011

01:57 PM Revision 6441 (metacat): allow urls with "v1" in them
ben leinfelder
01:46 PM Revision 6440 (metacat): cleaned up mock tests on hzObjectPathMap. split out code for mocking a datastore into MockObjectPathMap.
rnahf
12:59 PM Revision 6439 (metacat): remove unused/old D1 SCHEMA downloads and build tasks
ben leinfelder
12:58 PM Revision 6438 (metacat): remove unused/old D1 SCHEMA downloads and build tasks
ben leinfelder
12:57 PM Revision 6437 (metacat): initialize Hazelcast from the custom configuration when initializing the Metacat service.
ben leinfelder
12:56 PM Revision 6436 (metacat): use shared hazelcast properties location on the CN
ben leinfelder
10:40 AM Revision 6435 (metacat): handle entryAdded and entryUpdated the same - update the entry if it exists, otherwise create it
ben leinfelder
10:38 AM Revision 6434 (metacat): handle entryAdded (to hzSystemMetadata) to store sysmeta to local store when it is not already present
ben leinfelder
10:37 AM Revision 6433 (metacat): make isScienceMetadata() method public/static to be called throughout Metacat
ben leinfelder
10:01 AM Revision 6432 (metacat): only create ObjectFormatId when we actually have the parameter (downstream we rely on it being null or not when constructing the query)
ben leinfelder

09/14/2011

05:33 PM Revision 6431 (metacat): exercise the shared hazelecast system metadata map and custom loader/store by inserting normally and also directly into the map. both mechanisms allow up to read the same system metadata (only tested on single local instance)
ben leinfelder
05:30 PM Revision 6430 (metacat): add code to handle new entry when it is not on the local member of the sysmeta cluster
ben leinfelder
04:15 PM Revision 6429 (metacat): clean up imports - randome quicktime package had been included
ben leinfelder
03:18 PM Revision 6428 (metacat): test hzSystemMetadata Map and custom loader
ben leinfelder
03:17 PM Revision 6427 (metacat): comment out processCluster connections that use hzClient until that is finalized
ben leinfelder
03:16 PM Revision 6426 (metacat): use HashMap, HashSet instead of the Tree* classes that require Identifier objects implement Comparable
ben leinfelder
02:41 PM Revision 6425 (metacat): copied default hazelcast configuration from the jar into hazelcast.test.properties.xml, to get instances to talk to each other.
rnahf
01:52 PM Revision 6424 (metacat): configuring hazelcast tests
rnahf
12:07 PM Revision 6423 (metacat): do not add obsoletes and obsoletedBy elements if their values are null (jibx chokes on the emptiness)
ben leinfelder
11:30 AM Revision 6422 (metacat): use both guid and docid when creating access row - then either mechanism can be used when retrieving the access rules
ben leinfelder
11:30 AM Revision 6421 (metacat): check for null session before looking at subject
ben leinfelder
10:02 AM Revision 6420 (metacat): further refactoring and start of unit tests for hazelcast elements
rnahf

09/13/2011

04:13 PM Revision 6419 (metacat): use pending replication task queue to check if node is authorized for replication. moved from old ReplicationService code
ben leinfelder
03:44 PM Revision 6418 (metacat): save system metadata and/or science metadata and/or ORE objects to the local CN if needed.
ben leinfelder
03:29 PM Revision 6417 (metacat): small code cleanup - removed unused instantiations of DBUtils.
rnahf
02:47 PM Revision 6416 (metacat): fixed logic wrt localID and docid. Implemented new method in IdentifierManager to getAllGUIDs from identifier table for implementation of loadAllKeys in ObjectPathMapLoader.
rnahf
11:38 AM Revision 6415 (metacat): further development of ObjectPathMapLoader.
rnahf

09/12/2011

02:48 PM Revision 6414 (metacat): new class for refreshing the hazelcast map with metacat. Initial commit.
rnahf
09:34 AM Revision 6413 (metacat): return the test Identifier so other tests can piggyback
ben leinfelder
09:32 AM Revision 6412 (metacat): check session != null before checking authorization
ben leinfelder

09/11/2011

06:41 PM Revision 6411 (metacat): Add stub methods in CNodeService that implement the Hazelcast EntryListener interface: entryAdded(), entryRemoved(), entryUpdated(), and entryEvicted(). Add a listener to the hzSystemMetadata map so the CNodeService can respond to those events and create appropriate CNReplicationTask objects for distributed execution across the CN cluster. Again, stubs only so far.
Chris Jones
06:27 PM Revision 6410 (metacat): Minor cleanup - tabs to spaces.
Chris Jones
06:26 PM Revision 6409 (metacat): Enable CNodeService to access 1) the hzNodes map defined in the DataONE process cluster by becoming a Hazelcast client (hzClient) to that cluster and 2) the hzSystemMetadata map defined in the DataONE storage cluster by becoming a member to that cluster (using direct Hazelcast calls). Added fields for maintaining the DataONE cluster properties.
Chris Jones
06:16 PM Revision 6408 (metacat): Add properties for strings used to connect to the DataONE storage and process Hazelcast clusters. The storage cluster is defined in the hazelcast.xml config file, and we list the names of the systemMetadataMap and the tasksIdNamespace in order to connect to these structures. When creating CNReplicationTask objects, use the task id generator to get a unique task id.
Chris Jones
06:12 PM Revision 6407 (metacat): Add in the Hazelcast Id generation namespace and an IdGenerator instance for task ids. Hazelcast will produce cluster-wide unique ids for the "task-ids" namespace, to be used when creating CNreplicationTask objects.
Chris Jones
05:29 PM Revision 6406 (metacat): Add the hazelcast client jar so Metacat can connect to the DataONE storage cluster that initializes the hzNodes shared node map and other structures as needed.
Chris Jones
03:28 PM Revision 6405 (metacat): Add a CNReplicationTask class that will be submitted to the CN storage cluster when there are changes to the object store involving system metadata, science metadata, and resource maps. When a new entry is added to the hzSystemMetadata map, a new data, science metadata, or resource map was added to the VO, and all CN cluster members need to be updated with the object and it's system metadata. This task is executed on each CN to replicate the information. If the event is an update to an existing system metadata entry, it may only involve a change to system metadata, or may involve a change to science metadata as well. The task will return with the PID of the object replicated, be it a sysmeta, scimeta, or resource object. Locking of the PID will be handled by the task.
Chris Jones
12:24 PM Revision 6404 (metacat): Update test for getReplicationStatus to reflect API change.
Chris Jones
12:22 PM Revision 6403 (metacat): Newest version of the D1 0.6.4 common jar.
Chris Jones
12:20 PM Revision 6402 (metacat): Catch D1nodeService up to the DataONE 0.6.4 schema where there is no ObjectFormat.isScienceMetadata() method, but rather ObjectFormat.getFormatType() where type is currently one of 'DATA, 'METADATA', or 'RESOURCE'.
Chris Jones
12:12 PM Revision 6401 (metacat): Modify HazelcastService to read configuration information from an on-disk file (not from a jar file). Added init() to start up the service (was calling doRefresh() before. We still need to decide if this is a refreshable service.
Chris Jones
12:10 PM Revision 6400 (metacat): Add the dataone.hazelcast.configFilePath property to be used when MetacatServlet becomes a Hazelcast cluster member using HazelcastService. TODO: what are the consequences of restarting the service via doRefresh()? It's set to false for now.
Chris Jones

09/08/2011

02:23 PM Revision 6399 (metacat): move HazelcastService to D1 package
ben leinfelder
07:27 AM Revision 6398 (metacat): Adding a HazelcastService for Metacat to enable Metacat as a Hazelcast cluster member in DataONE. This will require the hazelcast.xml configuration file used for the DataONE cluster to be on the Metacat classpath.
Chris Jones

09/07/2011

05:16 PM Revision 6397 (metacat): changes for schema update (d1_common)
ben leinfelder
02:22 PM Revision 6396 (metacat): do not parse from last slash ("/") to the end when processing the request uri - otherwise things like format ids (text/csv) will be handled incorrectly.
https://redmine.dataone.org/issues/1773 ben leinfelder

09/06/2011

02:33 PM Revision 6395 (metacat): added HazelCast MapStore and MapLoader implementation for SystemMetadata
ben leinfelder
11:55 AM Revision 6394 (metacat): use InvalidRequest when the PID is not found. https://redmine.dataone.org/issues/1768
ben leinfelder

09/02/2011

02:21 PM Revision 6393 (metacat): remove unused dataone properties
ben leinfelder
02:13 PM Revision 6392 (metacat): use 0.6.4 for node capabilities
ben leinfelder
01:57 PM Revision 6391 (metacat): use Permission.REPLICATE not EXECUTE
ben leinfelder
01:41 PM Revision 6390 (metacat): check with the CN if replication is allowed for the object in question for getReplica()
ben leinfelder
12:45 PM Revision 6389 (metacat): add getReplica() implementation. same as get() but with different logging. seems silly, but maybe I missed something important that distinguishes this method.
ben leinfelder

08/31/2011

03:20 PM Revision 6388 (metacat): Rolling back inadvertent commit on test.properties. Doh.
Chris Jones
03:18 PM Revision 6387 (metacat): Incomplete - task : Getting started with your first Spring web application development project
Chris Jones
02:39 PM Revision 6386 (metacat): Update MetacatPopulator to use the DataONE 0.6.4 schema and types.
Chris Jones
02:37 PM Revision 6385 (metacat): Update tests to use the DataONE 0.6.4 schema and types.
Chris Jones
02:36 PM Revision 6384 (metacat): Update classes to use the DataONE 0.6.4 schema and types. Major changes involve using BigInteger vs long in SystemMetadata.size, and using ObjectFormatIdentifier rather than Object format.
Chris Jones
02:33 PM Revision 6383 (metacat): Update DataONE jar files to 0.6.4. Updated classes to follow.
Chris Jones
 

Also available in: Atom