You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucy.apache.org by "Marvin Humphrey (JIRA)" <ji...@apache.org> on 2010/06/13 03:51:13 UTC

[jira] Created: (LUCY-110) Architecture

Architecture
------------

                 Key: LUCY-110
                 URL: https://issues.apache.org/jira/browse/LUCY-110
             Project: Lucy
          Issue Type: New Feature
          Components: Core - Plan
            Reporter: Marvin Humphrey
            Assignee: Marvin Humphrey


Lucy::Plan::Architecture encapsulates unchanging index configuration data
needed by index readers and writers, such as choice of index 
subcomponents.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (LUCY-110) Architecture

Posted by "Marvin Humphrey (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/LUCY-110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marvin Humphrey updated LUCY-110:
---------------------------------

    Attachment: arch.patch

This diff introduces the Architecture class, discussed numerous times in both
Lucy and Lucene forums as one approach to the modularization problem for index
writers and readers.

There is a division of labor between the two configuration classes
Lucy::Plan::Architecture and Lucy::Index::IndexManager:

  * Architecture is responsible for unchanging aspects of the index, for
    instance what indexing components (document writer/reader pair, posting 
    list writer/reader pair, etc.) will be used.
  * IndexManager is responsible for ephemeral, per-session configuration, such
    as lock factory, merge policy, etc

Architecture uses a registration model rather than factory methods to
initialize index subcomponents.  An earlier prototype used factory methods,
but the argument lists of factory methods render them more fragile and less
extensible.  Under a registration model, it's easier for Architecture to
extract needed arguments from the object being modified as needed --
otherwise, it is necessary to break back compat to add arguments to a factory
method.

{code:none}
-    public incremented DeletionsReader*
-    Make_Deletions_Reader(Architecture *self, Schema *schema, Folder *folder,
-                          Snapshot *snapshot, Segment *segment);
+    public void
+    Register_Deletions_Reader(Architecture *self, SegReader *reader);
{code}

Architecture objects are normally spawned using a factory method by Schema, 
so in order to change the Architecture, you must subclass Schema.  (This 
spares us from having to serialize Architecture objects within the Schema json 
file.)  It is an advanced class, available to experts but invisible to newcomers.

This patch also introduces stub classes for Lucy::Plan::SegWriter and
Lucy::Plan::SegReader.

> Architecture
> ------------
>
>                 Key: LUCY-110
>                 URL: https://issues.apache.org/jira/browse/LUCY-110
>             Project: Lucy
>          Issue Type: New Feature
>          Components: Core - Plan
>            Reporter: Marvin Humphrey
>            Assignee: Marvin Humphrey
>         Attachments: arch.patch
>
>
> Lucy::Plan::Architecture encapsulates unchanging index configuration data
> needed by index readers and writers, such as choice of index 
> subcomponents.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (LUCY-110) Architecture

Posted by "Marvin Humphrey (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/LUCY-110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marvin Humphrey resolved LUCY-110.
----------------------------------

    Resolution: Fixed

Committed as r955233.

> Architecture
> ------------
>
>                 Key: LUCY-110
>                 URL: https://issues.apache.org/jira/browse/LUCY-110
>             Project: Lucy
>          Issue Type: New Feature
>          Components: Core - Plan
>            Reporter: Marvin Humphrey
>            Assignee: Marvin Humphrey
>         Attachments: arch.patch
>
>
> Lucy::Plan::Architecture encapsulates unchanging index configuration data
> needed by index readers and writers, such as choice of index 
> subcomponents.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.